diff --git a/build/install.sh b/build/install.sh index 71203b0..2afe5f2 100755 --- a/build/install.sh +++ b/build/install.sh @@ -3,11 +3,18 @@ set -e [ "$EUID" -eq 0 ] || { sudo "$0" "$@"; exit $?; } CONSTANTS="sudo_no_passwd_constants.sh" SRC="$(dirname "$0")/../src" +echo source "$SRC/$CONSTANTS" source "$SRC/$CONSTANTS" +echo mkdir -p "$SHARE_DIR" mkdir -p "$SHARE_DIR" +echo cp "$SRC/$CONSTANTS" "$SHARE_DIR/" cp "$SRC/$CONSTANTS" "$SHARE_DIR/" +echo cp "$SRC/$UPDATE_COMMAND" "$BIN_DIR/" cp "$SRC/$UPDATE_COMMAND" "$BIN_DIR/" +echo cp "$SRC/$WATCH_COMMAND" "$BIN_DIR/" cp "$SRC/$WATCH_COMMAND" "$BIN_DIR/" +echo chmod +x "$BIN_DIR/$UPDATE_COMMAND" "$BIN_DIR/$WATCH_COMMAND" +cp "$SRC/$EDIT_COMMAND" "$BIN_DIR/" chmod +x "$BIN_DIR/$UPDATE_COMMAND" "$BIN_DIR/$WATCH_COMMAND" if command -v systemctl >/dev/null 2>&1; then cp "$SRC/$SERVICE_FILE" "$SYSTEMD_DIR/" @@ -16,4 +23,4 @@ elif command -v rc-update >/dev/null 2>&1; then else echo "Unsupported init system." fi -"$(dirname "$0")/post_install.sh" \ No newline at end of file +"$(dirname "$0")/post_install.sh" diff --git a/src/sudo-nopasswd b/src/sudo-nopasswd index 752816a..3d4ac27 100755 --- a/src/sudo-nopasswd +++ b/src/sudo-nopasswd @@ -1,6 +1,23 @@ #!/bin/bash set -e -[ "$EUID" -eq 0 ] || { sudo "$0" "$@"; exit $?; } +[ "$EUID" -eq 0 ] || { sudo "$0" "$@" "$EDITOR"; exit $?; } +editor="${!#}" +if [ -z "$editor" ]; then + editor="${EDITOR:-}" + if [ -z "$editor" ]; then + if command -v vim >/dev/null 2>&1; then + editor="vim" + elif command -v nano >/dev/null 2>&1; then + editor="nano" + else + echo "No editor found. Please set the EDITOR environment variable or pass an editor as an argument." + exit 1 + fi + set -- "${@:1:$(($#-1))}" + fi +else + EDITOR="$editor" +fi SHARE_ROOTS=("$HOME/.local/share" "/usr/local/share" "/usr/share") for SHARE_ROOT in "${SHARE_ROOTS[@]}"; do if [ -d "$SHARE_ROOT/sudo-nopasswd" ]; then diff --git a/src/sudo_no_passwd_constants.sh b/src/sudo_no_passwd_constants.sh index 458e1e4..0fb263b 100644 --- a/src/sudo_no_passwd_constants.sh +++ b/src/sudo_no_passwd_constants.sh @@ -18,3 +18,8 @@ INITD_DIR="/etc/init.d" UPDATE_COMMAND="update-sudo-nopasswd" WATCH_COMMAND="watch-sudo-nopasswd" +EDIT_COMMAND="sudo-nopasswd" + +if [ ! "$SHARE_DIR" ]; then + SHARE_DIR="/usr/share/sudo-nopasswd" +fi