mirror of
https://github.com/wting/autojump
synced 2024-10-27 20:34:07 +00:00
rename python files to prevent system wide installation collisions
This commit is contained in:
parent
23779d65a7
commit
a59d671fb0
36
bin/autojump
36
bin/autojump
@ -39,24 +39,24 @@ else:
|
||||
from itertools import ifilter
|
||||
from itertools import imap
|
||||
|
||||
from data import dictify
|
||||
from data import entriefy
|
||||
from data import Entry
|
||||
from data import load
|
||||
from data import save
|
||||
from utils import decode
|
||||
from utils import encode_local
|
||||
from utils import first
|
||||
from utils import get_tab_needle_and_path
|
||||
from utils import get_pwd
|
||||
from utils import has_uppercase
|
||||
from utils import is_osx
|
||||
from utils import last
|
||||
from utils import print_entry
|
||||
from utils import print_tab_menu
|
||||
from utils import sanitize
|
||||
from utils import surround_quotes
|
||||
from utils import take
|
||||
from autojump_data import dictify
|
||||
from autojump_data import entriefy
|
||||
from autojump_data import Entry
|
||||
from autojump_data import load
|
||||
from autojump_data import save
|
||||
from autojump_utils import decode
|
||||
from autojump_utils import encode_local
|
||||
from autojump_utils import first
|
||||
from autojump_utils import get_tab_needle_and_path
|
||||
from autojump_utils import get_pwd
|
||||
from autojump_utils import has_uppercase
|
||||
from autojump_utils import is_osx
|
||||
from autojump_utils import last
|
||||
from autojump_utils import print_entry
|
||||
from autojump_utils import print_tab_menu
|
||||
from autojump_utils import sanitize
|
||||
from autojump_utils import surround_quotes
|
||||
from autojump_utils import take
|
||||
|
||||
VERSION = '21.8-alpha'
|
||||
FUZZY_MATCH_THRESHOLD = 0.6
|
||||
|
@ -16,10 +16,10 @@ else:
|
||||
from itertools import ifilter
|
||||
from itertools import imap
|
||||
|
||||
from utils import create_dir
|
||||
from utils import is_osx
|
||||
from utils import is_python3
|
||||
from utils import move_file
|
||||
from autojump_utils import create_dir
|
||||
from autojump_utils import is_osx
|
||||
from autojump_utils import is_python3
|
||||
from autojump_utils import move_file
|
||||
|
||||
|
||||
BACKUP_THRESHOLD = 24 * 60 * 60
|
92
uninstall.py
Executable file
92
uninstall.py
Executable file
@ -0,0 +1,92 @@
|
||||
#!/usr/bin/env python2
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
from argparse import ArgumentParser
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
|
||||
|
||||
def parse_arguments():
|
||||
parser = ArgumentParser(
|
||||
description='Installs autojump globally for root users, otherwise \
|
||||
installs in current user\'s home directory.')
|
||||
parser.add_argument(
|
||||
'-n', '--dryrun', action="store_true", default=False,
|
||||
help='simulate installation')
|
||||
parser.add_argument(
|
||||
'-d', '--destdir', metavar='DIR',
|
||||
help='set destination to DIR')
|
||||
parser.add_argument(
|
||||
'-p', '--prefix', metavar='DIR',
|
||||
help='set prefix to DIR')
|
||||
parser.add_argument(
|
||||
'-z', '--zshshare', metavar='DIR',
|
||||
help='set zsh share destination to DIR')
|
||||
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def remove_system_installation(dryrun=False):
|
||||
default_destdir = '/'
|
||||
default_prefix = '/usr/local'
|
||||
default_zshshare = '/usr/share/zsh/site-functions'
|
||||
|
||||
bin_dir = os.path.join(default_destdir, default_prefix, 'bin')
|
||||
etc_dir = os.path.join(default_destdir, 'etc/profile.d')
|
||||
doc_dir = os.path.join(default_destdir, default_prefix, 'share/man/man1')
|
||||
icon_dir = os.path.join(default_destdir, default_prefix, 'share/autojump')
|
||||
zshshare_dir = os.path.join(default_destdir, default_zshshare)
|
||||
|
||||
if os.path.exists(os.path.join(bin_dir, 'autojump')):
|
||||
print("Found system installation.")
|
||||
else:
|
||||
return
|
||||
|
||||
rm(os.path.join(bin_dir, 'autojump'), dryrun)
|
||||
rm(os.path.join(bin_dir, 'data.py'), dryrun)
|
||||
rm(os.path.join(bin_dir, 'utils.py'), dryrun)
|
||||
rm(os.path.join(etc_dir, 'autojump.sh'), dryrun)
|
||||
rm(os.path.join(etc_dir, 'autojump.bash'), dryrun)
|
||||
rm(os.path.join(etc_dir, 'autojump.fish'), dryrun)
|
||||
rm(os.path.join(etc_dir, 'autojump.zsh'), dryrun)
|
||||
rm(os.path.join(zshshare_dir, '_j'), dryrun)
|
||||
rmdir(icon_dir, dryrun)
|
||||
rm(os.path.join(doc_dir, 'autojump.1'), dryrun)
|
||||
|
||||
|
||||
def remove_user_installation(dryrun=False):
|
||||
default_destdir = os.path.join(os.path.expanduser("~"), '.autojump')
|
||||
if os.path.exists(default_destdir):
|
||||
print("Found user installation.")
|
||||
rmdir(default_destdir, dryrun)
|
||||
|
||||
|
||||
def rm(path, dryrun):
|
||||
if os.path.exists(path):
|
||||
print("deleting file:", path)
|
||||
if not dryrun:
|
||||
shutil.rmtree(path)
|
||||
|
||||
|
||||
def rmdir(path, dryrun):
|
||||
if os.path.exists(path):
|
||||
print("deleting directory:", path)
|
||||
if not dryrun:
|
||||
shutil.rmtree(path)
|
||||
|
||||
|
||||
def main(args):
|
||||
if args.dryrun:
|
||||
print("Uninstalling autojump (DRYRUN)...")
|
||||
else:
|
||||
print("Uninstalling autojump...")
|
||||
|
||||
remove_user_installation(args.dryrun)
|
||||
remove_system_installation(args.dryrun)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main(parse_arguments()))
|
94
uninstall.sh
94
uninstall.sh
@ -1,94 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
function help_msg {
|
||||
echo "sudo ./uninstall.sh [--prefix /usr/local]"
|
||||
}
|
||||
|
||||
function remove_msg {
|
||||
echo
|
||||
echo "Please remove the line from .${2}rc :"
|
||||
echo
|
||||
if [ "${1}" == "global" ]; then
|
||||
echo -e "\t[[ -s /etc/profile.d/autojump.${2} ]] && source /etc/profile.d/autojump.${2}"
|
||||
elif [ "${1}" == "local" ]; then
|
||||
echo -e "\t[[ -s ~/.autojump/etc/profile.d/autojump.${2} ]] && source ~/.autojump/etc/profile.d/autojump.${2}"
|
||||
fi
|
||||
echo
|
||||
}
|
||||
|
||||
# Default install directory.
|
||||
prefix=/usr
|
||||
|
||||
user=${SUDO_USER:-${USER}}
|
||||
OS=`uname`
|
||||
|
||||
if [ $OS == 'Darwin' ]; then
|
||||
user_home=$(dscl . -search /Users UniqueID ${user} | cut -d: -f6)
|
||||
else
|
||||
user_home=$(getent passwd ${user} | cut -d: -f6)
|
||||
fi
|
||||
bashrc_file=${user_home}/.bashrc
|
||||
|
||||
# Command line parsing
|
||||
while true; do
|
||||
case "$1" in
|
||||
-h|--help|-\?) help_msg; exit 0;;
|
||||
-p|--prefix)
|
||||
if [ $# -gt 1 ]; then
|
||||
prefix=$2; shift 2
|
||||
else
|
||||
echo "--prefix or -p require an argument" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
--) shift; break;;
|
||||
-*) echo "invalid option: $1" 1>&2; help_msg; exit 1;;
|
||||
*) break;;
|
||||
esac
|
||||
done
|
||||
|
||||
# UNINSTALL AUTOJUMP
|
||||
# global / custom location installations
|
||||
if [ -d "${prefix}/share/autojump/" ]; then
|
||||
echo
|
||||
echo "Uninstalling from ${prefix} ..."
|
||||
echo
|
||||
sudo rm -rv ${prefix}/share/autojump/
|
||||
sudo rm -v ${prefix}/bin/autojump
|
||||
sudo rm -v ${prefix}/share/man/man1/autojump.1
|
||||
sudo rm -v /etc/profile.d/autojump.sh
|
||||
|
||||
if [ -f /etc/profile.d/autojump.bash ]; then
|
||||
sudo rm -v /etc/profile.d/autojump.bash
|
||||
remove_msg "global" "bash"
|
||||
fi
|
||||
|
||||
if [ -f /etc/profile.d/autojump.zsh ]; then
|
||||
sudo rm -v /etc/profile.d/autojump.zsh
|
||||
|
||||
fpath=`/usr/bin/env zsh -c 'echo $fpath'`
|
||||
for f in ${fpath}; do
|
||||
if [[ -f ${f}/_j ]]; then
|
||||
sudo rm -v ${f}/_j
|
||||
fi
|
||||
done
|
||||
|
||||
remove_msg "global" "zsh"
|
||||
fi
|
||||
fi
|
||||
|
||||
# local installations
|
||||
if [ -d ~/.autojump/ ]; then
|
||||
echo
|
||||
echo "Uninstalling from ~/.autojump/ ..."
|
||||
echo
|
||||
|
||||
if [ -f ~/.autojump/etc/profile.d/autojump.bash ]; then
|
||||
rm -rv ~/.autojump/
|
||||
remove_msg "local" "bash"
|
||||
fi
|
||||
if [ -f ~/.autojump/etc/profile.d/autojump.zsh ]; then
|
||||
rm -rv ~/.autojump/
|
||||
remove_msg "local" "zsh"
|
||||
fi
|
||||
fi
|
Loading…
Reference in New Issue
Block a user