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