|
@@ -58,6 +58,23 @@ from wic.utils.errors import WicError
|
|
|
from wic import engine
|
|
|
from wic import help as hlp
|
|
|
|
|
|
+
|
|
|
+def wic_logger():
|
|
|
+ """Create and convfigure wic logger."""
|
|
|
+ logger = logging.getLogger('wic')
|
|
|
+ logger.setLevel(logging.INFO)
|
|
|
+
|
|
|
+ handler = logging.StreamHandler()
|
|
|
+
|
|
|
+ formatter = logging.Formatter('%(levelname)s: %(message)s')
|
|
|
+ handler.setFormatter(formatter)
|
|
|
+
|
|
|
+ logger.addHandler(handler)
|
|
|
+
|
|
|
+ return logger
|
|
|
+
|
|
|
+logger = wic_logger()
|
|
|
+
|
|
|
def rootfs_dir_to_args(krootfs_dir):
|
|
|
"""
|
|
|
Get a rootfs_dir dict and serialize to string
|
|
@@ -125,12 +142,12 @@ def wic_create_subcommand(args, usage_str):
|
|
|
(options, args) = parser.parse_args(args)
|
|
|
|
|
|
if len(args) != 1:
|
|
|
- logging.error("Wrong number of arguments, exiting\n")
|
|
|
+ logger.error("Wrong number of arguments, exiting\n")
|
|
|
parser.print_help()
|
|
|
sys.exit(1)
|
|
|
|
|
|
if options.build_rootfs and not bitbake_main:
|
|
|
- logging.error("Can't build roofs as bitbake is not in the $PATH")
|
|
|
+ logger.error("Can't build roofs as bitbake is not in the $PATH")
|
|
|
sys.exit(1)
|
|
|
|
|
|
if not options.image_name:
|
|
@@ -142,8 +159,8 @@ def wic_create_subcommand(args, usage_str):
|
|
|
if not val:
|
|
|
missed.append(opt)
|
|
|
if missed:
|
|
|
- print("The following build artifacts are not specified:")
|
|
|
- print(" " + ", ".join(missed))
|
|
|
+ logger.error("The following build artifacts are not specified: %s",
|
|
|
+ ", ".join(missed))
|
|
|
sys.exit(1)
|
|
|
|
|
|
if options.image_name:
|
|
@@ -154,23 +171,22 @@ def wic_create_subcommand(args, usage_str):
|
|
|
if options.vars_dir:
|
|
|
BB_VARS.vars_dir = options.vars_dir
|
|
|
|
|
|
- if options.build_check:
|
|
|
- print("Checking basic build environment...")
|
|
|
- if not engine.verify_build_env():
|
|
|
- print("Couldn't verify build environment, exiting\n")
|
|
|
- sys.exit(1)
|
|
|
- else:
|
|
|
- print("Done.\n")
|
|
|
+ if options.build_check and not engine.verify_build_env():
|
|
|
+ logger.error("Couldn't verify build environment, exiting\n")
|
|
|
+ sys.exit(1)
|
|
|
|
|
|
bootimg_dir = ""
|
|
|
|
|
|
+ if options.debug:
|
|
|
+ logger.setLevel(logging.DEBUG)
|
|
|
+
|
|
|
if options.image_name:
|
|
|
if options.build_rootfs:
|
|
|
argv = ["bitbake", options.image_name]
|
|
|
if options.debug:
|
|
|
argv.append("--debug")
|
|
|
|
|
|
- print("Building rootfs...\n")
|
|
|
+ logger.info("Building rootfs...\n")
|
|
|
if bitbake_main(BitBakeConfigParameters(argv),
|
|
|
cookerdata.CookerConfiguration()):
|
|
|
sys.exit(1)
|
|
@@ -181,18 +197,18 @@ def wic_create_subcommand(args, usage_str):
|
|
|
"wic-tools", cache=False)
|
|
|
else:
|
|
|
if options.build_rootfs:
|
|
|
- print("Image name is not specified, exiting. (Use -e/--image-name to specify it)\n")
|
|
|
+ logger.error("Image name is not specified, exiting. (Use -e/--image-name to specify it)\n")
|
|
|
sys.exit(1)
|
|
|
native_sysroot = options.native_sysroot
|
|
|
|
|
|
if not native_sysroot or not os.path.isdir(native_sysroot):
|
|
|
- print("Building wic-tools...\n")
|
|
|
+ logger.info("Building wic-tools...\n")
|
|
|
if bitbake_main(BitBakeConfigParameters("bitbake wic-tools".split()),
|
|
|
cookerdata.CookerConfiguration()):
|
|
|
sys.exit(1)
|
|
|
native_sysroot = get_bitbake_var("RECIPE_SYSROOT_NATIVE", "wic-tools")
|
|
|
if not native_sysroot:
|
|
|
- print("Unable to find the location of the native tools sysroot to use\n")
|
|
|
+ logger.info("Unable to find the location of the native tools sysroot to use\n")
|
|
|
sys.exit(1)
|
|
|
|
|
|
wks_file = args[0]
|
|
@@ -200,7 +216,7 @@ def wic_create_subcommand(args, usage_str):
|
|
|
if not wks_file.endswith(".wks"):
|
|
|
wks_file = engine.find_canned_image(scripts_path, wks_file)
|
|
|
if not wks_file:
|
|
|
- print("No image named %s found, exiting. (Use 'wic list images' "\
|
|
|
+ logger.error("No image named %s found, exiting. (Use 'wic list images' "\
|
|
|
"to list available images, or specify a fully-qualified OE "\
|
|
|
"kickstart (.wks) filename)\n" % args[0])
|
|
|
sys.exit(1)
|
|
@@ -213,16 +229,16 @@ def wic_create_subcommand(args, usage_str):
|
|
|
kernel_dir = options.kernel_dir
|
|
|
native_sysroot = options.native_sysroot
|
|
|
if rootfs_dir and not os.path.isdir(rootfs_dir):
|
|
|
- print("--roofs-dir (-r) not found, exiting\n")
|
|
|
+ logger.error("--roofs-dir (-r) not found, exiting\n")
|
|
|
sys.exit(1)
|
|
|
if not os.path.isdir(bootimg_dir):
|
|
|
- print("--bootimg-dir (-b) not found, exiting\n")
|
|
|
+ logger.error("--bootimg-dir (-b) not found, exiting\n")
|
|
|
sys.exit(1)
|
|
|
if not os.path.isdir(kernel_dir):
|
|
|
- print("--kernel-dir (-k) not found, exiting\n")
|
|
|
+ logger.error("--kernel-dir (-k) not found, exiting\n")
|
|
|
sys.exit(1)
|
|
|
if not os.path.isdir(native_sysroot):
|
|
|
- print("--native-sysroot (-n) not found, exiting\n")
|
|
|
+ logger.error("--native-sysroot (-n) not found, exiting\n")
|
|
|
sys.exit(1)
|
|
|
else:
|
|
|
not_found = not_found_dir = ""
|
|
@@ -235,12 +251,11 @@ def wic_create_subcommand(args, usage_str):
|
|
|
if not_found:
|
|
|
if not not_found_dir:
|
|
|
not_found_dir = "Completely missing artifact - wrong image (.wks) used?"
|
|
|
- print("Build artifacts not found, exiting.")
|
|
|
- print(" (Please check that the build artifacts for the machine")
|
|
|
- print(" selected in local.conf actually exist and that they")
|
|
|
- print(" are the correct artifacts for the image (.wks file)).\n")
|
|
|
- print("The artifact that couldn't be found was %s:\n %s" % \
|
|
|
- (not_found, not_found_dir))
|
|
|
+ logger.error("Build artifacts not found, exiting.")
|
|
|
+ logger.info(" (Please check that the build artifacts for the machine")
|
|
|
+ logger.info(" selected in local.conf actually exist and that they")
|
|
|
+ logger.info(" are the correct artifacts for the image (.wks file)).\n")
|
|
|
+ logger.info("The artifact that couldn't be found was %s:\n %s", not_found, not_found_dir)
|
|
|
sys.exit(1)
|
|
|
|
|
|
krootfs_dir = options.rootfs_dir
|
|
@@ -250,7 +265,7 @@ def wic_create_subcommand(args, usage_str):
|
|
|
|
|
|
rootfs_dir = rootfs_dir_to_args(krootfs_dir)
|
|
|
|
|
|
- print("Creating image(s)...\n")
|
|
|
+ logger.info("Creating image(s)...\n")
|
|
|
engine.wic_create(wks_file, rootfs_dir, bootimg_dir, kernel_dir,
|
|
|
native_sysroot, options)
|
|
|
|
|
@@ -264,7 +279,7 @@ def wic_list_subcommand(args, usage_str):
|
|
|
args = parser.parse_args(args)[1]
|
|
|
|
|
|
if not engine.wic_list(args, scripts_path):
|
|
|
- logging.error("Bad list arguments, exiting\n")
|
|
|
+ logger.error("Bad list arguments, exiting\n")
|
|
|
parser.print_help()
|
|
|
sys.exit(1)
|
|
|
|
|
@@ -301,10 +316,6 @@ subcommands = {
|
|
|
}
|
|
|
|
|
|
|
|
|
-def start_logging(loglevel):
|
|
|
- logging.basicConfig(filename='wic.log', filemode='w', level=loglevel)
|
|
|
-
|
|
|
-
|
|
|
def main(argv):
|
|
|
parser = optparse.OptionParser(version="wic version %s" % __version__,
|
|
|
usage=hlp.wic_usage)
|
|
@@ -326,6 +337,6 @@ if __name__ == "__main__":
|
|
|
try:
|
|
|
sys.exit(main(sys.argv[1:]))
|
|
|
except WicError as err:
|
|
|
- print("ERROR:", err, file=sys.stderr)
|
|
|
+ logger.error(err)
|
|
|
sys.exit(1)
|
|
|
|