1
0
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:
William Ting 2013-12-30 14:49:34 -06:00
parent 23779d65a7
commit a59d671fb0
5 changed files with 114 additions and 116 deletions

View File

@ -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

View File

@ -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
View 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()))

View File

@ -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