-
Notifications
You must be signed in to change notification settings - Fork 0
/
gum_wrapper.py
86 lines (74 loc) · 2.33 KB
/
gum_wrapper.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import os
import subprocess
def choose(options: list, limit: bool=True):
oxot = []
for option in options:
oxot.append(f'"{option}"')
options = ' '.join(oxot)
if not limit:
result = os.popen(f"./gum choose --no-limit {options}")
else:
result = os.popen(f"./gum choose {options}")
if not limit:
return result.read().replace(r"\n", "\n").strip().split("\n")
else:
return result.read().replace(r"\n", "\n").strip()
def input(placeholder: str=None, password: bool=False):
if not placeholder:
if not password:
result = os.popen(f"./gum input")
else:
result = os.popen(f"./gum input --password")
return result.read().replace(r"\n", "\n").strip()
else:
if not password:
result = os.popen(f'./gum input --placeholder "{placeholder}"')
else:
result = os.popen(f'./gum input --password --placeholder "{placeholder}"')
return result.read().replace(r"\n", "\n").strip()
def write(placeholder: str=None):
if not placeholder:
result = os.popen(f"gum write")
return result.read().replace(r"\n", "\n").strip()
else:
result = os.popen(f'./gum write --placeholder "{placeholder}"')
return result.read().replace(r"\n", "\n").strip()
def confirm(text: str):
args = [f'./gum confirm "{text}"']
res = subprocess.Popen(args, shell=True)
res.wait()
rco = res.returncode
if rco == 0:
return True
else:
return False
class symbols:
line = "line"
dot = "dot"
minidot = "minidot"
jump = "jump"
pulse = "pulse"
points = "points"
globe = "globe"
moon = "moon"
monkey = "monkey"
meter = "meter"
hamburger = "hamburger"
def spin(cmd: str, title:str=None,line: str=None):
if not title:
if not line:
os.system(f'./gum spin "{cmd}"')
else:
os.system(f'./gum spin -s {line} "{cmd}"')
else:
if not line:
os.system(f'./gum spin --title "{title}" "{cmd}"')
else:
os.system(f'./gum spin --title "{title}" -s {line} "{cmd}"')
class formattation:
markdown = "markdown"
code = "code"
templace = "template"
emoji = "emoji"
def format(text: str, format: str):
os.system(f'echo "{text}" | ./gum format -t {format}')