94 lines
2.8 KiB
Bash
Executable File
94 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
function install {
|
|
# prefer running as root
|
|
local dir="$(dirname $0)"
|
|
local program=comfortable-swipe
|
|
local program_exe=/usr/local/bin/$program
|
|
local compile_command="$dir/$program.compile.sh"
|
|
local conf_path=/usr/local/share/$program/$program.conf
|
|
local dconf_path="$dir/defaults.conf"
|
|
local old_conf_path="${XDG_CONFIG_HOME:-$HOME/.config}/$program.conf"
|
|
|
|
if [ -x "$(command -v $program_exe)" ]; then
|
|
# stop any running $program if it exists
|
|
$program_exe stop
|
|
fi
|
|
|
|
#copy config file
|
|
abort () {
|
|
exec echo "Installation aborted"
|
|
}
|
|
sudo mkdir -p "$(dirname $conf_path)" || abort
|
|
|
|
# check if "-y" or "--yes" is passed as an argument
|
|
YES=false
|
|
while test $# -gt 0
|
|
do
|
|
case "$1" in
|
|
-y) YES=true
|
|
;;
|
|
--yes) YES=true
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
sudo chown $USER "$(dirname $conf_path)"
|
|
if [ ! -f "$conf_path" ]; then
|
|
if [ ! -f "$old_conf_path" ]; then
|
|
# old config file not found, create from scratch
|
|
cat "$dconf_path" > "$conf_path" || abort
|
|
else
|
|
# old config file found, move to the new path
|
|
cat "$old_conf_path" > "$conf_path" || abort
|
|
echo "Configuration copied from $old_conf_path to $conf_path"
|
|
fi
|
|
else
|
|
# config file found, ask user if overwrite
|
|
echo "Old conf file found in $conf_path"
|
|
if [ "$YES" == false ]; then
|
|
read -r -p "Keep the old conf file? (default: yes) [Y/n] " response
|
|
response="${response,,}" # tolower
|
|
if [[ "$response" =~ ^(no|n)$ ]]; then
|
|
read -r -p "Conf file will be overwritten. Are you sure? [Y/n] " response
|
|
response="${response,,}"
|
|
if [[ "$response" =~ ^(yes|y)$ ]]; then
|
|
cat "$dconf_path" > "$conf_path" || abort
|
|
else
|
|
abort
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
echo "Installing to $program_exe ..."
|
|
|
|
# remove existing $program
|
|
if [ -x "$(command -v $program_exe)" ]; then
|
|
sudo rm -f "$(which $program)"
|
|
fi
|
|
|
|
# compile library
|
|
sudo "$compile_command" "$program_exe" || abort
|
|
|
|
# add permissions to input group (defer)
|
|
# GROUP=$(ls -l /dev/input/event* | awk '{print $4}' | head --line=1) || abort
|
|
|
|
# turn on autostart by default
|
|
local autostart_status="$($program_exe autostart)"
|
|
if [[ "$autostart_status" == *off* ]]; then
|
|
autostart_status="$($program_exe autostart)"
|
|
fi
|
|
|
|
echo "Successfully installed $program $(cat $dir/VERSION | tr -d '[:space:]')"
|
|
echo ""
|
|
echo "$autostart_status"
|
|
echo "Edit configuration file: gedit \$($program config)"
|
|
echo ""
|
|
echo "Try running: $program start"
|
|
}
|
|
|
|
install
|
|
unset -f install
|