This repository has been archived on 2024-04-07. You can view files and clone it, but cannot push or open issues or pull requests.
dotfiles/funcs.py

83 lines
1.8 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 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))
####################################################################
# color
####################################################################
def split_hex(e):
e = e.lstrip("#").lower()
return e[0:2], e[2:4], e[4:6]
def hex2rgb(e):
return ", ".join([str(int(s, base=16))
for s in split_hex(e)])
def color_mult(e: str, amount: float):
"""\
Multiply e hex rgb colorCode with amount number
Usefull for lightening/darkening
"""
def segment(s):
base256 = int(s, base=16)
result_val = base256 * amount
# normalize between 0 and 255
result_val = min(255, max(0, result_val))
hex_result = hex(int(result_val))[2:]
return hex_result.zfill(2)
prefix = "#" * e.startswith("#")
return prefix + "".join(map(segment, split_hex(e)))
####################################################################
# Filters
####################################################################
def darker(arg1, amount=0.75):
return color_mult(arg1, amount)
def lighter(arg1, amount=1.25):
return color_mult(arg1, amount)