diff options
author | David Kaspar [Dee'Kej] <dkaspar@redhat.com> | 2018-05-30 17:01:59 +0200 |
---|---|---|
committer | Dee'Kej <deekej@linuxmail.org> | 2018-06-01 14:51:29 +0200 |
commit | 37109fdf9808ffc87cfff5604c8ca445ffdec64c (patch) | |
tree | 83e3f9456a148065fb3d84b6f6b42127000ad577 /usr/lib/systemd/import-state | |
parent | 1ea9057be049bebf01e24c48ff14e1121e9b4645 (diff) | |
download | initscripts-37109fdf9808ffc87cfff5604c8ca445ffdec64c.tar initscripts-37109fdf9808ffc87cfff5604c8ca445ffdec64c.tar.gz initscripts-37109fdf9808ffc87cfff5604c8ca445ffdec64c.tar.bz2 initscripts-37109fdf9808ffc87cfff5604c8ca445ffdec64c.tar.xz initscripts-37109fdf9808ffc87cfff5604c8ca445ffdec64c.zip |
fedora-* services renamed to more general names
This removes the OS flavour embedded into the initscripts. See also:
https://bugzilla.redhat.com/show_bug.cgi?id=1584645
Resolves: #161
Diffstat (limited to 'usr/lib/systemd/import-state')
-rwxr-xr-x | usr/lib/systemd/import-state | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/usr/lib/systemd/import-state b/usr/lib/systemd/import-state new file mode 100755 index 00000000..be2d13eb --- /dev/null +++ b/usr/lib/systemd/import-state @@ -0,0 +1,39 @@ +#!/bin/bash +# import-state: import state files from initramfs (e.g. network config) + +# Copy state into root folder: +# ============================ +cd /run/initramfs/state + +IFS_backup=$IFS +IFS=$'\n' # Process find's results line by line + +dirs_found=$(find . -type d) + +for dir in $dirs_found; do + pushd "$dir" > /dev/null + + # Remove initial '.' char from the find's result: + dest_dir="${dir/\./}" + + # Create destination folder if it does not exist (with the same rights): + if [[ -n "$dest_dir" && ! -d "$dest_dir" ]]; then + mkdir -p "$dest_dir" + chmod --reference="$PWD" "$dest_dir" + chown --reference="$PWD" "$dest_dir" + fi + + # Copy all files that are not directory: + find . -mindepth 1 -maxdepth 1 -not -type d -exec cp -av -t "$dest_dir" {} \; > /dev/null + + popd > /dev/null +done + +IFS=$IFS_backup + + +# Run restorecon on the copied files: +# =================================== +if [ -e /sys/fs/selinux/enforce ] && [ -x /usr/sbin/restorecon ]; then + find . -mindepth 1 -print0 | { cd / && xargs --null restorecon -iF; } +fi |