Add new option of tpk_install. 38/151538/1
authoryangyuhuan <yuhuan.yang@samsung.com>
Thu, 21 Sep 2017 15:20:23 +0000 (23:20 +0800)
committeryangyuhuan <yuhuan.yang@samsung.com>
Thu, 21 Sep 2017 15:20:23 +0000 (23:20 +0800)
Change-Id: I125160ded7533efa8758b1985d514c8933bb617c

mic/cmd_create.py
mic/conf.py
mic/imager/baseimager.py
tools/mic

index 291e8d1..3189af2 100755 (executable)
@@ -191,6 +191,8 @@ def main(parser, args, argv):
         configmgr.create['ignore_ksrepo'] = args.ignore_ksrepo\r
     if args.run_script:\r
         configmgr.create['run_script'] = args.run_script\r
+    if args.tpk_install:\r
+        configmgr.create['tpk_install'] = args.tpk_install\r
 \r
     creater = createrClass()\r
     creater.do_create(args)\r
index a45b05e..d56d3cb 100755 (executable)
@@ -76,6 +76,7 @@ class ConfigMgr(object):
                     "ignore_ksrepo": False,
                     "strict_mode": False,
                     "run_script": None,
+                    "tpk_install": None,
                 },
                 'chroot': {
                     "saveto": None,
index e0340a1..004dcc6 100755 (executable)
@@ -37,6 +37,7 @@ from mic.utils.errors import CreatorError, Abort
 from mic.utils import misc, grabber, runner, fs_related as fs
 from mic.chroot import kill_proc_inchroot
 from mic.archive import get_archive_suffixes
+from mic.conf import configmgr
 #post script max run time
 MAX_RUN_TIME = 120
 
@@ -767,6 +768,23 @@ class BaseImageCreator(object):
 
         runner.show('umount -l %s' % self.workdir)
 
+    def cp_tpk(self):
+        #Add tpk-install option
+        createopts = configmgr.create
+        if createopts['tpk_install']:
+            path = createopts['tpk_install']
+            file_list = os.listdir(path)
+            for f in file_list:
+                sub = os.path.splitext(f)[1]
+                if sub != ".tpk":
+                    raise CreatorError("Not all files in the path: "+path +" is tpk")
+
+            tpk_dir = "/usr/apps/.preload-tpk"
+            fs.makedirs(self._instroot + "/usr/apps")
+            fs.makedirs(self._instroot + tpk_dir)
+            for f in file_list:
+                shutil.copy(path+"/"+f,self._instroot + tpk_dir)
+
     def mount(self, base_on = None, cachedir = None):
         """Setup the target filesystem in preparation for an install.
 
@@ -806,7 +824,7 @@ class BaseImageCreator(object):
             fs.makedirs(self._instroot + d)
 
         if self.target_arch and self.target_arch.startswith("arm") or \
-            self.target_arch == "aarch64" or self.target_arch == "mipsel" :
+            self.target_arch == "aarch64":
             self.qemu_emulator = misc.setup_qemu_emulator(self._instroot,
                                                           self.target_arch)
 
@@ -833,6 +851,7 @@ class BaseImageCreator(object):
 
         # get size of available space in 'instroot' fs
         self._root_fs_avail = misc.get_filesystem_avail(self._instroot)
+        self.cp_tpk()
 
     def unmount(self):
         """Unmounts the target filesystem.
index 6bc2770..e807a77 100755 (executable)
--- a/tools/mic
+++ b/tools/mic
@@ -134,6 +134,8 @@ def create_parser(parser):
                                help='interactive output')
     parent_parser.add_argument('--run_script', action='store', dest='run_script',
                                                    default=None, help='Run script on local PC after image created')
+    parent_parser.add_argument('--tpk_install', action='store', dest='tpk_install',
+                                                                       default=None, help='Copy tpk file to /usr/apps/.preload-tpk')
 
     parser.set_defaults(alias="cr")