Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def set_releaser_history(self, history):
# Assumes that this is called in the target branch
patches_branch = 'patches/' + get_current_branch()
debug("Writing release history to '{0}' branch".format(patches_branch))
with inbranch(patches_branch):
with open('releaser_history.json', 'w') as f:
f.write(json.dumps(history))
execute_command('git add releaser_history.json')
if has_changes():
execute_command('git commit -m "Store releaser history"')
if not os.path.exists(_summary_file.name):
return
try:
with inbranch('master'):
readme_name = 'README.md'
readme = ''
if os.path.isfile(readme_name):
with open(readme_name, 'r') as f:
readme = f.read()
_summary_file.close()
with open(_summary_file.name, 'r') as f:
readme = f.read() + "\n\n" + readme
with open(readme_name, 'w') as f:
f.write(readme)
execute_command('git add ' + readme_name)
if has_changes():
execute_command('git commit -m "Updating README.md"')
finally:
if _summary_file is not None:
_summary_file.close()
if os.path.exists(_summary_file.name):
os.remove(_summary_file.name)
# Remove all the old patches
if len(list_patches(directory)) > 0:
cmd = 'git rm ./*.patch'
execute_command(cmd, cwd=directory)
# Create the patches using git format-patch
cmd = "git format-patch -M -B " \
"{0}...{1}".format(config['base'], current_branch)
execute_command(cmd, cwd=directory)
# Report of the number of patches created
patches_list = list_patches(directory)
debug("Created {0} patches".format(len(patches_list)))
# Clean up and commit
if len(patches_list) > 0:
cmd = 'git add ./*.patch'
execute_command(cmd, cwd=directory)
if has_changes(directory):
cmd = 'git commit -m "Updating patches."'
execute_command(cmd, cwd=directory)
finally:
if current_branch:
checkout(current_branch, directory=directory)
conf_path = 'patches.conf'
if directory is not None:
conf_path = os.path.join(directory, conf_path)
config_keys = list(config.keys())
config_keys.sort()
if _patch_config_keys != config_keys:
raise RuntimeError("Invalid config passed to set_patch_config")
cmd = 'git config -f {0} patches.'.format(conf_path)
try:
for key in config:
_cmd = cmd + key + ' "' + config[key] + '"'
execute_command(_cmd, cwd=directory)
# Stage the patches.conf file
cmd = 'git add ' + conf_path
execute_command(cmd, cwd=directory)
if has_changes(directory):
# Commit the changed config file
cmd = 'git commit -m "Updated patches.conf"'
execute_command(cmd, cwd=directory)
except subprocess.CalledProcessError as err:
print_exc(traceback.format_exc())
error("Failed to set patches info: " + str(err))
raise
return fn(config)
else:
debug('No nested tarball folder found.')
# Commit changes to the repository
items = []
for item in os.listdir(os.getcwd()):
if item in ['.git', '..', '.']:
continue
items.append(item)
if len(items) > 0:
execute_command('git add ' + ' '.join(['"%s"' % i for i in items if i]))
# Remove any straggling untracked files
execute_command('git clean -dXf')
# Only if we have local changes commit
# (not true if the upstream didn't change any files)
if has_changes():
msg = "Imported upstream version '{0}' of '{1}'"
msg = msg.format(version, name or 'upstream')
cmd = 'git commit -m "{0}"'.format(msg)
execute_command(cmd)
# with inbranch(target_branch):
if item in ['.git', '..', '.']:
continue
if item.startswith('.'):
dot_items.append(item)
# Add any .* files missed by 'git add ./*'
if len(dot_items) > 0:
execute_command('git add ' + ' '.join(dot_items), cwd=directory)
# Remove any straggling untracked files
execute_command('git clean -dXf', cwd=directory)
# Only if we have local changes commit
# (not true if the upstream didn't change any files)
cmd = 'git commit '
if not has_changes(directory):
cmd += '--allow-empty '
cmd += '-m "Rebase from \'' + upstream_branch + "'"
if not has_changes(directory):
cmd += " (no changes)"
cmd += '"'
execute_command(cmd, cwd=directory)
finally:
# Clean up
if os.path.exists(tmp_dir):
shutil.rmtree(tmp_dir)
This branch ('bloom') has been deprecated in favor of storing settings and overlay files in the master branch.
Please goto the master branch for anything which referenced the bloom branch.
You can delete this branch at your convenience.
""")
execute_command('git add ' + PLACEHOLDER_FILE)
if has_changes():
execute_command('git commit -m "DEPRECATING BRANCH"')
if not branch_exists(BLOOM_CONFIG_BRANCH):
info("Creating '{0}' branch.".format(BLOOM_CONFIG_BRANCH))
create_branch(BLOOM_CONFIG_BRANCH, orphaned=True)
with inbranch(BLOOM_CONFIG_BRANCH):
my_copytree(configs, git_root)
execute_command('git add ./*')
if has_changes():
execute_command('git commit -m '
'"Moving configs from bloom branch"')
finally:
# Clean up
if os.path.exists(tmp_dir):
shutil.rmtree(tmp_dir)
def store_original_config(self, config, patches_branch):
with inbranch(patches_branch):
with open('debian.store', 'w+') as f:
f.write(json.dumps(config))
execute_command('git add debian.store')
if has_changes():
execute_command('git commit -m "Store original patch config"')