diff --git a/mca.sh b/mca.sh index d8a8bf6..85c3bea 100755 --- a/mca.sh +++ b/mca.sh @@ -4,15 +4,16 @@ set -e EXEC_NAME="$(basename -- "$0")" -options="$(getopt -n "$EXEC_NAME" -s sh -o hvfdx -l help -l version -- "$@")" +options="$(getopt -n "$EXEC_NAME" -s sh -o hvfdxr -l help -l version -- "$@")" eval set -- "$options" SCREEN_OPTS= +REATTACH_ONLY=0 while :; do case "$1" in -h|--help) - echo "Usage: $EXEC_NAME [-fdx] [MCA_NAME|MCA_JAR|MCA_DIR] [--] [INPUT]…" + echo "Usage: $EXEC_NAME [-fdxr] [MCA_NAME|MCA_JAR|MCA_DIR] [--] [INPUT]…" exit ;; -v|--version) @@ -28,6 +29,9 @@ while :; do -x) SCREEN_OPTS=x ;; + -r) + REATTACH_ONLY=1 + ;; --) shift break @@ -74,6 +78,8 @@ elif screen -S "$MCA_NAME" -X select . > /dev/null 2>&1; then exit 2 fi +[ "$REATTACH_ONLY" -eq 1 ] && { echo "$EXEC_NAME: $MCA_NAME: no such a screen was found" >&2; exit 2; } + [ -d "$MCA_DIR" ] || { echo "$EXEC_NAME: $MCA_DIR: not found" >&2; exit 2; } cd "$MCA_DIR"