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
target/
/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
db_path = %userprofile%\Documents\local_repo\windows\ext_open\ext_open\ext.db
; 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
commit_interval = 30
[exe]
; comma separated paths
paths = %userprofile%,%programfiles%,%programfiles(x86)%,
paths = %userprofile%,%programfiles%,%programfiles(x86)%
[py]
paths = "%userprofile%\Documents\local_repo\windows\ext_open"
paths = "%userprofile%\Documents\local_repo\",%userprofile%\Google Drive\Python,
; editor = ${global:editor}
idle_edit = pythonw -m idlelib -e
execute = python

3
ext_open/ext_open.py

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

16
ext_open/update.py

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

Loading…
Cancel
Save