diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-09-11 19:36:48 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-09-11 19:47:19 -0400 |
commit | 43f8ba8f90bfd2bae7b779da0aeabfbb50038798 (patch) | |
tree | a1ef92976b9cb3df178bed673b6a9cc956fd50c5 | |
parent | 6eb4ef32385e786ec1910f274b1749dcfc623eee (diff) |
sync tools/ from postmove
-rwxr-xr-x | tools/find_includes | 52 | ||||
-rwxr-xr-x | tools/fixup.sh | 9 | ||||
-rwxr-xr-x | tools/fixup_includes | 215 | ||||
-rwxr-xr-x | tools/move.sh | 465 | ||||
-rwxr-xr-x | tools/notsd-fixup | 15 | ||||
-rwxr-xr-x | tools/notsd-fixup--includes | 63 | ||||
-rwxr-xr-x | tools/notsd-move | 57 | ||||
-rwxr-xr-x | tools/reset.sh | 6 |
8 files changed, 85 insertions, 797 deletions
diff --git a/tools/find_includes b/tools/find_includes deleted file mode 100755 index 6dfb406fa3..0000000000 --- a/tools/find_includes +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env bash - -phase=phase0 - -phase0() { - phase=phase0 - local line="$1" - case "$line" in - '#include'*|'typedef '*';') - phase1 "$line" - ;; - *) - ;; - esac -} - -phase1() { - phase=phase1 - local line="$1" - case "$line" in - '') - ;; - '#include'*) - ;; - 'typedef '*';') - ;; - *) - phase2 "$line" - ;; - esac -} - -phase2() { - phase=phase2 - local line="$1" - printf '%s\n' "$line" - cat -} - -main() { - current_file="$1" - set -o pipefail - { - IFS='' - while read -r line; do - "$phase" "$line" - IFS='' - done - } < "$current_file" | grep '^#include' | ifne printf '%s\n' "$current_file" -} - -main "$@" diff --git a/tools/fixup.sh b/tools/fixup.sh deleted file mode 100755 index 651feb6cf8..0000000000 --- a/tools/fixup.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -for lib in basic shared systemd-network systemd; do - pushd src/lib${lib}/include/${lib} - find . -type f -exec sed -ri -e "s|$lib/||" -- {} + - popd -done - -find src \( -name '*.h' -o -name '*.c' \) -type f -exec ./fixup_includes {} \; diff --git a/tools/fixup_includes b/tools/fixup_includes deleted file mode 100755 index 957733cdc0..0000000000 --- a/tools/fixup_includes +++ /dev/null @@ -1,215 +0,0 @@ -#!/usr/bin/env bash - -panic() { - >&2 echo panic - exit 2 -} - -out() { - printf '%q ' "$@" -} - -# system -# linux -# public -# protected -# private -classify() { - local path=$1 - if [[ "$path" = linux/* ]]; then - out linux "$path" - elif [[ -f "${current_file%/*}/${path}" ]]; then - out private "$path" - elif [[ "$path" != systemd/* ]] && - [[ "$path" != libudev.h ]] && - cpp -include "$path" <<<'' &>/dev/null; - then - out system "$path" - else - case "$path" in - asm/sgidefs.h|dbus/dbus.h|efi.h|efilib.h|gio/gio.h|glib.h|libmount.h) - out system "$path" - ;; - util.h|*/util.h) - if [[ "$current_file" = */systemd-boot/* ]]; then - out private util.h - else - out protected basic/util.h - fi - ;; - *) - file=$(find src -type f -name "${path##*/}") - if [[ -f "$file" ]]; then - case "$file" in - */src/*) - if [[ "${current_file%/*}" = "${file%/*}" ]]; then - out private "${file##*/}" - else - out protected "${file##*/src/}" - fi - ;; - */libsystemd/include/*|*/libudev/include/*) - out public "${file##*/include/}" - ;; - */include/*) - out protected "${file##*/include/}" - ;; - *) - if [[ "${current_file%/*}" = "${file%/*}" ]]; then - out private "${file##*/}" - else - out protected "${file##*/}" - fi - ;; - esac - else - >&2 printf 'Cannot figure out: %q\n' "$path" - exit 2 - fi - ;; - esac - fi -} - -phase=phase0 -hook=: - -phase0() { - phase=phase0 - hook=: - local line="$1" - case "$line" in - '#include'*|'typedef '*';') - phase1 "$line" - ;; - *) - printf '%s\n' "$line" - ;; - esac -} - -phase1_tail= -system=() -linux=() -public=() -protected=() -typedef=(); typedef_last=true -private=() -phase1_flush() { - local b=: - if [[ ${#system[@]} -gt 0 ]]; then - printf '%s\n' "${system[@]}" | sort -u - b=echo - fi - if [[ ${#linux[@]} -gt 0 ]]; then - $b - printf '%s\n' "${linux[@]}" - b=echo - fi - if [[ ${#public[@]} -gt 0 ]]; then - $b - printf '%s\n' "${public[@]}" | sort -u - b=echo - fi - if [[ ${#protected[@]} -gt 0 ]]; then - $b - printf '%s\n' "${protected[@]}" | sort -u - b=echo - fi - if [[ ${#typedef[@]} -gt 0 ]] && ! $typedef_last; then - $b - printf '%s\n' "${typedef[@]}" | sort -u - b=echo - fi - if [[ ${#private[@]} -gt 0 ]]; then - $b - printf '%s\n' "${private[@]}" | sort -u - b=echo - fi - if [[ ${#typedef[@]} -gt 0 ]] && $typedef_last; then - $b - printf '%s\n' "${typedef[@]}" - fi - printf '%s' "$phase1_tail" -} -phase1() { - phase=phase1 - hook=phase1_flush - local line="$1" - case "$line" in - '') - phase1_tail+=$'\n' - ;; - '#include'*) - phase1_tail='' - local re='^#include [<"]([^">]*)[">](.*)' - if [[ "$line" =~ $re ]]; then - IFS=' ' - local buf - buf="$(classify "${BASH_REMATCH[1]}")" || panic - read -r class path <<<"$buf" - case "$class" in - system) - printf -v line '#include <%s>%s' "$path" "${BASH_REMATCH[2]}" - system+=("$line") - ;; - linux) - printf -v line '#include <%s>%s' "$path" "${BASH_REMATCH[2]}" - linux+=("$line") - ;; - public) - printf -v line '#include <%s>%s' "$path" "${BASH_REMATCH[2]}" - public+=("$line") - ;; - protected) - printf -v line '#include "%s"%s' "$path" "${BASH_REMATCH[2]}" - protected+=("$line") - ;; - private) - if [[ ${#typedef[@]} -gt 0 ]]; then - typedef_last=false - fi - printf -v line '#include "%s"%s' "$path" "${BASH_REMATCH[2]}" - private+=("$line") - ;; - esac - else - panic - fi - ;; - 'typedef '*';') - phase1_tail='' - typedef+=("$line") - ;; - *) - phase1_flush - phase2 "$line" - ;; - esac -} - -phase2() { - phase=phase2 - hook=: - local line="$1" - printf '%s\n' "$line" - cat -} - -main() { - current_file="$1" - printf ' => %s\n' "$current_file" - set -o pipefail - trap 'rm -f -- "$current_file.tmp"' EXIT - { - IFS='' - while read -r line; do - "$phase" "$line" - IFS='' - done - "$hook" - } < "$current_file" > "$current_file.tmp" - mv -Tf "$current_file.tmp" "$current_file" -} - -main "$@" diff --git a/tools/move.sh b/tools/move.sh deleted file mode 100755 index 9ad99851fe..0000000000 --- a/tools/move.sh +++ /dev/null @@ -1,465 +0,0 @@ -#!/usr/bin/env bash - -in_array() { - local needle=$1; shift - local item - for item in "$@"; do - [[ $item = $needle ]] && return 0 # Found - done - return 1 # Not Found -} - -split_lib() { - local d=$1 - - mkdir "$d/test" - mv "$d"/test-* -t "$d/test" - - mkdir "$d/src" - mv "$d"/*.c -t "$d/src" - - local h=${d##*/lib} - mkdir "$d/include" - mkdir "$d/include/$h" - mv "$d"/*.h -t "$d/include/$h" -} - -grp() { - local grp=$1 - shift - mkdir "$grp" - mv "$@" -t "$grp" -} - -move_files() ( - # first focus on getting directories to the right names. - mv -T src/{,systemd-}dbus1-generator - mv -T src/{,systemd-}debug-generator - mv -T src/{,systemd-}fstab-generator - mv -T src/{,systemd-}getty-generator - mv -T src/{,systemd-}gpt-auto-generator - mv -T src/{,systemd-}rc-local-generator - mv -T src/{,systemd-}system-update-generator - mv -T src/{,systemd-}sysv-generator - - mv -T src/{,systemd-}ac-power - mv -T src/{,systemd-}activate - mv -T src/{,systemd-}analyze - mv -T src/{,systemd-}ask-password - mv -T src/{,systemd-}backlight - mv -T src/{,systemd-}binfmt - mv -T src/{,systemd-}cgls - mv -T src/{,systemd-}cgroups-agent - mv -T src/{,systemd-}cgtop - mv -T src/{,systemd-}coredump - mv -T src/{,systemd-}cryptsetup - mv -T src/{,systemd-}delta - mv -T src/{,systemd-}detect-virt - mv -T src/{,systemd-}escape - mv -T src/{,systemd-}firstboot - mv -T src/{,systemd-}fsck - mv -T src/{,systemd-}hibernate-resume - mv -T src/{,systemd-}hwdb - mv -T src/{,systemd-}initctl - mv -T src/{,systemd-}machine-id-setup - mv -T src/{,systemd-}modules-load - mv -T src/{,systemd-}notify - mv -T src/{,systemd-}nspawn - mv -T src/{,systemd-}path - mv -T src/{,systemd-}quotacheck - mv -T src/{,systemd-}random-seed - mv -T src/{,systemd-}remount-fs - mv -T src/{,systemd-}reply-password - mv -T src/{,systemd-}rfkill - mv -T src/{,systemd-}run - mv -T src/{,systemd-}sleep - mv -T src/{,systemd-}stdio-bridge - mv -T src/{,systemd-}sysctl - mv -T src/{,systemd-}sysusers - mv -T src/{,systemd-}tmpfiles - mv -T src/{,systemd-}tty-ask-password-agent - mv -T src/{,systemd-}update-done - mv -T src/{,systemd-}update-utmp - mv -T src/{,systemd-}user-sessions - mv -T src/vconsole src/systemd-vconsole-setup - mv -T src/socket-proxy src/systemd-socket-proxyd - mv -T src/timesync src/systemd-timesyncd - - mv src/udev/*_id -t src - mv src/udev/collect -t src - - mv -T src/boot/efi src/systemd-boot - mv -T src/boot src/bootctl - - mkdir src/busctl - mv src/libsystemd/src/sd-bus/busctl* -t src/busctl - - mkdir src/coredumpctl - mv src/coredump{,ctl}/coredumpctl.c - - mv -T src/{,lib}basic - mv -T src/{,lib}core - mv -T src/{,lib}shared - - mv -T src/lib{shared,core}/linux - - mkdir src/libfirewall - mv -T src/lib{shared,firewall}/firewall-util.c - mv -T src/lib{shared,firewall}/firewall-util.h - - split_lib src/libbasic - split_lib src/libshared - split_lib src/libsystemd-network - - mkdir src/libsystemd/include - mv -T src/{,libsystemd/include}/systemd - - # src/resolve => src/{libbasic-dns,resolve,resolved} - mkdir src/libbasic-dns - mv -t src/libbasic-dns \ - src/resolve/dns-type.{c,h} \ - src/resolve/resolved-dns-{anser,dnssec,packet,question,rr}.{c,h} \ - src/resolve/test-* - mkdir src/systemd-resolve - mv -t src/systemd-resolve \ - src/resolve/resolve-tool.c - mkdir src/systemd-resolved - mv -t src/systemd-resolved \ - src/resolve/.gitignore \ - src/resolve/* - rmdir src/resolve - - # src/import => src/{libimport,systemd-{export,importd,import}} - mkdir src/libimport - mv -t src/libimport \ - src/import/import-common.{c,h} \ - src/import/import-compress.{c,h} \ - src/import/qcow2-util.{c,h} \ - src/import/test-qcow2.h - mkdir src/systemd-export - mv -t src/systemd-export \ - src/import/export* - mkdir src/systemd-importd - mv -t src/systemd-importd \ - src/import/.gitignore \ - src/import/importd.c \ - src/import/org.* - mkdir src/systemd-import - mv -t src/systemd-import \ - src/import* - - # src/journal => src/.. - mkdir src/libjournal-core - mv -t src/libjournal-core \ - src/journal/journald-* \ - src/journal/test-* - mkdir src/systemd-cat - mv -t src/systemd-cat \ - src/journal/cat.c - mkdir src/journalctl - mv -t src/journalctl \ - src/journalctl/journal-qrcode.{c,h} \ - src/journalctl/journalctl.c - mkdir src/journald - mv -t src/journald \ - src/journal/journald.* - mkdir src/libsystemd/src/sd-journal - mv -t src/libsystemd/src/sd-journal \ - src/journal/audit-type.c \ - src/journal/audit-type.h \ - src/journal/catalog.c \ - src/journal/catalog.h \ - src/journal/compress.c \ - src/journal/compress.h \ - src/journal/fsprg.c \ - src/journal/fsprg.h \ - src/journal/journal-authenticate.c \ - src/journal/journal-authenticate.h \ - src/journal/journal-def.h \ - src/journal/journal-file.c \ - src/journal/journal-file.h \ - src/journal/journal-internal.h \ - src/journal/journal-send.c \ - src/journal/journal-vacuum.c \ - src/journal/journal-vacuum.h \ - src/journal/journal-verify.c \ - src/journal/journal-verify.h \ - src/journal/lookup3.c \ - src/journal/lookup3.h \ - src/journal/mmap-cache.c \ - src/journal/mmap-cache.h \ - src/journal/sd-journal.c - rmdir src/journal - - # src/network => src/... - mkdir src/systemd-networkd-wait-online - mv -t src/systemd-networkd-wait-online \ - network/networkd-wait-online* - mkdir src/libnetworkd-core - mv -t src/libnetworkd-core \ - network/.gitignore \ - network/networkd-* - mkdir src/networkctl - mv -t src/networkctl \ - network/networkctl.c - mkdir src/systemd-networkd - mv -t src/systemd-networkd \ - network/networkd* \ - network/org.* - rmdir network - - # src/machine => src/{machinectl,systemd-machined} - mkdir src/machinectl - mv -t src/machinectl \ - src/machine/machinectl* - mkdir src/systemd-machined - mv -t src/systemd-machined \ - machine/.gitignore \ - machine/* - - # auto-distribute the stuff - ( - cd man - for file in *.xml; do - if [[ -d ../src/"${file%.xml}" ]]; then - mv "$file" -t ../src/"${file%.xml}" - fi - done - ) - ( - cd units - for file in *; do - if [[ -d ../src/"${file%%.*}" ]]; then - mv "$file" -t ../src/"${file%%.*}" - elif [[ -d ../src/"${file%%@*}" ]]; then - mv "$file" -t ../src/"${file%%@*}" - fi - done - ) - ( - cd shell-completion/bash - for file in *; do - if [[ -d ../src/"$file" ]]; then - mv -T "$file" "../src/$file/$file.completion.bash" - fi - done - ) - ( - cd shell-completion/zsh - for file in _*; do - if [[ -d ../src/"${file#_}" ]]; then - mv -T "$file" "../src/${file#_}/${file#_}.completion.zsh" - fi - done - ) - - # categorize - grp src/grp-boot \ - src/bootctl \ - src/kernel-install \ - src/systemd-boot - grp src/grp-coredump \ - src/coredumpctl \ - src/systemd-coredump - grp src/grp-hostname \ - src/hostnamectl \ - src/systemd-hostnamed - grp src/grp-initprogs \ - src/systemd-backlight \ - src/systemd-binfmt \ - src/systemd-detect-virt \ - src/systemd-firstboot \ - src/systemd-fsck \ - src/systemd-modules-load \ - src/systemd-quotacheck \ - src/systemd-random-seed \ - src/systemd-rfkill \ - src/systemd-sysctl \ - src/systemd-sysusers \ - src/systemd-tmpfiles \ - src/systemd-update-done \ - src/systemd-update-utmp \ - src/systemd-user-sessions \ - src/systemd-vconsole-setup - grp src/grp-initprogs/grp-sleep \ - src/systemd-hibernate-resume \ - src/systemd-hibernate-resume-generator \ - src/systemd-sleep - grp src/grp-journal \ - catalog \ - src/journalctl \ - src/libjournal-core \ - src/systemd-cat \ - src/systemd-journald - grp src/grp-journal/grp-remote \ - src/systemd-journal-gatewayd \ - src/systemd-journal-remote \ - src/systemd-journal-upload - grp src/grp-locale \ - src/localectl \ - src/systemd-localed - grp src/grp-login \ - src/loginctl \ - src/pam_systemd \ - src/systemd-inhibit \ - src/systemd-logind - grp src/grp-machine \ - src/machinectl \ - src/nss-mymachines \ - src/systemd-machined - grp src/grp-machine/grp-import \ - src/libimport \ - src/systemd-export \ - src/systemd-import \ - src/systemd-importd \ - src/systemd-pull - grp src/grp-network \ - network \ - src/libnetworkd-core \ - src/networkctl \ - src/systemd-networkd \ - src/systemd-networkd-wait-online - grp src/grp-resolve \ - src/libbasic-dns \ - src/nss-resolve \ - src/systemd-resolve \ - src/systemd-resolved - grp src/systemd \ - src/libcore \ - src/systemctl \ - src/systemd - grp src/systemd/grp-utils \ - src/systemd-analyze \ - src/systemd-delta \ - src/systemd-fstab-generator \ - src/systemd-run \ - src/systemd-sysv-generator - grp src/grp-timedate \ - src/systemd-timedated \ - src/timedatectl - grp src/grp-udev \ - rules \ - src/*_id \ - src/systemd-hwdb \ - src/systemd-udevd \ - src/systemd-udevadm - grp src/grp-utils \ - src/systemd-ac-power \ - src/systemd-escape \ - src/systemd-notify \ - src/systemd-path \ - src/systemd-socket-activate -) - -breakup_makefile() ( - find . \( -name Makefile -o -name '*.mk' \) -delete - - touch .tmp.move.all - files=(.tmp.move.all) - file=/dev/null - IFS='' - while read -r line; do - if [[ $line = '#@'* ]]; then - file="${line#'#@'}" - file="${file%% *}" - elif [[ $file = all ]]; then - printf '%s\n' "$line" | tee -a "${files[@]}" >/dev/null - else - if ! in_array "$file" "${files[@]}"; then - cat .tmp.move.all > "$file" - files+=("$file") - fi - printf '%s\n' "$line" >> "$file" - fi - done < <(fixup_makefile <Makefile.am) - rm .tmp.move.all -) - -fixup_includes() ( - find src \( -name '*.h' -o -name '*.c' \) \ - -exec grep '#include ["<]sd-' -l -- {} + | - xargs -d $'\n' sed -ri \ - -e 's|#include "(sd-[^"]*)"|#include <systemd/\1>|' \ - -e 's|#include <(sd-[^>]*)>|#include <systemd/\1>|' -) - -fixup_makefile() { - sed -r \ - -e '/^[^# ]*:/ { s|^(\s*)\S+/|\1$(outdir)/| }' \ - -e 's|^if (.*)|ifneq ($(\1),)|' \ - -e 's|--version-script=.*/([^/]+)\.sym|--version-script=$(srcdir)/\1.sym|g' -} - -fixup_makefiles() ( - sed -ri \ - -e '/^ \$\(AM_V_at\)\$\(MKDIR_P\) \$\(dir \$@\)/d' \ - -e 's/ \$\(CFLAGS\) / /g' \ - -e 's/ \$\(CPPFLAGS\) / /g' \ - -e 's/ \$\(AM_CPPFLAGS\) / $(sd.ALL_CPPFLAGS) /g' \ - -e '/^[^# ]*:/ { s|\S+/|$(outdir)/|g }' \ - src/libbasic/include/basic/Makefile \ - src/libsystemd/src/Makefile \ - src/libsystemd/src/sd-journal/Makefile \ - src/grp-udev/libudev-core/Makefile - find -type f -name Makefile|while read -r filename; do - sed -r -i "s|(/\.\.)*/config.mk|/$(realpath -ms --relative-to="${filename%/*}" config.mk)|" "$filename" - done -) - -breakup_zshcompletion() ( - sed_expr=' - 1 { - i #compdef %s - d - } - /^case/,/^esac/ { - /^ %s)/,/^ ;;/ { - s/^ //p - } - d - } - ' - - cd shell-completion/zsh - read -r _ cmds < _systemd - for cmd in $cmds; do - printf -v cmd_sed_expr "$sed_expr" $cmd $cmd - sed -e "$cmd_sed_expr" < _systemd > _$cmd - done - rm _systemd -) - -move() ( - >&2 echo ' => breakup_zshcompletion' - breakup_zshcompletion - >&2 echo ' => move_files' - move_files - >&2 echo ' => breakup_makefile' - #breakup_makefile - >&2 echo ' => fixup_includes' - fixup_includes - >&2 echo ' => fixup_makefiles' - #fixup_makefiles -) - -main() { - set -e - - if [[ -n "$(git status -s)" ]] || [[ -n "$(git clean -xdn)" ]]; then - echo 'There are changes in the current directory.' >&2 - exit 1 - fi - - git checkout -b tmp/postmove - - move - - git add . - git commit -m './move.sh' - git merge -s ours notsystemd/postmove - git checkout notsystemd/postmove - git merge tmp/postmove - git branch -d tmp/postmove -} - -main "$@" diff --git a/tools/notsd-fixup b/tools/notsd-fixup index feec1b8921..0bd5c10bd9 100755 --- a/tools/notsd-fixup +++ b/tools/notsd-fixup @@ -1,7 +1,10 @@ #!/usr/bin/env bash +# The reason we do `find`/`while read`-loops instead of `find -exec` commands +# is that we want errors from the inner loop to bubble up. + fixup_makefiles() ( - find -type f -name Makefile|while read -r filename; do + find -type f -name Makefile | while read -r filename; do sed -r -i "s|(/\.\.)*/config.mk|/$(realpath -ms --relative-to="${filename%/*}" config.mk)|" "$filename" done ) @@ -9,15 +12,19 @@ fixup_makefiles() ( fixup_includes() ( find $(find . -type d -name include) -type d | while read -r dir; do lib="${dir##*/}" - pushd "$dir" + pushd "$dir" >/dev/null find . -type f -exec sed -ri -e "s|$lib/||" -- {} + - popd + popd >/dev/null done - find src \( -name '*.h' -o -name '*.c' \) -type f -exec "$0"--includes {} \; + find src \( -name '*.h' -o -name '*.c' \) -type f | while read -r filename; do + "$0"--includes "$filename" + done ) main() { + set -e + set -o pipefail fixup_makefiles fixup_includes } diff --git a/tools/notsd-fixup--includes b/tools/notsd-fixup--includes index 957733cdc0..46deaa8e8e 100755 --- a/tools/notsd-fixup--includes +++ b/tools/notsd-fixup--includes @@ -22,11 +22,34 @@ classify() { out private "$path" elif [[ "$path" != systemd/* ]] && [[ "$path" != libudev.h ]] && - cpp -include "$path" <<<'' &>/dev/null; - then + cpp -include "$path" <<<'' &>/dev/null; then out system "$path" else case "$path" in + *-to-name.h|*-from-name.h) + base="${path##*/}" + base="${base%-to-name.h}" + base="${base%-from-name.h}" + case "$base" in + dns_type) d=src/grp-resolve/systemd-resolved;; + keyboard-keys) d=src/grp-udev/libudev-core;; + af|arphrd|cap|errno) d=src/libbasic/include/basic;; + audit_type) d=src/libsystemd/src/sd-journal;; + *) + >&2 printf 'Unknown gperf base: %q\n' "$base" + >&2 printf 'Cannot figure out: %q\n' "$path" + exit 2 + ;; + esac + file="$d/${path##*/}" + if [[ "$current_file" = "$d"/* ]]; then + out private "${file##*/}" + elif [[ "$file" = */include/* ]]; then + out protected "${file##*/include/}" + else + out protected "${file##*/}" + fi + ;; asm/sgidefs.h|dbus/dbus.h|efi.h|efilib.h|gio/gio.h|glib.h|libmount.h) out system "$path" ;; @@ -88,13 +111,16 @@ phase0() { esac } -phase1_tail= -system=() -linux=() -public=() -protected=() -typedef=(); typedef_last=true -private=() +phase1_init() { + phase1_tail= + system=() + linux=() + public=() + protected=() + typedef=(); typedef_last=true + private=() +} +phase1_init phase1_flush() { local b=: if [[ ${#system[@]} -gt 0 ]]; then @@ -131,6 +157,7 @@ phase1_flush() { printf '%s\n' "${typedef[@]}" fi printf '%s' "$phase1_tail" + phase1_init } phase1() { phase=phase1 @@ -183,22 +210,14 @@ phase1() { ;; *) phase1_flush - phase2 "$line" + phase0 "$line" ;; esac } -phase2() { - phase=phase2 - hook=: - local line="$1" - printf '%s\n' "$line" - cat -} - main() { current_file="$1" - printf ' => %s\n' "$current_file" + printf ' => %q %q\n' "$0" "$current_file" set -o pipefail trap 'rm -f -- "$current_file.tmp"' EXIT { @@ -209,7 +228,11 @@ main() { done "$hook" } < "$current_file" > "$current_file.tmp" - mv -Tf "$current_file.tmp" "$current_file" + if cmp -s "$current_file.tmp" "$current_file"; then + rm -f "$current_file.tmp" || : + else + mv -Tf "$current_file.tmp" "$current_file" + fi } main "$@" diff --git a/tools/notsd-move b/tools/notsd-move index a65d29e946..5ae639fe26 100755 --- a/tools/notsd-move +++ b/tools/notsd-move @@ -475,7 +475,6 @@ move_files() ( mkdir src/grp-journal.d mv -t src/grp-journal.d tmpfiles.d/journal-nocow.* mv -t src/grp-remote.d tmpfiles.d/systemd-remote.* - mv -T tmpfiles.d/systemd{,-journald}.tmpfiles.m4 mv -t src/systemd tmpfiles.d/systemd-tmpfs.tmpfiles* mv -t src/systemd xorg/??-systemd-user.*; rmdir xorg mv -t src/systemd-vconsole-setup man/vconsole.conf.xml @@ -660,7 +659,6 @@ move_files() ( ) breakup_makefile() ( - set -x mkdir -p build-aux/Makefile.{once,each}.{head,tail} touch .tmp.move.all @@ -740,43 +738,50 @@ breakup_zshcompletion() ( rm _systemd ) +run() ( + local tmp + tmp="$(mktemp --tmpdir)" + trap 'rm -f -- "$tmp"' EXIT + "$0" "$@" |& tail -n20 > "$tmp" || { r=$?; cat "$tmp"; return $r; } + return 0 +) + move() ( find . \( -name Makefile -o -name '*.mk' \) -delete >&2 echo ' => breakup_zshcompletion' - breakup_zshcompletion + run breakup_zshcompletion >&2 echo ' => move_files' - move_files + run move_files >&2 echo ' => breakup_makefile' - "$0" breakup_makefile |& tail -n20 > .tmp.log || { r=$?; cat .tmp.log; exit $r; } - rm .tmp.log + run breakup_makefile >&2 echo ' => ./tools/notsd-fixup' ./tools/notsd-fixup ) main() { - set -e - set -o pipefail - - if [[ $# -gt 0 ]]; then - "$@" - else - if [[ -n "$(git status -s)" ]] || [[ -n "$(git clean -xdn)" ]]; then - echo 'There are changes in the current directory.' >&2 - exit 1 - fi + if [[ -n "$(git status -s)" ]] || [[ -n "$(git clean -xdn)" ]]; then + echo 'There are changes in the current directory.' >&2 + exit 1 + fi - git checkout -b tmp/postmove + git checkout -b tmp/postmove - move + move - git add . - git commit -m './tools/notsd-move' - git merge -s ours notsystemd/postmove - git checkout notsystemd/postmove - git merge tmp/postmove - git branch -d tmp/postmove - fi + git add . + git commit -m './tools/notsd-move' + git merge -s ours notsystemd/postmove + git checkout notsystemd/postmove + git merge tmp/postmove + git branch -d tmp/postmove } -main "$@" +set -e +set -o pipefail +if [[ $# -gt 0 ]]; then + set -x; +else + set -- main +fi +"$@" diff --git a/tools/reset.sh b/tools/reset.sh deleted file mode 100755 index d7141587fa..0000000000 --- a/tools/reset.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash -set -e -git checkout notsystemd/premove -git branch -D tmp/postmove || true -git checkout . -git clean -xdf |