little alias helper
This commit is contained in:
parent
f692df2907
commit
c4f2d15e75
1 changed files with 64 additions and 0 deletions
64
s
Executable file
64
s
Executable file
|
@ -0,0 +1,64 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import subprocess as sp
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument("alias", nargs="?",
|
||||||
|
help="the replacement for the command")
|
||||||
|
parser.add_argument("arguments", nargs="*", default=[],
|
||||||
|
help="arguments that will be added to the argument")
|
||||||
|
|
||||||
|
parser.add_argument("-l", "--list", dest="list", action="store_true",
|
||||||
|
help="list mappings")
|
||||||
|
ag = parser.parse_args()
|
||||||
|
|
||||||
|
CFG = {
|
||||||
|
"offset": 10,
|
||||||
|
"mapping": {
|
||||||
|
"document": {"cmd": "sioyek", "pre_args": []},
|
||||||
|
"pdf": {"alias": "document", "pre_args": []},
|
||||||
|
|
||||||
|
"image": {"cmd": "nomacs", "pre_args": []},
|
||||||
|
|
||||||
|
"audio": {"cmd": "amberol", "pre_args": []},
|
||||||
|
"music": {"alias": "audio", "pre_args": []},
|
||||||
|
|
||||||
|
"video": {"cmd": "mpv", "pre_args": []}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
def run(command, pre_args):
|
||||||
|
cmd_list = [command]
|
||||||
|
cmd_list.extend(pre_args)
|
||||||
|
cmd_list.extend(ag.arguments)
|
||||||
|
return sp.run(cmd_list)
|
||||||
|
|
||||||
|
def offset(element, offset=CFG["offset"]):
|
||||||
|
"""
|
||||||
|
calculates the amount of spaces until `offset` is reached for `element` length
|
||||||
|
"""
|
||||||
|
element_length = len(element.strip(""))
|
||||||
|
if element_length >= offset:
|
||||||
|
return ""
|
||||||
|
else:
|
||||||
|
return " " * (offset - element_length)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ag.list:
|
||||||
|
for key, value in CFG["mapping"].items():
|
||||||
|
value_str = ""
|
||||||
|
for e_key, e_value in value.items():
|
||||||
|
value_str += e_key + ": " + str(e_value) + ", "
|
||||||
|
print(key, end="")
|
||||||
|
print(offset(key), value_str.rstrip(", "))
|
||||||
|
else:
|
||||||
|
for key, value in CFG["mapping"].items():
|
||||||
|
if ag.alias in key: # matching
|
||||||
|
if "alias" in value.keys():
|
||||||
|
cmd = CFG["mapping"][value["alias"]]["cmd"]
|
||||||
|
else:
|
||||||
|
cmd = value["cmd"]
|
||||||
|
|
||||||
|
run(cmd, value["pre_args"])
|
Loading…
Add table
Add a link
Reference in a new issue