mirror of
https://github.com/kuhyx/testsAndMisc-archive.git
synced 2026-07-04 15:43:11 +02:00
feat: accept first argument as audio by defauilt sonic pi
This commit is contained in:
parent
6e988cbe09
commit
84cf151e02
@ -70,6 +70,24 @@ find_repl() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Ensure TRACK_FILE is an absolute path so REPL can always find it
|
||||||
|
resolve_track_file() {
|
||||||
|
# If already absolute, keep as-is
|
||||||
|
case "$TRACK_FILE" in
|
||||||
|
/*) : ;;
|
||||||
|
*)
|
||||||
|
if require_cmd realpath; then
|
||||||
|
TRACK_FILE="$(realpath -m "$TRACK_FILE")"
|
||||||
|
elif require_cmd readlink; then
|
||||||
|
# Some systems support -f
|
||||||
|
TRACK_FILE="$(readlink -f "$TRACK_FILE" 2>/dev/null || printf "%s/%s" "$(cd "$(dirname "$TRACK_FILE")" && pwd)" "$(basename "$TRACK_FILE")")"
|
||||||
|
else
|
||||||
|
TRACK_FILE="$(cd "$(dirname "$TRACK_FILE")" && pwd)/$(basename "$TRACK_FILE")"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
# Start Sonic Pi headlessly using the built-in REPL only
|
# Start Sonic Pi headlessly using the built-in REPL only
|
||||||
headless_play() {
|
headless_play() {
|
||||||
find_repl
|
find_repl
|
||||||
@ -95,26 +113,34 @@ headless_play() {
|
|||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
Usage: $(basename "$0") [--file path/to/track.rb] [--duration SECONDS]
|
Usage: $(basename "$0") [path/to/track.rb] [--duration SECONDS]
|
||||||
|
|
||||||
Defaults:
|
Defaults:
|
||||||
--file $TRACK_FILE
|
track file $TRACK_FILE
|
||||||
--duration run until Ctrl+C
|
--duration run until Ctrl+C
|
||||||
(headless only)
|
(headless only)
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
parse_args() {
|
parse_args() {
|
||||||
|
local saw_file="false"
|
||||||
while [[ $# -gt 0 ]]; do
|
while [[ $# -gt 0 ]]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
-f|--file)
|
|
||||||
TRACK_FILE="$2"; shift 2 ;;
|
|
||||||
-d|--duration)
|
-d|--duration)
|
||||||
DURATION="$2"; shift 2 ;;
|
DURATION="$2"; shift 2 ;;
|
||||||
-h|--help)
|
-h|--help)
|
||||||
usage; exit 0 ;;
|
usage; exit 0 ;;
|
||||||
|
--)
|
||||||
|
shift; break ;;
|
||||||
|
-*)
|
||||||
|
echo "Unknown option: $1" >&2; usage; exit 1 ;;
|
||||||
*)
|
*)
|
||||||
echo "Unknown argument: $1" >&2; usage; exit 1 ;;
|
if [[ "$saw_file" == "false" ]]; then
|
||||||
|
TRACK_FILE="$1"; saw_file="true"; shift
|
||||||
|
else
|
||||||
|
echo "Unexpected extra argument: $1" >&2; usage; exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
@ -125,6 +151,7 @@ main() {
|
|||||||
echo "Track file not found: $TRACK_FILE" >&2
|
echo "Track file not found: $TRACK_FILE" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
resolve_track_file
|
||||||
install_sonic_pi
|
install_sonic_pi
|
||||||
headless_play
|
headless_play
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user