1
0
Fork 0
mirror of https://github.com/yavook/kiwi-scp.git synced 2024-11-22 21:03:00 +00:00
kiwi-scp/src/kiwi/subcommands/utils/misc.py

91 lines
2.1 KiB
Python
Raw Normal View History

2020-08-17 12:12:33 +00:00
import os
def get_project_name(args):
"""get project name from CLI args"""
if args is not None and 'projects' in args:
if isinstance(args.projects, list) and len(args.projects) > 0:
return args.projects[0]
else:
return args.projects
return None
def get_services(args):
"""get services list from CLI args"""
if args is not None and 'services' in args:
return args.services
return None
2020-08-17 12:12:33 +00:00
def get_project_dir(config, project_name):
"""get project directory"""
return f"{project_name}{config['markers:project']}"
2020-08-17 14:47:08 +00:00
def get_target_dir(config, project_name):
"""get project's target directory"""
return f"{config['runtime:storage']}{get_project_dir(config, project_name)}"
2020-08-17 12:12:33 +00:00
def list_projects(config):
"""list projects in current instance"""
# complete dir listing
content = os.listdir()
# filter directories
dirs = [d for d in content if os.path.isdir(d)]
# filter suffix
project_dirs = [p for p in dirs if p.endswith(config['markers:project'])]
# remove suffix
projects = [p[:-len(config['markers:project'])] for p in project_dirs]
return projects
def _surround(string, bang):
midlane = f"{bang * 3} {string} {bang * 3}"
sidelane = bang*len(midlane)
return f"{sidelane}\n{midlane}\n{sidelane}"
2020-08-18 13:05:19 +00:00
def _emphasize(lines):
if isinstance(lines, list):
return '\n'.join([_emphasize(line) for line in lines])
elif lines:
return f">>> {lines} <<<"
else:
return lines
def are_you_sure(prompt, default="no"):
if default.lower() == 'yes':
suffix = "[YES|no]"
else:
suffix = "[yes|NO]"
answer = input(
2020-08-18 13:05:19 +00:00
f"{_surround('MUST HAVE CAREFULING IN PROGRESS', '!')}\n"
f"\n"
2020-08-18 13:05:19 +00:00
f"{_emphasize(prompt)}\n"
f"\n"
f"Are you sure you want to proceed? {suffix} "
).strip().lower()
if answer == '':
answer = default
while answer not in ['yes', 'no']:
answer = input("Please type 'yes' or 'no' explicitly: ").strip().lower()
return answer == 'yes'