Browse Source

added __ignore__ to ignore dir and all subdirectories

master
Raphael Roberts 7 years ago
parent
commit
d6f204e830
  1. 4
      .gitignore
  2. 6
      ext_open/config.ini
  3. 3
      ext_open/ext_open.py
  4. 16
      ext_open/update.py

4
.gitignore

@ -59,4 +59,6 @@ docs/_build/
# PyBuilder # PyBuilder
target/ target/
/test/ /test/
test_*.py
test_*.py
__ignore__
*.bak

6
ext_open/config.ini

@ -6,14 +6,14 @@
; path to database where file entries are to be stored ; path to database where file entries are to be stored
db_path = %userprofile%\Documents\local_repo\windows\ext_open\ext_open\ext.db db_path = %userprofile%\Documents\local_repo\windows\ext_open\ext_open\ext.db
; program or script used to update modified times ; program or script used to update modified times
modified_time_updater = %userprofile%\portables\foldertimeupdate\FolderTimeUpdate.exe
modified_time_updater = "%userprofile%\portables\foldertimeupdate\FolderTimeUpdate.exe" /stext nul BaseFolder
; how many files inserted before committing ; how many files inserted before committing
commit_interval = 30 commit_interval = 30
[exe] [exe]
; comma separated paths ; comma separated paths
paths = %userprofile%,%programfiles%,%programfiles(x86)%,
paths = %userprofile%,%programfiles%,%programfiles(x86)%
[py] [py]
paths = "%userprofile%\Documents\local_repo\windows\ext_open"
paths = "%userprofile%\Documents\local_repo\",%userprofile%\Google Drive\Python,
; editor = ${global:editor} ; editor = ${global:editor}
idle_edit = pythonw -m idlelib -e idle_edit = pythonw -m idlelib -e
execute = python execute = python

3
ext_open/ext_open.py

@ -7,6 +7,7 @@ import pyperclip
import searcher import searcher
parser = argparse.ArgumentParser(prog='ext-open',prefix_chars=prefix_char) parser = argparse.ArgumentParser(prog='ext-open',prefix_chars=prefix_char)
sub_parsers = parser.add_subparsers(dest='ext') sub_parsers = parser.add_subparsers(dest='ext')
sub_parsers.required = True
exe_parser = sub_parsers.add_parser('exe',prefix_chars=prefix_char) exe_parser = sub_parsers.add_parser('exe',prefix_chars=prefix_char)
update_parser = sub_parsers.add_parser('update',prefix_chars=prefix_char) update_parser = sub_parsers.add_parser('update',prefix_chars=prefix_char)
for opt in prefix: for opt in prefix:
@ -32,7 +33,7 @@ if __name__ == "__main__":
elif args.trim_history.isdecimal: elif args.trim_history.isdecimal:
n = int(args.trim_history) n = int(args.trim_history)
s.clean(n) s.clean(n)
s.update()
s.update(args.update_modified_times)
else: else:
s = searcher.Searcher(args.ext) s = searcher.Searcher(args.ext)
if args.__dict__.pop('exact'): if args.__dict__.pop('exact'):

16
ext_open/update.py

@ -4,20 +4,20 @@ import argparse
import datetime import datetime
import os import os
import os.path as osp import os.path as osp
import shlex
import sqlite3 import sqlite3
import subprocess import subprocess
import time import time
import traceback import traceback
FORCE_ADMIN = not config.getboolean('global','no_admin',fallback=False) FORCE_ADMIN = not config.getboolean('global','no_admin',fallback=False)
TEST = True
DB_PATH = config.getpath('global','db_path') DB_PATH = config.getpath('global','db_path')
ext_database = sqlite3.connect(DB_PATH) ext_database = sqlite3.connect(DB_PATH)
EXE_PATH = config.getpath('global','modified_time_updater') EXE_PATH = config.getpath('global','modified_time_updater')
def update_mtimes(starts): def update_mtimes(starts):
global EXE_PATH
if not is_admin() and FORCE_ADMIN: if not is_admin() and FORCE_ADMIN:
raise Exception("Process must be admin") raise Exception("Process must be admin")
for start in starts: for start in starts:
@ -32,15 +32,20 @@ def build(after,starts):
for path in starts: for path in starts:
for root,dirs,files in os.walk(path,topdown=True): for root,dirs,files in os.walk(path,topdown=True):
try: try:
for file in files:
yield os.path.join(root,file)
dirs[:] = list(filter(lambda p: osp.getmtime(osp.join(root,p)) > after,dirs))
ignore = any('__ignore__' in files)
if ignore:
del dirs
else:
for file in files:
yield os.path.join(root,file)
dirs[:] = list(filter(lambda p: osp.getmtime(osp.join(root,p)) > after,dirs))
except: except:
print('Error',root,sep= ': ') print('Error',root,sep= ': ')
def _update(ext,starts,after,do_update_mtimes = False): def _update(ext,starts,after,do_update_mtimes = False):
if do_update_mtimes: if do_update_mtimes:
update_mtimes(starts) update_mtimes(starts)
starts = no_parents(starts)
files = build(after,starts) files = build(after,starts)
for file in files: for file in files:
if file.endswith(ext): if file.endswith(ext):
@ -92,7 +97,6 @@ def update(ext,do_update_mtimes):
except Exception as e: except Exception as e:
set_updating(ext,ext_database,False) set_updating(ext,ext_database,False)
traceback.print_exc()
input() input()
raise e raise e

Loading…
Cancel
Save