Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def edit(track):
tracks_dict = get_tracks_dict_raw()
if track not in tracks_dict['tracks']:
error("Track '{0}' does not exist.".format(track), exit=True)
# Ensure the track is complete
track_dict = tracks_dict['tracks'][track]
update_track(track_dict)
# Prompt for updates
for key in template_entry_order:
pe = DEFAULT_TEMPLATE[key]
pe.default = tracks_dict['tracks'][track][key]
ret = safe_input(str(pe))
if ret:
pe.default = ret # This type checks against self.values
if ret in [':{none}', 'None']:
pe.default = None
tracks_dict['tracks'][track][key] = pe.default
tracks_dict['tracks'][track] = track_dict
def convert_old_bloom_conf(prefix=None):
prefix = prefix if prefix is not None else 'convert'
tracks_dict = get_tracks_dict_raw()
track = prefix
track_count = 0
while track in tracks_dict['tracks']:
track_count += 1
track = prefix + str(track_count)
track_dict = copy.copy(DEFAULT_TEMPLATE)
cmd = 'git config -f bloom.conf bloom.upstream'
upstream_repo = check_output(cmd, shell=True).strip()
cmd = 'git config -f bloom.conf bloom.upstreamtype'
upstream_type = check_output(cmd, shell=True).strip()
try:
cmd = 'git config -f bloom.conf bloom.upstreambranch'
upstream_branch = check_output(cmd, shell=True).strip()
except subprocess.CalledProcessError:
upstream_branch = ''
for key in template_entry_order:
def copy_track(src, dst):
tracks_dict = get_tracks_dict_raw()
if src not in tracks_dict['tracks']:
error("Track '{0}' does not exist.".format(src), exit=True)
if dst in tracks_dict['tracks']:
error("Track '{0}' already exists.".format(dst), exit=True)
tracks_dict['tracks'][dst] = copy.deepcopy(tracks_dict['tracks'][src])
info("Saving '{0}' track.".format(dst))
write_tracks_dict_raw(tracks_dict)
error(fmt("@|'@!{0}'@|").format(templated_action))
info('', use_prefix=False)
error(fmt("@|If you are @!@_@{rf}absolutely@| sure that this key is unavailable for the platform in"))
error(fmt("@|question, the generator can be skipped and you can proceed with the release."))
if interactive and maybe_continue('n', 'Skip generator action and continue with release'):
info("\nAction skipped, continuing with release.\n")
continue
info('', use_prefix=False)
error(fmt(_error + "Error running command '@!{0}'@|")
.format(templated_action), exit=True)
info('', use_prefix=False)
if not pretend:
# Update the release_inc
tracks_dict = get_tracks_dict_raw()
tracks_dict['tracks'][track]['release_inc'] = settings['release_inc']
tracks_dict['tracks'][track]['last_version'] = settings['version']
# if release tag is set to ask and a custom value is used
if settings['version'] != settings['release_tag']:
tracks_dict['tracks'][track]['last_release'] = settings['release_tag']
write_tracks_dict_raw(tracks_dict,
'Updating release inc to: ' + str(settings['release_inc']))
def main(sysargs=None):
from bloom.config import upconvert_bloom_to_config_branch
upconvert_bloom_to_config_branch()
# Check that the current directory is a serviceable git/bloom repo
ensure_clean_working_env()
ensure_git_root()
# Get tracks
tracks_dict = get_tracks_dict_raw()
if not tracks_dict['tracks']:
error("No tracks configured, first create a track with "
"'git-bloom-config new '", exit=True)
# Do argparse stuff
parser = get_argument_parser([str(t) for t in tracks_dict['tracks']])
parser = add_global_arguments(parser)
args = parser.parse_args(sysargs)
handle_global_arguments(args)
os.environ['BLOOM_TRACK'] = args.track
verify_track(args.track, tracks_dict['tracks'][args.track])
git_clone = GitClone()
with git_clone:
def show_current():
bloom_ls = ls_tree(BLOOM_CONFIG_BRANCH)
bloom_files = [f for f, t in bloom_ls.items() if t == 'file']
if 'bloom.conf' in bloom_files:
info("Old bloom.conf file detected, up converting...")
convert_old_bloom_conf()
bloom_ls = ls_tree(BLOOM_CONFIG_BRANCH)
bloom_files = [f for f, t in bloom_ls.items() if t == 'file']
if 'tracks.yaml' in bloom_files:
info(yaml.dump(get_tracks_dict_raw(), indent=2,
default_flow_style=False))
def show(args):
tracks_dict = get_tracks_dict_raw()
if args.track not in tracks_dict['tracks']:
error("Track '{0}' does not exist.".format(args.track), exit=True)
info(yaml.dump({args.track: tracks_dict['tracks'][args.track]}, indent=2,
default_flow_style=False))
def new(track, template=None, copy_track=None, overrides={}):
"""
Creates a new track
:param track: Name of the track to create
:param template: Template to base new track off
:param copy_track: Track to copy values of,
if '' then use any availabe track if one exists
:param overrides: dict of entries to override default values
"""
tracks_dict = get_tracks_dict_raw()
if track in tracks_dict['tracks']:
error("Cannot create track '{0}' beause it exists.".format(track))
error("Run `git-bloom-config edit {0}` instead.".format(track),
exit=True)
track_dict = copy.copy(DEFAULT_TEMPLATE)
template_dict = copy.copy(config_template[template])
if copy_track is not None:
if template is not None:
error("You cannot specify both a template and track to copy.",
exit=True)
if copy_track == '' and len(tracks_dict['tracks']) != 0:
copy_track = list(reversed(sorted(tracks_dict['tracks'].keys())))[0]
if copy_track and copy_track not in tracks_dict['tracks']:
error("Cannot copy a track which does not exist: '{0}'"
.format(copy_track), exit=True)
if copy_track: