mirror of
				https://github.com/wting/autojump
				synced 2025-06-13 12:54:07 +00:00 
			
		
		
		
	add purge feature
This commit is contained in:
		
							parent
							
								
									bde9ac1d9f
								
							
						
					
					
						commit
						95c81b7665
					
				@ -21,6 +21,7 @@
 | 
			
		||||
 | 
			
		||||
from __future__ import division, print_function
 | 
			
		||||
 | 
			
		||||
from itertools import ifilter
 | 
			
		||||
from math import sqrt
 | 
			
		||||
from operator import itemgetter
 | 
			
		||||
import os
 | 
			
		||||
@ -32,8 +33,8 @@ from argparse import ArgumentParser
 | 
			
		||||
from data import save
 | 
			
		||||
from data import load
 | 
			
		||||
from utils import decode
 | 
			
		||||
from utils import encode_local
 | 
			
		||||
from utils import is_osx
 | 
			
		||||
from utils import print_dir
 | 
			
		||||
 | 
			
		||||
VERSION = 'release-v21.8.0'
 | 
			
		||||
 | 
			
		||||
@ -99,9 +100,9 @@ def parse_args(config):
 | 
			
		||||
    # parser.add_argument(
 | 
			
		||||
            # '--complete', action="store_true", default=False,
 | 
			
		||||
            # help='used for tab completion')
 | 
			
		||||
    # parser.add_argument(
 | 
			
		||||
            # '--purge', action="store_true", default=False,
 | 
			
		||||
            # help='delete all database entries that no longer exist on system')
 | 
			
		||||
    parser.add_argument(
 | 
			
		||||
            '--purge', action="store_true", default=False,
 | 
			
		||||
            help='remove non-existent paths from database')
 | 
			
		||||
    parser.add_argument(
 | 
			
		||||
            '-s', '--stat', action="store_true", default=False,
 | 
			
		||||
            help='show database entries and their key weights')
 | 
			
		||||
@ -116,25 +117,16 @@ def parse_args(config):
 | 
			
		||||
        sys.exit(0)
 | 
			
		||||
 | 
			
		||||
    if args.increase:
 | 
			
		||||
        path, weight = add_path(config, os.getcwd(), args.increase)
 | 
			
		||||
        print(encode_local("%.1f:\t%s" % (weight, path)))
 | 
			
		||||
        print_dir(add_path(config, os.getcwd(), args.increase))
 | 
			
		||||
        sys.exit(0)
 | 
			
		||||
 | 
			
		||||
    if args.decrease:
 | 
			
		||||
        path, weight = decrease_path(config, os.getcwd(), args.decrease)
 | 
			
		||||
        print(encode_local("%.1f:\t%s" % (weight, path)))
 | 
			
		||||
        print_dir(decrease_path(config, os.getcwd(), args.decrease))
 | 
			
		||||
        sys.exit(0)
 | 
			
		||||
 | 
			
		||||
    # if args.purge:
 | 
			
		||||
        # removed = db.purge()
 | 
			
		||||
 | 
			
		||||
        # if len(removed):
 | 
			
		||||
            # for dir in removed:
 | 
			
		||||
                # output(dir)
 | 
			
		||||
 | 
			
		||||
        # print("Number of database entries removed: %d" % len(removed))
 | 
			
		||||
 | 
			
		||||
        # sys.exit(0)
 | 
			
		||||
    if args.purge:
 | 
			
		||||
        print("Purged %d entries." % purge_missing_paths(config))
 | 
			
		||||
        sys.exit(0)
 | 
			
		||||
 | 
			
		||||
    if args.stat:
 | 
			
		||||
        print_stats(config)
 | 
			
		||||
@ -176,11 +168,20 @@ def decrease_path(config, path, increment=15):
 | 
			
		||||
    return path, data[path]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def purge_missing_paths(config):
 | 
			
		||||
    """Remove non-existent paths."""
 | 
			
		||||
    exists = lambda x: os.path.exists(x[0])
 | 
			
		||||
    old_data = load(config)
 | 
			
		||||
    new_data = dict(ifilter(exists, old_data.iteritems()))
 | 
			
		||||
    save(config, new_data)
 | 
			
		||||
    return len(old_data) - len(new_data)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def print_stats(config):
 | 
			
		||||
    data = load(config)
 | 
			
		||||
 | 
			
		||||
    for path, weight in sorted(data.iteritems(), key=itemgetter(1)):
 | 
			
		||||
        print(encode_local("%.1f:\t%s" % (weight, path)))
 | 
			
		||||
        print_dir(path, weight)
 | 
			
		||||
 | 
			
		||||
    print("________________________________________\n")
 | 
			
		||||
    print("%d:\t total weight" % sum(data.itervalues()))
 | 
			
		||||
 | 
			
		||||
@ -67,3 +67,7 @@ def move_file(src, dst):
 | 
			
		||||
        # raises exception if file is in use on Windows
 | 
			
		||||
        os.remove(dst)
 | 
			
		||||
    shutil.move(src, dst)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def print_dir(path, weight):
 | 
			
		||||
    print(encode_local("%.1f:\t%s" % (weight, path)))
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user