diff options
author | Nicolas Lécureuil <neoclust@mageia.org> | 2017-08-09 09:49:00 +0200 |
---|---|---|
committer | Nicolas Lécureuil <neoclust@mageia.org> | 2017-08-09 09:49:00 +0200 |
commit | a4ef6cf4b4d34b33ed2af77c1fc7053d7794c478 (patch) | |
tree | 51c74f79eb800bc13c0021f12a32facabaad9e58 /systemd | |
parent | b84980f9fa45cdb965b634ae79691edb75672e53 (diff) | |
parent | 416a36b32141168d432aadf6fd05b9878e94c66a (diff) | |
download | initscripts-a4ef6cf4b4d34b33ed2af77c1fc7053d7794c478.tar initscripts-a4ef6cf4b4d34b33ed2af77c1fc7053d7794c478.tar.gz initscripts-a4ef6cf4b4d34b33ed2af77c1fc7053d7794c478.tar.bz2 initscripts-a4ef6cf4b4d34b33ed2af77c1fc7053d7794c478.tar.xz initscripts-a4ef6cf4b4d34b33ed2af77c1fc7053d7794c478.zip |
Merge tag 'initscripts-9.68-1' into distro/mga
Tag as initscripts-9.68-1
Diffstat (limited to 'systemd')
-rwxr-xr-x | systemd/fedora-import-state | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/systemd/fedora-import-state b/systemd/fedora-import-state index 5ad29d41..c34ad0f8 100755 --- a/systemd/fedora-import-state +++ b/systemd/fedora-import-state @@ -1,11 +1,39 @@ #!/bin/bash # fedora-import-state: import state files from initramfs (e.g. network config) -# copy state into root +# Copy state into root folder: +# ============================ cd /run/initramfs/state -find . -mindepth 1 -maxdepth 1 -exec cp -av -t / {} \; -# run restorecon on the copied files +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 ! [[ -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 -a -x /usr/sbin/restorecon ]; then find . -mindepth 1 -print0 | { cd / && xargs --null restorecon -iF; } fi |