diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..c857b3e --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,19 @@ +# Repository Guidelines + +## Project Structure & Module Organization +TradeSkillMaster is a World of Warcraft addon composed of a core module and several feature modules. Each module lives in its own top-level folder (for example `TradeSkillMaster/`, `TradeSkillMaster_Auctioning/`) and contains a `.toc` manifest plus one or more `.lua` files. Most modules also include `ChangeLog.txt` and `LICENSE.txt`. The root contains repository metadata like `README.md` and `.github/` templates. + +## Build, Test, and Development Commands +There is no build system in this repository. To run locally, copy the desired module folders into your WoW AddOns directory (for example `World of Warcraft/Interface/AddOns/TradeSkillMaster_Auctioning`) and use `/reload` in-game after changes. Manual in-game verification is the default test loop. + +## Coding Style & Naming Conventions +Lua files use tab indentation in existing code; follow that style when editing. Keep module folder names and primary files aligned (`TradeSkillMaster_Mailing/TradeSkillMaster_Mailing.lua`, `TradeSkillMaster_Mailing.toc`). Use clear, descriptive function and local variable names, and avoid introducing new globals unless required by the addon API. + +## Testing Guidelines +No automated test framework is present. Validate changes by enabling the addon in-game and exercising the affected feature paths. When changes are module-specific, test both module initialization (login/reload) and the primary UI workflows. + +## Commit & Pull Request Guidelines +Recent commit messages are short and action-focused (for example “add group scan”, “skip wipe of data when searching”). Keep messages concise and imperative when possible. For pull requests, follow the template in `.github/PULL_REQUEST_TEPMLATE.md`: include a clear description, reference issues with `Fixes #`, select a change type, describe test steps, and complete the self-review checklist. + +## Agent Notes +When adding or renaming modules, update the `.toc` and matching `.lua` filenames together, and ensure any new files are listed in the `.toc` manifest. Keep changes scoped to the relevant module folder to avoid cross-module regressions. diff --git a/scripts/link_addons.sh b/scripts/link_addons.sh new file mode 100644 index 0000000..68c83d8 --- /dev/null +++ b/scripts/link_addons.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +TARGET_DIR="../Games/ascension-wow/drive_c/Program Files/Ascension Launcher/resources/client/Interface/AddOns" + +ADDONS=( + "TradeSkillMaster" + "TradeSkillMaster_Accounting" + "TradeSkillMaster_AuctionDB" + "TradeSkillMaster_Auctioning" + "TradeSkillMaster_Crafting" + "TradeSkillMaster_Destroying" + "TradeSkillMaster_ItemTracker" + "TradeSkillMaster_Mailing" + "TradeSkillMaster_Shopping" + "TradeSkillMaster_Warehousing" +) + +if [[ ! -d "$TARGET_DIR" ]]; then + echo "Target AddOns directory not found: $TARGET_DIR" >&2 + exit 1 +fi + +for addon in "${ADDONS[@]}"; do + live_path="${TARGET_DIR}/${addon}" + src_path="${ROOT_DIR}/${addon}" + + if [[ ! -d "$src_path" ]]; then + echo "Source addon folder missing: $src_path" >&2 + continue + fi + + if [[ -L "$live_path" || -d "$live_path" ]]; then + rm -rf "$live_path" + fi + + ln -s "$src_path" "$live_path" + echo "Linked ${addon}" +done