summaryrefslogtreecommitdiffstats
path: root/scripts/lib/mic/plugins/source/rootfs.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/lib/mic/plugins/source/rootfs.py')
-rw-r--r--scripts/lib/mic/plugins/source/rootfs.py71
1 files changed, 71 insertions, 0 deletions
diff --git a/scripts/lib/mic/plugins/source/rootfs.py b/scripts/lib/mic/plugins/source/rootfs.py
new file mode 100644
index 0000000000..75999e03d2
--- /dev/null
+++ b/scripts/lib/mic/plugins/source/rootfs.py
@@ -0,0 +1,71 @@
1# ex:ts=4:sw=4:sts=4:et
2# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
3#
4# Copyright (c) 2014, Intel Corporation.
5# All rights reserved.
6#
7# This program is free software; you can redistribute it and/or modify
8# it under the terms of the GNU General Public License version 2 as
9# published by the Free Software Foundation.
10#
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14# GNU General Public License for more details.
15#
16# You should have received a copy of the GNU General Public License along
17# with this program; if not, write to the Free Software Foundation, Inc.,
18# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19#
20# DESCRIPTION
21# This implements the 'rootfs' source plugin class for 'wic'
22#
23# AUTHORS
24# Tom Zanussi <tom.zanussi (at] linux.intel.com>
25# Joao Henrique Ferreira de Freitas <joaohf (at] gmail.com>
26#
27
28import os
29import shutil
30import re
31import tempfile
32
33from mic import kickstart, chroot, msger
34from mic.utils import misc, fs_related, errors, runner, cmdln
35from mic.conf import configmgr
36from mic.plugin import pluginmgr
37from mic.utils.partitionedfs import PartitionedMount
38import mic.imager.direct as direct
39from mic.pluginbase import SourcePlugin
40from mic.utils.oe.misc import *
41from mic.imager.direct import DirectImageCreator
42
43class RootfsPlugin(SourcePlugin):
44 name = 'rootfs'
45
46 @classmethod
47 def do_prepare_partition(self, part, cr, cr_workdir, oe_builddir, bootimg_dir,
48 kernel_dir, krootfs_dir, native_sysroot):
49 """
50 Called to do the actual content population for a partition i.e. it
51 'prepares' the partition to be incorporated into the image.
52 In this case, prepare content for legacy bios boot partition.
53 """
54 if part.rootfs is None:
55 if not 'ROOTFS_DIR' in krootfs_dir:
56 msg = "Couldn't find --rootfs-dir, exiting"
57 msger.error(msg)
58 rootfs_dir = krootfs_dir['ROOTFS_DIR']
59 else:
60 if part.rootfs in krootfs_dir:
61 rootfs_dir = krootfs_dir[part.rootfs]
62 elif os.path.isdir(part.rootfs):
63 rootfs_dir = part.rootfs
64 else:
65 msg = "Couldn't find --rootfs-dir=%s connection"
66 msg += " or it is not a valid path, exiting"
67 msger.error(msg % part.rootfs)
68
69 part.set_rootfs(rootfs_dir)
70 part.prepare_rootfs(cr_workdir, oe_builddir, rootfs_dir, native_sysroot)
71