fix sudo_cmd whitespace, editor detection, other things...
This commit is contained in:
parent
570c64f104
commit
4ec1f3b30a
|
@ -46,13 +46,29 @@ my_name="Telebit Remote"
|
||||||
my_repo="telebit.js"
|
my_repo="telebit.js"
|
||||||
my_root=${my_root:-} # todo better install script
|
my_root=${my_root:-} # todo better install script
|
||||||
sudo_cmd="sudo"
|
sudo_cmd="sudo"
|
||||||
|
sudo_cmde="sudo "
|
||||||
exec 3<>/dev/tty
|
exec 3<>/dev/tty
|
||||||
read_cmd="read -u 3"
|
read_cmd="read -u 3"
|
||||||
# TODO detect if rsync is available and use rsync -a (more portable)
|
# TODO detect if rsync is available and use rsync -a (more portable)
|
||||||
rsync_cmd="cp -pPR"
|
rsync_cmd="cp -pPR"
|
||||||
|
|
||||||
|
my_edit=${EDITOR:-}
|
||||||
|
set +e
|
||||||
|
my_edit=$(type -p edit)
|
||||||
|
if [ -z "$my_edit" ]; then
|
||||||
|
my_edit=$(type -p nano)
|
||||||
|
fi
|
||||||
|
if [ -z "$my_edit" ]; then
|
||||||
|
my_edit=$(type -p vim)
|
||||||
|
fi
|
||||||
|
if [ -z "$my_edit" ]; then
|
||||||
|
my_edit=$(type -p vi)
|
||||||
|
fi
|
||||||
|
set -e
|
||||||
|
|
||||||
if [ "root" == $(whoami) ] || [ 0 == $(id -u) ]; then
|
if [ "root" == $(whoami) ] || [ 0 == $(id -u) ]; then
|
||||||
sudo_cmd=" "
|
sudo_cmd=" "
|
||||||
|
sudo_cmde=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "${my_email}" ]; then
|
if [ -z "${my_email}" ]; then
|
||||||
|
@ -129,14 +145,14 @@ my_npm="$my_node $TELEBIT_PATH/bin/npm"
|
||||||
my_tmp="$(mktemp -d)"
|
my_tmp="$(mktemp -d)"
|
||||||
mkdir -p $my_tmp
|
mkdir -p $my_tmp
|
||||||
|
|
||||||
echo "$sudo_cmd mkdir -p '$TELEBIT_PATH'"
|
echo "${sudo_cmde}mkdir -p '$TELEBIT_PATH'"
|
||||||
$sudo_cmd mkdir -p "$TELEBIT_PATH"
|
$sudo_cmd mkdir -p "$TELEBIT_PATH"
|
||||||
$sudo_cmd mkdir -p "$TELEBIT_PATH/etc"
|
$sudo_cmd mkdir -p "$TELEBIT_PATH/etc"
|
||||||
$sudo_cmd mkdir -p "$TELEBIT_PATH/var/log"
|
$sudo_cmd mkdir -p "$TELEBIT_PATH/var/log"
|
||||||
$sudo_cmd chown -R $(id -u -n):$(id -g -n) "$TELEBIT_PATH"
|
$sudo_cmd chown -R $(id -u -n):$(id -g -n) "$TELEBIT_PATH"
|
||||||
echo "$sudo_cmd mkdir -p '/etc/$my_app/'"
|
#echo "${sudo_cmde}mkdir -p '/etc/$my_app/'"
|
||||||
$sudo_cmd mkdir -p "/etc/$my_app/"
|
#$sudo_cmd mkdir -p "/etc/$my_app/"
|
||||||
$sudo_cmd chown $(id -u -n):$(id -g -n) "/etc/$my_app/"
|
#$sudo_cmd chown $(id -u -n):$(id -g -n) "/etc/$my_app/"
|
||||||
|
|
||||||
#https://git.coolaj86.com/coolaj86/telebit.js.git
|
#https://git.coolaj86.com/coolaj86/telebit.js.git
|
||||||
#https://git.coolaj86.com/coolaj86/telebit.js/archive/:tree:.tar.gz
|
#https://git.coolaj86.com/coolaj86/telebit.js/archive/:tree:.tar.gz
|
||||||
|
@ -170,14 +186,15 @@ cat << EOF > $TELEBIT_PATH/bin/$my_app
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
$my_node $TELEBIT_PATH/bin/$my_bin
|
$my_node $TELEBIT_PATH/bin/$my_bin
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
chmod a+x $TELEBIT_PATH/bin/$my_app
|
chmod a+x $TELEBIT_PATH/bin/$my_app
|
||||||
echo "$sudo_cmd ln -sf $TELEBIT_PATH/bin/$my_app /usr/local/bin/$my_app"
|
echo "${sudo_cmde}ln -sf $TELEBIT_PATH/bin/$my_app /usr/local/bin/$my_app"
|
||||||
$sudo_cmd ln -sf $TELEBIT_PATH/bin/$my_app /usr/local/bin/$my_app
|
$sudo_cmd ln -sf $TELEBIT_PATH/bin/$my_app /usr/local/bin/$my_app
|
||||||
|
|
||||||
set +e
|
set +e
|
||||||
if type -p setcap >/dev/null 2>&1; then
|
if type -p setcap >/dev/null 2>&1; then
|
||||||
#echo "Setting permissions to allow $my_app to run on port 80 and port 443 without sudo or root"
|
#echo "Setting permissions to allow $my_app to run on port 80 and port 443 without sudo or root"
|
||||||
echo "$sudo_cmd setcap cap_net_bind_service=+ep $TELEBIT_PATH/bin/node"
|
echo "${sudo_cmde}setcap cap_net_bind_service=+ep $TELEBIT_PATH/bin/node"
|
||||||
$sudo_cmd setcap cap_net_bind_service=+ep $TELEBIT_PATH/bin/node
|
$sudo_cmd setcap cap_net_bind_service=+ep $TELEBIT_PATH/bin/node
|
||||||
fi
|
fi
|
||||||
set -e
|
set -e
|
||||||
|
@ -230,12 +247,12 @@ if [ ! -e "$my_config" ]; then
|
||||||
cat $TELEBIT_PATH/usr/share/$my_app.tpl.yml >> "$my_config"
|
cat $TELEBIT_PATH/usr/share/$my_app.tpl.yml >> "$my_config"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
my_config_link="/etc/$my_app/$my_app.yml"
|
#my_config_link="/etc/$my_app/$my_app.yml"
|
||||||
if [ ! -e "$my_config_link" ]; then
|
#if [ ! -e "$my_config_link" ]; then
|
||||||
echo "$sudo_cmd ln -sf '$my_config' '$my_config_link'"
|
# echo "${sudo_cmde}ln -sf '$my_config' '$my_config_link'"
|
||||||
#$sudo_cmd mkdir -p /etc/$my_app
|
# #$sudo_cmd mkdir -p /etc/$my_app
|
||||||
$sudo_cmd ln -sf "$my_config" "$my_config_link"
|
# $sudo_cmd ln -sf "$my_config" "$my_config_link"
|
||||||
fi
|
#fi
|
||||||
|
|
||||||
my_config="$HOME/.config/$my_app/$my_app.yml"
|
my_config="$HOME/.config/$my_app/$my_app.yml"
|
||||||
mkdir -p "$(dirname $my_config)"
|
mkdir -p "$(dirname $my_config)"
|
||||||
|
@ -254,8 +271,8 @@ if [ ! -e "$my_config" ]; then
|
||||||
cat $TELEBIT_PATH/usr/share/$my_app.tpl.yml >> "$my_config"
|
cat $TELEBIT_PATH/usr/share/$my_app.tpl.yml >> "$my_config"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "$sudo_cmd chown -R $my_user '$TELEBIT_PATH' '/etc/$my_app'"
|
echo "${sudo_cmde}chown -R $my_user '$TELEBIT_PATH'# '/etc/$my_app'"
|
||||||
$sudo_cmd chown -R $my_user "$TELEBIT_PATH" "/etc/$my_app"
|
$sudo_cmd chown -R $my_user "$TELEBIT_PATH"# "/etc/$my_app"
|
||||||
|
|
||||||
# ~/.config/systemd/user/
|
# ~/.config/systemd/user/
|
||||||
# %h/.config/telebit/telebit.yml
|
# %h/.config/telebit/telebit.yml
|
||||||
|
@ -265,25 +282,25 @@ my_system_launcher=""
|
||||||
if [ -d "/Library/LaunchDaemons" ]; then
|
if [ -d "/Library/LaunchDaemons" ]; then
|
||||||
my_system_launcher="launchd"
|
my_system_launcher="launchd"
|
||||||
my_app_launchd_service="Library/LaunchDaemons/${my_app_pkg_name}.plist"
|
my_app_launchd_service="Library/LaunchDaemons/${my_app_pkg_name}.plist"
|
||||||
echo "$sudo_cmd $rsync_cmd $TELEBIT_PATH/usr/share/dist/$my_app_launchd_service /$my_app_launchd_service"
|
echo "${sudo_cmde}$rsync_cmd $TELEBIT_PATH/usr/share/dist/$my_app_launchd_service /$my_app_launchd_service"
|
||||||
$sudo_cmd $rsync_cmd "$TELEBIT_PATH/usr/share/dist/$my_app_launchd_service" "/$my_app_launchd_service"
|
$sudo_cmd $rsync_cmd "$TELEBIT_PATH/usr/share/dist/$my_app_launchd_service" "/$my_app_launchd_service"
|
||||||
|
|
||||||
echo "$sudo_cmd chown root:wheel $my_root/$my_app_launchd_service"
|
echo "${sudo_cmde}chown root:wheel $my_root/$my_app_launchd_service"
|
||||||
$sudo_cmd chown root:wheel "$my_root/$my_app_launchd_service"
|
$sudo_cmd chown root:wheel "$my_root/$my_app_launchd_service"
|
||||||
echo "$sudo_cmd launchctl unload -w $my_root/$my_app_launchd_service >/dev/null 2>/dev/null"
|
echo "${sudo_cmde}launchctl unload -w $my_root/$my_app_launchd_service >/dev/null 2>/dev/null"
|
||||||
$sudo_cmd launchctl unload -w "$my_root/$my_app_launchd_service" >/dev/null 2>/dev/null
|
$sudo_cmd launchctl unload -w "$my_root/$my_app_launchd_service" >/dev/null 2>/dev/null
|
||||||
echo "$sudo_cmd launchctl load -w $my_root/$my_app_launchd_service"
|
echo "${sudo_cmde}launchctl load -w $my_root/$my_app_launchd_service"
|
||||||
$sudo_cmd launchctl load -w "$my_root/$my_app_launchd_service"
|
$sudo_cmd launchctl load -w "$my_root/$my_app_launchd_service"
|
||||||
|
|
||||||
elif [ -d "$my_root/etc/systemd/system" ]; then
|
elif [ -d "$my_root/etc/systemd/system" ]; then
|
||||||
my_system_launcher="systemd"
|
my_system_launcher="systemd"
|
||||||
echo "$sudo_cmd $rsync_cmd $TELEBIT_PATH/usr/share/dist/etc/systemd/system/$my_app.service /etc/systemd/system/$my_app.service"
|
echo "${sudo_cmde}$rsync_cmd $TELEBIT_PATH/usr/share/dist/etc/systemd/system/$my_app.service /etc/systemd/system/$my_app.service"
|
||||||
$sudo_cmd $rsync_cmd "$TELEBIT_PATH/usr/share/dist/etc/systemd/system/$my_app.service" "/etc/systemd/system/$my_app.service"
|
$sudo_cmd $rsync_cmd "$TELEBIT_PATH/usr/share/dist/etc/systemd/system/$my_app.service" "/etc/systemd/system/$my_app.service"
|
||||||
|
|
||||||
$sudo_cmd systemctl daemon-reload
|
$sudo_cmd systemctl daemon-reload
|
||||||
echo "$sudo_cmd systemctl enable $my_app"
|
echo "${sudo_cmde}systemctl enable $my_app"
|
||||||
$sudo_cmd systemctl enable $my_app
|
$sudo_cmd systemctl enable $my_app
|
||||||
echo "$sudo_cmd systemctl start $my_app"
|
echo "${sudo_cmde}systemctl start $my_app"
|
||||||
$sudo_cmd systemctl restart $my_app
|
$sudo_cmd systemctl restart $my_app
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -295,7 +312,7 @@ echo "=============================================="
|
||||||
echo " Privacy Settings in Config"
|
echo " Privacy Settings in Config"
|
||||||
echo "=============================================="
|
echo "=============================================="
|
||||||
echo ""
|
echo ""
|
||||||
echo "The example config file /etc/$my_app/$my_app.yml opts-in to"
|
echo "The default config file $TELEBIT_PATH/etc/$my_app.yml opts-in to"
|
||||||
echo "contributing telemetrics and receiving infrequent relevant updates"
|
echo "contributing telemetrics and receiving infrequent relevant updates"
|
||||||
echo "(probably once per quarter or less) such as important notes on"
|
echo "(probably once per quarter or less) such as important notes on"
|
||||||
echo "a new release, an important API change, etc. No spam."
|
echo "a new release, an important API change, etc. No spam."
|
||||||
|
@ -315,33 +332,33 @@ if [ "systemd" == "$my_system_launcher" ]; then
|
||||||
|
|
||||||
echo "Edit the config and restart, if desired:"
|
echo "Edit the config and restart, if desired:"
|
||||||
echo ""
|
echo ""
|
||||||
echo " $sudo_cmd edit /opt/$my_app/etc/$my_app.yml"
|
echo " ${sudo_cmde}$my_edit $TELEBIT_PATH/etc/$my_app.yml"
|
||||||
echo " $sudo_cmd systemctl restart $my_app"
|
echo " ${sudo_cmde}systemctl restart $my_app"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Or disabled the service and start manually:"
|
echo "Or disabled the service and start manually:"
|
||||||
echo ""
|
echo ""
|
||||||
echo " $sudo_cmd systemctl stop $my_app"
|
echo " ${sudo_cmde}systemctl stop $my_app"
|
||||||
echo " $sudo_cmd systemctl disable $my_app"
|
echo " ${sudo_cmde}systemctl disable $my_app"
|
||||||
echo " $my_app --config /opt/$my_app/etc/$my_app.yml"
|
echo " $my_app --config $TELEBIT_PATH/etc/$my_app.yml"
|
||||||
|
|
||||||
elif [ "launchd" == "$my_system_launcher" ]; then
|
elif [ "launchd" == "$my_system_launcher" ]; then
|
||||||
|
|
||||||
echo "Edit the config and restart, if desired:"
|
echo "Edit the config and restart, if desired:"
|
||||||
echo ""
|
echo ""
|
||||||
echo " $sudo_cmd edit /opt/$my_app/etc/$my_app.yml"
|
echo " ${sudo_cmde}$my_edit $TELEBIT_PATH/etc/$my_app.yml"
|
||||||
echo " $sudo_cmd launchctl unload $my_root/$my_app_launchd_service"
|
echo " ${sudo_cmde}launchctl unload $my_root/$my_app_launchd_service"
|
||||||
echo " $sudo_cmd launchctl load -w $my_root/$my_app_launchd_service"
|
echo " ${sudo_cmde}launchctl load -w $my_root/$my_app_launchd_service"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Or disabled the service and start manually:"
|
echo "Or disabled the service and start manually:"
|
||||||
echo ""
|
echo ""
|
||||||
echo " $sudo_cmd launchctl unload -w $my_root/$my_app_launchd_service"
|
echo " ${sudo_cmde}launchctl unload -w $my_root/$my_app_launchd_service"
|
||||||
echo " $my_app --config /opt/$my_app/etc/$my_app.yml"
|
echo " $my_app --config $TELEBIT_PATH/etc/$my_app.yml"
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
echo "Edit the config, if desired:"
|
echo "Edit the config, if desired:"
|
||||||
echo ""
|
echo ""
|
||||||
echo " $sudo_cmd edit $my_config"
|
echo " ${sudo_cmde}$my_edit $my_config"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Or disabled the service and start manually:"
|
echo "Or disabled the service and start manually:"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
Loading…
Reference in New Issue