in bot/__main__.py [0:0]
def update(ctx, branches):
""" Perform the assets updates """
stack_version = get_stack_version()
if not stack_version:
click.echo("Forgot to 'eval \"$(elastic-package stack shellinit)\"' in your shell?", err=True)
ctx.exit(1)
meta = {
"stack": {
"version": stack_version,
},
}
if branches:
branches = [b.strip() for b in branches.split(",")]
for (package, branch, all_versions, only_local, only_remote) in make_plan(branches):
for version in sorted(only_remote, key=semver.VersionInfo.parse):
package_dir = packages.packages_dir / branch / "packages" / package / version
click.echo(f"install package from {package_dir}")
args = ["elastic-package", "install", package]
p = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=package_dir)
if p.returncode:
click.echo(p.stdout, err=True)
click.echo(f"Subprocess returned {p.returncode}", err=True)
continue
click.echo(p.stdout)
asset_dir = assets.assets_dir / branch / package / version
click.echo(f"export assets to {asset_dir}")
args = ["elastic-package", "dump", "installed-objects", "--package", package, "--output", asset_dir]
p = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=assets.assets_dir)
if p.returncode:
click.echo(p.stdout, err=True)
click.echo(f"Subprocess returned {p.returncode}", err=True)
continue
click.echo(p.stdout)
click.echo("copy manifest")
args = ["cp", "-v", package_dir / "manifest.yml", asset_dir]
p = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=asset_dir)
if p.returncode:
click.echo(p.stdout, err=True)
click.echo(f"Subprocess returned {p.returncode}", err=True)
continue
click.echo(p.stdout)
click.echo("write meta")
with open(asset_dir / "meta.yml", "w+") as f:
yaml.dump(meta, f)
click.echo(f"git: add {asset_dir}...")
args = ["git", "add", "*"]
p = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=asset_dir)
if p.returncode:
click.echo(p.stdout, err=True)
click.echo(f"Subprocess returned {p.returncode}", err=True)
continue
click.echo(p.stdout)
click.echo(f"git: commit {asset_dir}...")
args = ["git", "commit", "-n", "-m", f"Add assets: {package} {version} ({branch}, {stack_version})"]
p = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=asset_dir)
if p.returncode:
click.echo(p.stdout, err=True)
click.echo(f"Subprocess returned {p.returncode}", err=True)
continue
click.echo(p.stdout)