diff options
author | Erik Stromdahl <erik.stromdahl@gmail.com> | 2017-06-01 19:29:18 +0200 |
---|---|---|
committer | Dave Reisner <dreisner@archlinux.org> | 2017-08-20 22:40:27 +0200 |
commit | 172ca644527cfaf3bba1dbeab9e7139cca2b249a (patch) | |
tree | 043ff751d3e1d01abbceabcaff4f6b3b2d10a24d | |
parent | cee0499489e97384b72d47473606272d12ac96c0 (diff) | |
download | mkinitcpio-172ca644527cfaf3bba1dbeab9e7139cca2b249a.tar.gz mkinitcpio-172ca644527cfaf3bba1dbeab9e7139cca2b249a.tar.xz |
functions: add_full_dir: path prefix strip-off
Add third argument to add_full_dir: strip_prefix.
The strip_prefix will be stripped off from the destination
path (path in the initramfs image) when adding files.
Rationale: Make it easier to add rootfs overlay hooks when
generating images.
add_full_dir can be invoked in this way:
add_full_dir /path/on/parent/rootfs-overlay * /path/on/parent/rootfs-overlay
The above invocation will add all content of */path/on/parent/rootfs-overlay*
into */* in the initramfs image.
Signed-off-by: Erik Stromdahl <erik.stromdahl@gmail.com>
-rw-r--r-- | functions | 9 | ||||
-rw-r--r-- | man/mkinitcpio.8.txt | 7 |
2 files changed, 11 insertions, 5 deletions
@@ -433,8 +433,9 @@ add_full_dir() { # No parsing is performed and the contents of the directory is added as is. # $1: path to directory # $2: glob pattern to filter file additions (optional) + # $3: path prefix that will be stripped off from the image path (optional) - local f= filter=${2:-*} + local f= filter=${2:-*} strip_prefix=$3 if [[ -n $1 && -d $1 ]]; then add_dir "$1" @@ -442,13 +443,13 @@ add_full_dir() { for f in "$1"/*; do if [[ -L $f ]]; then if [[ $f = $filter ]]; then - add_symlink "$f" "$(readlink "$f")" + add_symlink "${f#$strip_prefix}" "$(readlink "$f")" fi elif [[ -d $f ]]; then - add_full_dir "$f" "$filter" + add_full_dir "$f" "$filter" "$strip_prefix" elif [[ -f $f ]]; then if [[ $f = $filter ]]; then - add_file "$f" + add_file "$f" "${f#$strip_prefix}" fi fi done diff --git a/man/mkinitcpio.8.txt b/man/mkinitcpio.8.txt index 5c3118e..931a167 100644 --- a/man/mkinitcpio.8.txt +++ b/man/mkinitcpio.8.txt @@ -139,7 +139,7 @@ functions exist to facilitate this. Adds a directory and its parents to the image. -*add_full_dir* 'directory' [ 'glob' ]:: +*add_full_dir* 'directory' [ 'glob' ] [ 'strip_prefix' ]:: Recursively adds a directory to the image by walking the given path and calling *add_file*, *add_dir*, and *add_symlink* accordingly. This function @@ -148,6 +148,11 @@ functions exist to facilitate this. If the 'glob' argument is passed, only files and symlinks matching this glob will be added. + If the 'strip_prefix' argument is passed, it will be used to strip the + destination path (path in the initramfs image) from the prefix specified by + the 'strip_prefix' argument. This can be useful when writing rootfs-overlay + hooks. + *add_symlink* 'path' [ 'link-target' ]:: Adds a symlink to the image at the specified `path`, optionally pointing to |