mirror of
				https://github.com/wting/autojump
				synced 2025-06-13 12:54:07 +00:00 
			
		
		
		
	
							parent
							
								
									06e082c918
								
							
						
					
					
						commit
						29c0c46883
					
				@ -1,8 +1,14 @@
 | 
			
		||||
export AUTOJUMP_SOURCED=1
 | 
			
		||||
 | 
			
		||||
if [[ "${OS}" =~ Windows ]]; then
 | 
			
		||||
    local_autojump_dir="${LOCALAPPDATA}/autojump"
 | 
			
		||||
else
 | 
			
		||||
    local_autojump_dir="~/.autojump"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# set user installation paths
 | 
			
		||||
if [[ -d ~/.autojump/ ]]; then
 | 
			
		||||
    export PATH=~/.autojump/bin:"${PATH}"
 | 
			
		||||
if [[ -d "${local_autojump_dir}" ]]; then
 | 
			
		||||
    export PATH="${local_autojump_dir}":"${PATH}"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -12,13 +12,20 @@ else
 | 
			
		||||
    shell=$(echo ${SHELL} | awk -F/ '{ print $NF }')
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Support git-bash (msysgit)
 | 
			
		||||
if [[ "${OS}" =~ Windows ]]; then
 | 
			
		||||
    local_autojump_dir="${LOCALAPPDATA}/autojump"
 | 
			
		||||
else
 | 
			
		||||
    local_autojump_dir="~/.autojump"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# prevent circular loop for sh shells
 | 
			
		||||
if [ "${shell}" = "sh" ]; then
 | 
			
		||||
    return 0
 | 
			
		||||
 | 
			
		||||
# check local install
 | 
			
		||||
elif [ -s ~/.autojump/share/autojump/autojump.${shell} ]; then
 | 
			
		||||
    source ~/.autojump/share/autojump/autojump.${shell}
 | 
			
		||||
elif [ -s "${local_autojump_dir}/share/autojump/autojump.${shell}" ]; then
 | 
			
		||||
    source "${local_autojump_dir}/share/autojump/autojump.${shell}"
 | 
			
		||||
 | 
			
		||||
# check global install
 | 
			
		||||
elif [ -s /usr/local/share/autojump/autojump.${shell} ]; then
 | 
			
		||||
 | 
			
		||||
