Merge branch 'master' of github.com:rad4day/dotfiles

This commit is contained in:
Tobias Manske 2018-06-11 09:42:23 +02:00
commit e136889257
No known key found for this signature in database
GPG Key ID: 978D99F12D4E041F
3 changed files with 49 additions and 19 deletions

View File

@ -3,7 +3,7 @@
name = Tobias Manske
signingkey = 978D99F12D4E041F
[alias]
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
lg = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all
cu = "!git branch --merged | grep -v '\\*' | grep -v master | xargs -n 1 git branch -d"
undo = reset HEAD~
[commit]

View File

@ -15,5 +15,10 @@ class Dmenu(object):
def run(self):
"""Returns (exitCode, stdout)"""
p1 = subprocess.run(self._dmenu, input="\n".join(self._items), encoding="utf-8", stdout=subprocess.PIPE)
p1 = subprocess.run(
self._dmenu,
input="\n".join(self._items),
encoding="utf-8",
stdout=subprocess.PIPE,
)
return (p1.returncode, p1.stdout)

View File

@ -20,18 +20,40 @@ con = sqlite3.connect(os.path.dirname(sys.argv[0]) + "/database.sqlite")
# ARGUMENTS PARSER
parser = argparse.ArgumentParser(description='Smart Dropdown Launcher for AwesomeWM')
parser.add_argument('--create', dest='FLAG_CREATE', action='store_const', const=True, default=False, help='Force TABLE \
CREATION')
parser.add_argument('--build', dest='FLAG_BUILD', action='store_const', const=True, default=False, help='Force Build \
the Database')
parser.add_argument('--truncate', dest='FLAG_TRUNCATE', action='store_const', const=True, default=False, help='Truncate\
Database during build')
parser = argparse.ArgumentParser(description="Smart Dropdown Launcher for AwesomeWM")
parser.add_argument(
"--create",
dest="FLAG_CREATE",
action="store_const",
const=True,
default=False,
help="Force TABLE \
CREATION",
)
parser.add_argument(
"--build",
dest="FLAG_BUILD",
action="store_const",
const=True,
default=False,
help="Force Build \
the Database",
)
parser.add_argument(
"--truncate",
dest="FLAG_TRUNCATE",
action="store_const",
const=True,
default=False,
help="Truncate\
Database during build",
)
args = parser.parse_args()
# Helper functions
def create_db():
command = "CREATE TABLE entries(`ID` INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE, `Name` TEXT, `json` TEXT, `hits` INTEGER NOT NULL DEFAULT 0, `disabled` INTEGER NOT NULL DEFAULT 0, `type` TEXT NOT NULL DEFAULT 'file', `file` TEXT);"
with con:
@ -49,7 +71,7 @@ def retrieve_db():
ro = cur.fetchall()
for r in ro:
r = dict(r)
r['json'] = json.loads(r['json'])
r["json"] = json.loads(r["json"])
rows.append(r)
return rows
@ -59,16 +81,19 @@ def build_db():
for mod in loadModules:
entries.update(mod.build_db())
for k, v in entries.items():
if "Exec" in v["json"]:
with con:
con.cursor().execute("INSERT INTO entries(Name, json, file, type, disabled) VALUES(?, ?, ?, ?, ?)",
(k, json.dumps(v['json']), v['file'], v['type'], v['disabled']))
con.cursor().execute(
"INSERT INTO entries(Name, json, file, type, disabled) VALUES(?, ?, ?, ?, ?)",
(k, json.dumps(v["json"]), v["file"], v["type"], v["disabled"]),
)
def build_menu():
entries = []
db = retrieve_db()
for mod in loadModules:
entries += mod.build_menu([x for x in db if x['type'] == mod.db_type])
entries += mod.build_menu([x for x in db if x["type"] == mod.db_type])
# sort by hits
return sorted(entries, key=lambda i: i[2], reverse=True)
@ -80,21 +105,21 @@ def run_program(data):
cur.execute("UPDATE entries SET hits=? WHERE ID=?", (data[2] + 1, data[0]))
cur.execute("SELECT type FROM entries WHERE ID=?", (data[0],))
con.commit()
typ = dict(cur.fetchone())['type']
typ = dict(cur.fetchone())["type"]
for mod in loadModules:
if mod.db_type == typ:
mod.call(data[1])
if (args.FLAG_CREATE):
if args.FLAG_CREATE:
with con:
con.cursor().execute("DROP TABLE IF EXISTS entries;")
create_db()
# set BUILD flag so the database gets rebuilt too
args.FLAG_BUILD = True
if (args.FLAG_BUILD):
if(args.FLAG_TRUNCATE):
if args.FLAG_BUILD:
if args.FLAG_TRUNCATE:
with con:
con.cursor().execute("DELETE FROM entries")
con.cursor().execute("DELETE FROM sqlite_sequence WHERE name='entries'")
@ -104,7 +129,7 @@ if (args.FLAG_BUILD):
entries = build_menu()
p1 = Dmenu([x[1] for x in entries]).run()
if (p1[0] != 0):
if p1[0] != 0:
# error on escape
exit(1)