52 lines
1 KiB
Python
52 lines
1 KiB
Python
import os
|
|
from subprocess import check_output
|
|
import re
|
|
|
|
|
|
def parent_dir(path):
|
|
return os.path.split(path)[0]
|
|
|
|
|
|
def ordered_path():
|
|
PATH = os.environ['PATH']
|
|
|
|
newPATH = []
|
|
for i in PATH.split(":"):
|
|
if i not in newPATH:
|
|
newPATH.append(i)
|
|
|
|
return ':'.join(newPATH)
|
|
|
|
|
|
def hex2rgb(e):
|
|
assert e.startswith("#")
|
|
e = e.strip("#").lower()
|
|
assert len(e) == 6
|
|
for i in e:
|
|
assert (i in "0123456789abcdef")
|
|
|
|
def h2r(i):
|
|
return str(eval('0x{}'.format(i)))
|
|
|
|
r = e[0:2]
|
|
g = e[2:4]
|
|
b = e[4:6]
|
|
|
|
return ", ".join([h2r(i) for i in (r, g, b)])
|
|
|
|
|
|
def rclone_obscure(pass_name):
|
|
try:
|
|
fPath = os.path.expanduser("~/.config/rclone/rclone.conf")
|
|
t = open(fPath, 'r').read()
|
|
|
|
PASSWORD_PATTERN = r'^pass *= *(.*)$'
|
|
password = re.search(PASSWORD_PATTERN, t, re.M).group(1)
|
|
return password
|
|
except Exception:
|
|
pass
|
|
|
|
def sh(*args):
|
|
return check_output(args).decode().strip()
|
|
|
|
return sh("rclone", "obscure", sh("_get-pass", pass_name))
|