From 697be43d7ab527c8606e9678145afee55c22e978 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Lien=20Sell=C3=A6g?= Date: Sat, 10 Jan 2026 21:15:16 +0100 Subject: [PATCH] link and go --- {scripts => bin}/link_addons.sh | 0 scripts/link_and_go.sh | 78 +++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) rename {scripts => bin}/link_addons.sh (100%) create mode 100644 scripts/link_and_go.sh diff --git a/scripts/link_addons.sh b/bin/link_addons.sh similarity index 100% rename from scripts/link_addons.sh rename to bin/link_addons.sh diff --git a/scripts/link_and_go.sh b/scripts/link_and_go.sh new file mode 100644 index 0000000..8fcc2ef --- /dev/null +++ b/scripts/link_and_go.sh @@ -0,0 +1,78 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" + +MODE="${MODE:-local}" # local or ssh +if [[ "${1:-}" == "--ssh" ]]; then + MODE="ssh" +elif [[ "${1:-}" == "--local" ]]; then + MODE="local" +fi + +ADDONS_DIR="${ADDONS_DIR:-../Games/ascension-wow/drive_c/Program Files/Ascension Launcher/resources/client/Interface/AddOns}" +MOUNT_DIR="${MOUNT_DIR:-$ROOT_DIR}" +LOCAL_BASE="${LOCAL_BASE:-$ROOT_DIR}" + +SSH_USER="${SSH_USER:-$USER}" +SSH_HOST="${SSH_HOST:-sarvern.no}" +SSH_PORT="${SSH_PORT:-36}" +SSH_REMOTE_BASE="${SSH_REMOTE_BASE:-/home/TradeSkillMaster}" + +ADDONS=( + "TradeSkillMaster" + "TradeSkillMaster_Accounting" + "TradeSkillMaster_AuctionDB" + "TradeSkillMaster_Auctioning" + "TradeSkillMaster_Crafting" + "TradeSkillMaster_Destroying" + "TradeSkillMaster_ItemTracker" + "TradeSkillMaster_Mailing" + "TradeSkillMaster_Shopping" + "TradeSkillMaster_Warehousing" +) + +MOUNT_ITEMS=("scripts" "${ADDONS[@]}") + +if [[ "$MODE" == "ssh" ]]; then + mkdir -p "$MOUNT_DIR" + + for item in "${MOUNT_ITEMS[@]}"; do + target_path="${MOUNT_DIR}/${item}" + mkdir -p "$target_path" + + if command -v mountpoint >/dev/null && mountpoint -q "$target_path"; then + echo "Already mounted: $target_path" + continue + fi + + sshfs -p "$SSH_PORT" "$SSH_USER@$SSH_HOST:$SSH_REMOTE_BASE/$item" "$target_path" + echo "Mounted $item" + done + + SOURCE_BASE="$MOUNT_DIR" +else + SOURCE_BASE="$LOCAL_BASE" +fi + +if [[ ! -d "$ADDONS_DIR" ]]; then + echo "AddOns directory not found: $ADDONS_DIR" >&2 + exit 1 +fi + +for addon in "${ADDONS[@]}"; do + live_path="${ADDONS_DIR}/${addon}" + src_path="${SOURCE_BASE}/${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