@ -75,9 +75,12 @@ def match_consecutive(needles, haystack, ignore_case=False):
 | 
			
		||||
            (path='/foo/baz', weight=10),
 | 
			
		||||
        ]
 | 
			
		||||
    """
 | 
			
		||||
    regex_no_sep = '[^' + os.sep + ']*'
 | 
			
		||||
 | 
			
		||||
    # We explicitly use forward slash instead of os.sep as this works across unix platforms as well as msysgit in Windows
 | 
			
		||||
    separator = '/'
 | 
			
		||||
    regex_no_sep = '[^' + separator + ']*'
 | 
			
		||||
    regex_no_sep_end = regex_no_sep + '$'
 | 
			
		||||
    regex_one_sep = regex_no_sep + os.sep + regex_no_sep
 | 
			
		||||
    regex_one_sep = regex_no_sep + separator + regex_no_sep
 | 
			
		||||
    regex_needle = regex_one_sep.join(imap(re.escape, needles)) + regex_no_sep_end
 | 
			
		||||
    regex_flags = re.IGNORECASE | re.UNICODE if ignore_case else re.UNICODE
 | 
			
		||||
    found = lambda entry: re.search(
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										24
									
								
								install.py
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								install.py
									
									
									
									
									
								
							@ -19,10 +19,28 @@ def cp(src, dest, dryrun=False):
 | 
			
		||||
        shutil.copy(src, dest)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def in_bash():
 | 
			
		||||
    return get_shell() == 'bash'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def in_msysgit():
 | 
			
		||||
    return platform.system() == 'Windows' and in_bash()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_shell():
 | 
			
		||||
    return os.path.basename(os.getenv('SHELL', ''))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def unixify(path):
 | 
			
		||||
    if in_msysgit():
 | 
			
		||||
        idx = path.find(':')
 | 
			
		||||
        if idx == -1:
 | 
			
		||||
            return path
 | 
			
		||||
        drive_letter = path[0:idx].lower()
 | 
			
		||||
        path = '/' + drive_letter + path[idx + 1:].replace('\\', '/')
 | 
			
		||||
    return path
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def mkdir(path, dryrun=False):
 | 
			
		||||
    print('creating directory:', path)
 | 
			
		||||
    if not dryrun and not os.path.exists(path):
 | 
			
		||||
@ -156,7 +174,7 @@ def parse_arguments():  # noqa
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def show_post_installation_message(etc_dir, share_dir, bin_dir):
 | 
			
		||||
    if platform.system() == 'Windows':
 | 
			
		||||
    if platform.system() == 'Windows' and not in_bash():
 | 
			
		||||
        print('\nPlease manually add %s to your user path' % bin_dir)
 | 
			
		||||
    else:
 | 
			
		||||
        if get_shell() == 'fish':
 | 
			
		||||
@ -164,7 +182,7 @@ def show_post_installation_message(etc_dir, share_dir, bin_dir):
 | 
			
		||||
            source_msg = 'if test -f %s; . %s; end' % (aj_shell, aj_shell)
 | 
			
		||||
            rcfile = '~/.config/fish/config.fish'
 | 
			
		||||
        else:
 | 
			
		||||
            aj_shell = '%s/autojump.sh' % etc_dir
 | 
			
		||||
            aj_shell = '%s/autojump.sh' % unixify(etc_dir)
 | 
			
		||||
            source_msg = '[[ -s %s ]] && source %s' % (aj_shell, aj_shell)
 | 
			
		||||
 | 
			
		||||
            if platform.system() == 'Darwin' and get_shell() == 'bash':
 | 
			
		||||
@ -205,7 +223,7 @@ def main(args):
 | 
			
		||||
    cp('./bin/icon.png', share_dir, args.dryrun)
 | 
			
		||||
    cp('./docs/autojump.1', doc_dir, args.dryrun)
 | 
			
		||||
 | 
			
		||||
    if platform.system() == 'Windows':
 | 
			
		||||
    if platform.system() == 'Windows' and not in_bash():
 | 
			
		||||
        cp('./bin/autojump.lua', args.clinkdir, args.dryrun)
 | 
			
		||||
        cp('./bin/autojump.bat', bin_dir, args.dryrun)
 | 
			
		||||
        cp('./bin/j.bat', bin_dir, args.dryrun)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										10
									
								
								uninstall.py
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								uninstall.py
									
									
									
									
									
								
							@ -11,6 +11,14 @@ sys.path.append('bin')
 | 
			
		||||
from autojump_argparse import ArgumentParser  # noqa
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_shell():
 | 
			
		||||
    return os.path.basename(os.getenv('SHELL', ''))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def in_bash():
 | 
			
		||||
    return get_shell == 'bash'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def is_empty_dir(path):
 | 
			
		||||
    """
 | 
			
		||||
    Checks if any files are present within a directory and all sub-directories.
 | 
			
		||||
@ -72,7 +80,7 @@ def remove_custom_installation(args, dryrun=False):
 | 
			
		||||
    rm(os.path.join(bin_dir, 'autojump_data.py'), dryrun)
 | 
			
		||||
    rm(os.path.join(bin_dir, 'autojump_utils.py'), dryrun)
 | 
			
		||||
    rm(os.path.join(bin_dir, 'autojump_argparse.py'), dryrun)
 | 
			
		||||
    if platform.system() == 'Windows':
 | 
			
		||||
    if platform.system() == 'Windows' and not in_bash():
 | 
			
		||||
        if os.path.exists(args.clinkdir):
 | 
			
		||||
            rm(os.path.join(args.clinkdir, 'autojump.lua'), dryrun)
 | 
			
		||||
        rm(os.path.join(bin_dir, 'autojump.bat'), dryrun)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user