|
|
@@ -2,7 +2,10 @@
|
|
|
|
|
|
from argparse import ArgumentParser,Namespace
|
|
|
|
|
|
-GIT_CMD = ["git", "log", "--all", '--pretty=format:user:%aN%n%ct', "--reverse", "--raw", "--encoding=UTF-8", "--no-renames"]
|
|
|
+GIT_CMD = ["git", "log",
|
|
|
+ "--all", '--pretty=format:user:%aN%n%ct',
|
|
|
+ "--reverse", "--raw", "--encoding=UTF-8",
|
|
|
+ "--no-renames", "--no-show-signature"]
|
|
|
SCHEMA=[
|
|
|
'''
|
|
|
CREATE TABLE IF NOT EXISTS user (
|
|
|
@@ -51,7 +54,6 @@ SELECT time,user.name as user,action,repo.path as repo, file.path as file FROM c
|
|
|
LEFT JOIN user ON user.id = change.user_id
|
|
|
LEFT JOIN repo ON repo.id = change.repo_id
|
|
|
LEFT JOIN file ON file.id = change.file_id
|
|
|
-ORDER BY time ASC
|
|
|
'''
|
|
|
|
|
|
def main():
|
|
|
@@ -75,6 +77,9 @@ def parser():
|
|
|
p_join.add_argument('-p','--prefix')
|
|
|
p_select = sub.add_parser('select')
|
|
|
p_select.add_argument('output')
|
|
|
+ p_select.add_argument('--repo-like', default=None, type=str)
|
|
|
+ p_select.add_argument('--file-like', default=None, type=str)
|
|
|
+ p_select.add_argument('--user-like', default=None, type=str)
|
|
|
p_select.set_defaults(func=select)
|
|
|
return p
|
|
|
|
|
|
@@ -183,7 +188,22 @@ def select(args: Namespace):
|
|
|
import sqlite3
|
|
|
import os
|
|
|
with sqlite3.connect(args.output) as db:
|
|
|
- for i in db.execute(STMT_SELECT):
|
|
|
+ STMT = STMT_SELECT
|
|
|
+ ARGS = []
|
|
|
+ WHERE_VERB = "WHERE"
|
|
|
+ if args.user_like:
|
|
|
+ STMT += " "+WHERE_VERB+" user.name LIKE ? "
|
|
|
+ ARGS.append(args.user_like)
|
|
|
+ WHERE_VERB = "AND"
|
|
|
+ if args.repo_like:
|
|
|
+ STMT += " "+WHERE_VERB+" repo.path LIKE ? "
|
|
|
+ ARGS.append(args.repo_like)
|
|
|
+ WHERE_VERB = "AND"
|
|
|
+ if args.file_like:
|
|
|
+ STMT += " "+WHERE_VERB+" file.path LIKE ? "
|
|
|
+ ARGS.append(args.file_like)
|
|
|
+ WHERE_VERB = "AND"
|
|
|
+ for i in db.execute(STMT + " ORDER BY time ASC", ARGS):
|
|
|
# print(i)
|
|
|
path = os.path.join(i[3],i[4])
|
|
|
print('|'.join((str(i[0]),i[1],i[2],path)))
|