Skip to content

Commit 12966ed

Browse files
committed
Experimental support for importing configs from teamocil and tmuxinator
1 parent ab1c944 commit 12966ed

File tree

1 file changed

+49
-10
lines changed

1 file changed

+49
-10
lines changed

tmuxp/cli.py

+49-10
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
tmuxinator_config_dir = os.path.expanduser('~/.tmuxinator/')
2727
teamocil_config_dir = os.path.expanduser('~/.teamocil/')
2828

29+
2930
def query_yes_no(question, default="yes"):
3031
"""Ask a yes/no question via raw_input() and return their answer.
3132
@@ -182,10 +183,12 @@ def subcommand_load(args):
182183
def subcommand_import_teamocil(args):
183184
if args.list:
184185
try:
185-
configs_in_user = config.in_dir(teamocil_config_dir, extensions='yml')
186+
configs_in_user = config.in_dir(
187+
teamocil_config_dir, extensions='yml')
186188
except OSError:
187189
configs_in_user = []
188-
configs_in_cwd = config.in_dir(config_dir=cwd_dir, extensions='yml')
190+
configs_in_cwd = config.in_dir(
191+
config_dir=cwd_dir, extensions='yml')
189192

190193
output = ''
191194

@@ -205,15 +208,30 @@ def subcommand_import_teamocil(args):
205208

206209
print(output)
207210

211+
if args.config:
212+
configfile = os.path.relpath(args.config)
213+
configparser = kaptan.Kaptan(handler='yaml')
214+
configparser.import_config(configfile)
215+
216+
newconfig = config.import_teamocil(configparser.get())
217+
218+
newconfig = configparser.import_config(newconfig)
219+
newconfig = configparser.export(
220+
'yaml', indent=2, default_flow_style=False
221+
)
222+
223+
print(newconfig)
208224

209225

210226
def subcommand_import_tmuxinator(args):
211227
if args.list:
212228
try:
213-
configs_in_user = config.in_dir(tmuxinator_config_dir, extensions='yml')
229+
configs_in_user = config.in_dir(
230+
tmuxinator_config_dir, extensions='yml')
214231
except OSError:
215232
configs_in_user = []
216-
configs_in_cwd = config.in_dir(config_dir=cwd_dir, extensions='yml')
233+
configs_in_cwd = config.in_dir(
234+
config_dir=cwd_dir, extensions='yml')
217235

218236
output = ''
219237

@@ -233,6 +251,21 @@ def subcommand_import_tmuxinator(args):
233251

234252
print(output)
235253

254+
if args.config:
255+
configfile = os.path.relpath(args.config)
256+
configparser = kaptan.Kaptan(handler='yaml')
257+
configparser.import_config(configfile)
258+
259+
newconfig = config.import_tmuxinator(configparser.get())
260+
261+
newconfig = configparser.import_config(newconfig)
262+
newconfig = configparser.export(
263+
'yaml', indent=2, default_flow_style=False
264+
)
265+
266+
print(newconfig)
267+
268+
236269
def subcommand_convert(args):
237270
if args.config:
238271
if '.' in args.config:
@@ -296,7 +329,8 @@ def subcommand_attach_session(args):
296329
socket_path=args.socket_path or None
297330
)
298331
try:
299-
session = next((s for s in t.sessions if s.get('session_name') == ctext), None)
332+
session = next((s for s in t.sessions if s.get(
333+
'session_name') == ctext), None)
300334
if not session:
301335
raise Exception('Session not found.')
302336
except Exception as e:
@@ -322,7 +356,8 @@ def subcommand_kill_session(args):
322356
)
323357

324358
try:
325-
session = next((s for s in t.sessions if s.get('session_name') == ctext), None)
359+
session = next((s for s in t.sessions if s.get(
360+
'session_name') == ctext), None)
326361
if not session:
327362
raise Exception('Session not found.')
328363
except Exception as e:
@@ -412,7 +447,8 @@ def cli_parser():
412447

413448
import_teamocil = importsubparser.add_parser('teamocil')
414449

415-
import_teamocilgroup = import_teamocil.add_mutually_exclusive_group(required=True)
450+
import_teamocilgroup = import_teamocil.add_mutually_exclusive_group(
451+
required=True)
416452
import_teamocilgroup.add_argument(
417453
'-l', '--list', dest='list', action='store_true',
418454
help='List yaml configs in ~/.teamocil and current working directory.'
@@ -430,7 +466,8 @@ def cli_parser():
430466

431467
import_tmuxinator = importsubparser.add_parser('tmuxinator')
432468

433-
import_tmuxinatorgroup = import_tmuxinator.add_mutually_exclusive_group(required=True)
469+
import_tmuxinatorgroup = import_tmuxinator.add_mutually_exclusive_group(
470+
required=True)
434471
import_tmuxinatorgroup.add_argument(
435472
'-l', '--list', dest='list', action='store_true',
436473
help='List yaml configs in ~/.tmuxinator and current working directory.'
@@ -558,14 +595,16 @@ def config_complete(command, commands, ctext):
558595

559596
def teamocil_config_complete(command, commands, ctext):
560597
try:
561-
configs_in_user = config.in_dir(teamocil_config_dir, extensions='yml')
598+
configs_in_user = config.in_dir(
599+
teamocil_config_dir, extensions='yml')
562600
except OSError:
563601
configs_in_user = []
564602
configs_in_cwd = config.in_dir(config_dir=cwd_dir, extensions='yml')
565603

566604
def tmuxinator_config_complete(command, commands, ctext):
567605
try:
568-
configs_in_user = config.in_dir(tmuxinator_config_dir, extensions='yml')
606+
configs_in_user = config.in_dir(
607+
tmuxinator_config_dir, extensions='yml')
569608
except OSError:
570609
configs_in_user = []
571610
configs_in_cwd = config.in_dir(config_dir=cwd_dir, extensions='yml')

0 commit comments

Comments
 (0)