create osbuild package
This commit is contained in:
parent
70aeaec9ed
commit
23680736bb
3 changed files with 8 additions and 10 deletions
37
osbuild/executable.py
Executable file
37
osbuild/executable.py
Executable file
|
|
@ -0,0 +1,37 @@
|
|||
import argparse
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
import osbuild
|
||||
|
||||
|
||||
RESET = "\033[0m"
|
||||
BOLD = "\033[1m"
|
||||
RED = "\033[31m"
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="Build operating system images")
|
||||
parser.add_argument("pipeline_path", metavar="PIPELINE",
|
||||
help="json file containing the pipeline that should be built")
|
||||
parser.add_argument("--objects", metavar="DIRECTORY", type=os.path.abspath,
|
||||
default=".osbuild/objects",
|
||||
help="the directory where intermediary os trees are stored")
|
||||
requiredNamed = parser.add_argument_group('required named arguments')
|
||||
requiredNamed.add_argument("-o", "--output", dest="output_dir", metavar="DIRECTORY", type=os.path.abspath,
|
||||
help="provide the empty DIRECTORY as output argument to the last stage", required=True)
|
||||
args = parser.parse_args()
|
||||
|
||||
with open(args.pipeline_path) as f:
|
||||
pipeline = osbuild.load(json.load(f))
|
||||
|
||||
try:
|
||||
pipeline.run(args.output_dir, args.objects, interactive=True)
|
||||
except KeyboardInterrupt:
|
||||
print()
|
||||
print(f"{RESET}{BOLD}{RED}Aborted{RESET}")
|
||||
sys.exit(130)
|
||||
except (osbuild.StageFailed, osbuild.AssemblerFailed) as error:
|
||||
print()
|
||||
print(f"{RESET}{BOLD}{RED}{error.name} failed with code {error.returncode}{RESET}")
|
||||
sys.exit(1)
|
||||
Loading…
Add table
Add a link
Reference in a new issue