Installs the core script + lib/ under XDG_DATA_HOME/floppy-utils and generates thin wrappers in ~/.local/bin. Updates floppy resolver, install.sh, README, and adds early returns in check-deps logging helpers.
45 lines
1.2 KiB
Bash
Executable File
45 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Install floppy-utils: program files in ~/.local/share, wrappers in ~/.local/bin
|
|
set -euo pipefail
|
|
|
|
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
if [[ -x "$ROOT/check-deps.sh" ]]; then
|
|
"$ROOT/check-deps.sh" -q || {
|
|
echo "Run ./check-deps.sh --install to fix missing dependencies." >&2
|
|
exit 1
|
|
}
|
|
fi
|
|
|
|
SRC="$ROOT/src"
|
|
SHARE="${XDG_DATA_HOME:-$HOME/.local/share}/floppy-utils"
|
|
DEST="${HOME}/.local/bin"
|
|
|
|
mkdir -p "$SHARE/lib" "$DEST"
|
|
install -m 755 "$SRC/floppy" "$SHARE/floppy"
|
|
install -m 644 "$SRC/lib/common.sh" "$SHARE/lib/common.sh"
|
|
|
|
install_wrapper() {
|
|
local name="$1"
|
|
shift
|
|
local launcher="$SHARE/floppy"
|
|
local args_quoted=""
|
|
local arg
|
|
for arg in "$@"; do
|
|
args_quoted+="$(printf '%q' "$arg") "
|
|
done
|
|
cat >"$DEST/$name" <<EOF
|
|
#!/usr/bin/env bash
|
|
exec $(printf '%q' "$launcher") ${args_quoted}"\$@"
|
|
EOF
|
|
chmod 755 "$DEST/$name"
|
|
}
|
|
|
|
install_wrapper floppy
|
|
install_wrapper floppy-make make
|
|
install_wrapper floppy-attach attach
|
|
install_wrapper floppy-burn burn
|
|
|
|
echo "Installed program files: $SHARE"
|
|
echo "Installed commands: $DEST/floppy, floppy-make, floppy-attach, floppy-burn"
|
|
echo "Ensure \$HOME/.local/bin is on your PATH, then run: floppy help" |