Skip to content

Commit 254e458

Browse files
committed
beginning of cli completion for kill-session and attach
1 parent 1a679c6 commit 254e458

File tree

1 file changed

+34
-15
lines changed

1 file changed

+34
-15
lines changed

tmuxp/cli.py

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@
2121

2222
logger = logging.getLogger(__name__)
2323

24+
config_dir = os.path.expanduser('~/.tmuxp/')
25+
cwd_dir = os.getcwd() + '/'
26+
2427

2528
def query_yes_no(question, default="yes"):
2629
"""Ask a yes/no question via raw_input() and return their answer.
@@ -96,15 +99,10 @@ def build_workspace(config_file, args):
9699
sconfig = config.expand(sconfig)
97100
sconfig = config.trickle(sconfig)
98101

99-
t = Server()
100-
101-
if args.socket_name:
102-
print('socket_name %s' % args.socket_name)
103-
t.socket_name = args.socket_name
104-
105-
if args.socket_path:
106-
print('socket_path %s' % args.socket_path)
107-
t.socket_path = args.socket_path
102+
t = Server(
103+
socket_name=args.socket_name,
104+
socket_path=args.socket_path
105+
)
108106

109107
try:
110108
builder = WorkspaceBuilder(sconf=sconfig, server=t)
@@ -139,10 +137,7 @@ def build_workspace(config_file, args):
139137
return
140138

141139

142-
def main():
143-
144-
config_dir = os.path.expanduser('~/.tmuxp/')
145-
cwd_dir = os.getcwd() + '/'
140+
def cli_parser():
146141

147142
parser = argparse.ArgumentParser(
148143
description='''\
@@ -183,6 +178,12 @@ def main():
183178
parser.add_argument('--log-level', dest='log_level', default='INFO',
184179
help='Log level')
185180

181+
return parser
182+
183+
def main():
184+
185+
parser = cli_parser()
186+
186187
args = parser.parse_args()
187188

188189
setupLogger(level=args.log_level.upper())
@@ -238,14 +239,32 @@ def main():
238239

239240
def complete(cline, cpoint):
240241

241-
config_dir = os.path.expanduser('~/.tmuxp/')
242-
cwd_dir = os.getcwd() + '/'
242+
parser = cli_parser()
243+
args = parser.parse_args()
243244

244245
commands = []
245246
commands += config.in_dir(config_dir)
246247
commands += config.in_cwd()
248+
commands.extend(['attach', 'kill-session'])
247249

248250
ctext = cline.replace('tmuxp ', '')
249251
commands = [c for c in commands if ctext in c]
250252

253+
t = Server(
254+
socket_name=args.socket_name,
255+
socket_path=args.socket_path
256+
)
257+
258+
def session_complete(command, commands, ctext):
259+
if ctext.startswith(command + ' '):
260+
commands[:] = []
261+
ctext_attach = ctext.replace(command + ' ', '')
262+
263+
sessions = [s.get('session_name') for s in t._sessions]
264+
commands.extend([c for c in sessions if ctext_attach in c])
265+
266+
session_complete('attach', commands, ctext)
267+
session_complete('list-sessions', commands, ctext)
268+
session_complete('kill-session', commands, ctext)
269+
251270
print(' \n'.join(commands))

0 commit comments

Comments
 (0)