def v_grep(): q = request.args.get('q', '') if q == '': return render_template("v_grep.html", searchtype="initial", viewernotes=get_fortune()) # So we have a query to search. caseSensitive = request.args.get('c', False, bool) files = search.search_files_for_string(q, caseSensitive) items = [] for f in files: parts = f.relative_to(config.get_user_data_dir()).parts if len(parts) < 4: continue year = parts[0] month = parts[1] day = parts[2] if(str(parts[3]) == 'src'): meat = parts[4] else: meat = parts[3] item = dbops.get_record_by_file(year, month, day, meat) if not(item == None): items.append({'loc': url_for('v_grep_viewer', q=q, ident=item.doc_id, meat=item['Buc_name']), 'name': menu_name_for_item(item)}) if (items == []): return render_template("v_grep.html", searchtype="empty", q=q, viewernotes=get_fortune()) return render_template('viewer.html', items=items, view_name='grep', breadcrumbs = [{'loc': url_for('v_grep'),'name':'By grep'}, {'loc': url_for('v_grep', q=q, c='1' if caseSensitive else '0'), 'name': q, 'current':1}], viewernotes=get_fortune())
def commit(mesg): if not config.enable_vcs_commits(): return print('*** Bucephalus VCS is enabled: commit: ' + mesg) path = config.get_user_data_dir() if not ((path / ".git").exists() and (path / ".git").is_dir()): subprocess.call(['git', '-C', str(path), 'init']) commit(mesg) return subprocess.call(['git', '-C', str(path), 'add', str(path)]) subprocess.call([ 'git', '-C', str(path), 'commit', '--quiet', '-m', 'Bucephalus: ' + mesg, '--author=Bucephalus Automated <bucep5@localhost>' ])
import json from pathlib import Path import config import vcs directory = config.get_user_data_dir() def tasks(): filename = Path(directory) / "tasks.json" decoder = json.JSONDecoder() if not filename.exists(): return [] with filename.open() as f: return decoder.decode(f.read()) def add(task): filename = Path(directory) / "tasks.json" encoder = json.JSONEncoder(indent=2) tasklist = tasks() + [task] # Need to read before we open for writing. with filename.open(mode='w') as f: f.write(encoder.encode(tasklist)) vcs.commit("Tasklist: add task") def rm(taskids): filename = Path(directory) / "tasks.json"
def list_files(): return recurse(config.get_user_data_dir())