You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
1.9 KiB
78 lines
1.9 KiB
#!/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
|
|
|