new install/uninstall scripts
* new uninstall script * system install no longer supported * local install using local virtualenv and symbolic links in ~/.local/bin * --dev switch to allow developper mode with symlinks to git
This commit is contained in:
parent
1447b62755
commit
97cf440ce5
134
install
134
install
@ -1,103 +1,41 @@
|
||||
#!/usr/bin/bash
|
||||
#!/bin/bash
|
||||
|
||||
local_bin_dir=~/local/bin
|
||||
local_config_dir=~/.config/runon
|
||||
system_bin_dir=/usr/local/bin
|
||||
system_config_dir=/etc/runon
|
||||
srcdir=$(dirname $(readlink -f $0))
|
||||
venvdir=~/.local/lib/runon
|
||||
bindir=~/.local/bin
|
||||
configdir=~/.config/runon
|
||||
|
||||
op=install
|
||||
bin_dir=$local_bin_dir
|
||||
config_dir=$local_config_dir
|
||||
|
||||
function usage
|
||||
{
|
||||
echo "$0 [local|system] [-u|--uninstall] [<dest>]"
|
||||
echo
|
||||
echo " local install for local user, by default"
|
||||
echo " system install for all users"
|
||||
echo " dev install in dev mode (create links to source)"
|
||||
echo " -u, --uninstall local or system uninstall"
|
||||
echo " <dest> destination dir for binary"
|
||||
echo
|
||||
echo "default local paths:"
|
||||
echo " binary: $local_bin_dir"
|
||||
echo " config: $local_config_dir"
|
||||
echo
|
||||
echo "default system paths:"
|
||||
echo " binary: $system_bin_dir"
|
||||
echo " config: $system_config_dir"
|
||||
echo
|
||||
}
|
||||
|
||||
function do_exec
|
||||
{
|
||||
echo "$@"
|
||||
"$@"
|
||||
}
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case $1 in
|
||||
local)
|
||||
bin_dir=$local_bin_dir
|
||||
config_dir=$local_config_dir
|
||||
;;
|
||||
system)
|
||||
bin_dir=$system_bin_dir
|
||||
config_dir=$system_config_dir
|
||||
;;
|
||||
dev)
|
||||
bin_dir=$local_bin_dir
|
||||
config_dir=$local_config_dir
|
||||
op=installdev
|
||||
;;
|
||||
-u)
|
||||
op=uninstall
|
||||
;;
|
||||
--uninstall)
|
||||
op=uninstall
|
||||
;;
|
||||
-h*)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
*) bin_dir=$1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
bin_dir=$(realpath $bin_dir)
|
||||
config_dir=$(realpath $config_dir)
|
||||
|
||||
if [[ ":$PATH:" != *":$bin_dir:"* ]]; then
|
||||
echo "WARNING: $bin_dir is not in your PATH, runon will not be automatically found."
|
||||
echo
|
||||
if [ "$1" == "--dev" ]; then
|
||||
editable=--editable
|
||||
devmode=1
|
||||
fi
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$op" = "install" ]; then
|
||||
do_exec install -d $bin_dir
|
||||
do_exec install -d $config_dir
|
||||
#rm -f $bin_dir/runon
|
||||
#rm -f $config_dir/runon
|
||||
do_exec install runon $bin_dir
|
||||
do_exec install runon.conf $config_dir
|
||||
elif [ "$op" = "installdev" ]; then
|
||||
do_exec install -d $bin_dir
|
||||
do_exec install -d $config_dir
|
||||
do_exec ln -s -f $(realpath runon) $bin_dir/
|
||||
do_exec ln -s -f $(realpath runon.conf) $config_dir/
|
||||
elif [ "$op" = "uninstall" ]; then
|
||||
# find all symlinks targetting to runon, and remove them
|
||||
find $bin_dir -type l | while read l; do
|
||||
if [ "$(readlink $l)" = "runon" ]; then
|
||||
do_exec rm $l
|
||||
fi
|
||||
done
|
||||
|
||||
do_exec rm -f $bin_dir/runon
|
||||
do_exec rm -f $config_dir/runon.conf
|
||||
test -d $bin_dir && do_exec rmdir --parents --ignore-fail-on-non-empty $bin_dir 2> /dev/null
|
||||
test -d $config_dir && do_exec rmdir --parents --ignore-fail-on-non-empty $config_dir 2> /dev/null
|
||||
if [ ! -d $venvdir/bin/activate ]; then
|
||||
echo "create virtualenv $venvdir..."
|
||||
python3 -m venv $venvdir
|
||||
fi
|
||||
source $venvdir/bin/activate
|
||||
|
||||
echo "populate $venvdir..."
|
||||
python3 -m pip install --upgrade pip
|
||||
python3 -m pip install wheel
|
||||
python3 -m pip install $editable $srcdir
|
||||
|
||||
echo "create links in $bindir..."
|
||||
mkdir -p $bindir
|
||||
ln -sf $venvdir/bin/runon $bindir/
|
||||
|
||||
echo "install base config in $configdir..."
|
||||
mkdir -p $configdir
|
||||
if [ -n "$devmode" ]; then
|
||||
ln -s $srcdir/runon.default.conf $configdir/
|
||||
else
|
||||
cp -p $srcdir/runon.default.conf $configdir/
|
||||
fi
|
||||
|
||||
echo "done."
|
||||
|
||||
if [[ ":$PATH:" != *":$(readlink -f $bindir):"* ]]; then
|
||||
echo ""
|
||||
echo "WARNING: $bindir is not in your PATH"
|
||||
fi
|
||||
|
@ -23,7 +23,6 @@ def read_ini(user_confname, osname=''):
|
||||
'.runon.conf',
|
||||
os.path.join(xdg.BaseDirectory.xdg_config_home, 'runon', 'runon.conf'),
|
||||
os.path.join(xdg.BaseDirectory.xdg_config_home, 'runon', 'runon.default.conf'),
|
||||
'/etc/runon/runon.conf',
|
||||
]
|
||||
defaults = {
|
||||
'osname': osname,
|
||||
|
25
uninstall
Executable file
25
uninstall
Executable file
@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
srcdir=$(dirname $(readlink -f $0))
|
||||
venvdir=~/.local/lib/runon
|
||||
bindir=~/.local/bin
|
||||
configdir=~/.config/runon
|
||||
|
||||
if [ -e $venvdir/bin/runon ]; then
|
||||
echo "remove links from $bindir"
|
||||
find -L $bindir -samefile $bindir/runon -exec rm -v {} \;
|
||||
find -L $bindir -samefile $venvdir/bin/runon -exec rm -v {} \;
|
||||
fi
|
||||
|
||||
if [ -d $venvdir ]; then
|
||||
echo "remove virtualenv $venvdir"
|
||||
rm -rf $venvdir
|
||||
fi
|
||||
|
||||
if [ -e $configdir ]; then
|
||||
echo "remove configs"
|
||||
rm -vf $configdir/runon.default.conf
|
||||
rmdir -v $configdir || true
|
||||
fi
|
||||
|
||||
echo "done."
|
Loading…
Reference in New Issue
Block a user