Hi Armin,

On 27/02/2020 05.26, Armin Kuster wrote:
This option allows for the inclusion of a single directory
for a partition.

I am unsure how this is used in a .wks file.

From the code it looks similar to the include-path option, but relative to the rootfs source dir instead of the wic working dir?

But the include-dir value is also used in the destination path?

Thanks,
Martin

Signed-off-by: Armin Kuster <[email protected]>
---
  scripts/lib/wic/help.py                  |  3 +++
  scripts/lib/wic/ksparser.py              |  1 +
  scripts/lib/wic/partition.py             |  1 +
  scripts/lib/wic/plugins/source/rootfs.py | 10 ++++++++--
  4 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/scripts/lib/wic/help.py b/scripts/lib/wic/help.py
index 4d342fcf05..517f68e11e 100644
--- a/scripts/lib/wic/help.py
+++ b/scripts/lib/wic/help.py
@@ -979,6 +979,9 @@ DESCRIPTION
                           copies. This option only has an effect with the 
rootfs
                           source plugin.
+ --include-dir: This option is specific to wic. It adds the contents
+                        of the given directory to the resulting partition.
+
           --extra-space: This option is specific to wic. It adds extra
                          space after the space filled by the content
                          of the partition. The final size can go
diff --git a/scripts/lib/wic/ksparser.py b/scripts/lib/wic/ksparser.py
index 650b976223..b8abc33c87 100644
--- a/scripts/lib/wic/ksparser.py
+++ b/scripts/lib/wic/ksparser.py
@@ -138,6 +138,7 @@ class KickStart():
          part.add_argument('--align', type=int)
          part.add_argument('--exclude-path', nargs='+')
          part.add_argument('--include-path', nargs='+')
+        part.add_argument('--include-dir')
          part.add_argument("--extra-space", type=sizetype)
          part.add_argument('--fsoptions', dest='fsopts')
          part.add_argument('--fstype', default='vfat',
diff --git a/scripts/lib/wic/partition.py b/scripts/lib/wic/partition.py
index 2d95f78439..0b735fffd9 100644
--- a/scripts/lib/wic/partition.py
+++ b/scripts/lib/wic/partition.py
@@ -31,6 +31,7 @@ class Partition():
          self.extra_space = args.extra_space
          self.exclude_path = args.exclude_path
          self.include_path = args.include_path
+        self.include_dir = args.include_dir
          self.fsopts = args.fsopts
          self.fstype = args.fstype
          self.label = args.label
diff --git a/scripts/lib/wic/plugins/source/rootfs.py 
b/scripts/lib/wic/plugins/source/rootfs.py
index 705aeb5563..d1c59cab8a 100644
--- a/scripts/lib/wic/plugins/source/rootfs.py
+++ b/scripts/lib/wic/plugins/source/rootfs.py
@@ -71,7 +71,7 @@ class RootfsPlugin(SourcePlugin):
new_rootfs = None
          # Handle excluded paths.
-        if part.exclude_path or part.include_path:
+        if part.exclude_path or part.include_path or part.include_dir:
              # We need a new rootfs directory we can delete files from. Copy to
              # workdir.
              new_rootfs = os.path.realpath(os.path.join(cr_workdir, "rootfs%d" 
% part.lineno))
@@ -79,7 +79,13 @@ class RootfsPlugin(SourcePlugin):
              if os.path.lexists(new_rootfs):
                  shutil.rmtree(os.path.join(new_rootfs))
- copyhardlinktree(part.rootfs_dir, new_rootfs)
+            if part.include_dir:
+                src = os.path.realpath(os.path.join(part.rootfs_dir, 
part.include_dir))
+                dst = os.path.realpath(os.path.join(new_rootfs, 
part.include_dir))
+                copyhardlinktree(src, dst)
+
+            else:
+                copyhardlinktree(part.rootfs_dir, new_rootfs)
for path in part.include_path or []:
                  copyhardlinktree(path, new_rootfs)

--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to