summaryrefslogtreecommitdiff
path: root/move.sh
diff options
context:
space:
mode:
Diffstat (limited to 'move.sh')
-rwxr-xr-xmove.sh281
1 files changed, 281 insertions, 0 deletions
diff --git a/move.sh b/move.sh
new file mode 100755
index 0000000000..22caeb8a6f
--- /dev/null
+++ b/move.sh
@@ -0,0 +1,281 @@
+#!/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
+}
+
+move_files() (
+ for d in libsystemd libudev; do
+ mkdir src/$d-new
+ mv -T src/$d src/$d-new/src
+ mv -T src/$d-new src/$d
+ done
+
+ for d in basic core shared; do
+ mv -T src/{,lib}$d
+ done
+
+ pfix=(
+ dbus1-generator
+ debug-generator
+ fstab-generator
+ getty-generator
+ gpt-auto-generator
+ rc-local-generator
+ system-update-generator
+ sysv-generator
+
+ ac-power
+ activate
+ analyze
+ ask-password
+ backlight
+ binfmt
+ bootchart
+ cgls
+ cgroups-agent
+ cgtop
+ coredump
+ cryptsetup
+ delta
+ detect-virt
+ escape
+ firstboot
+ fsck
+ hibernate-resume
+ hwdb
+ notify
+ nspawn
+ path
+ quotacheck
+ random-seed
+ remount-fs
+ reply-password
+ rfkill
+ run
+ timesync
+ tmpfiles
+ tty-ask-password-agent
+ update-done
+ update-utmp
+ user-sessions
+ vconsole
+ )
+ for d in "${pfix[@]}"; do
+ mv -T src/{,systemd-}$d
+ done
+
+
+ mv -T {,src/journal/}catalog
+
+ mv -T {shell-completion/bash/,src/kernel-install/bash-completion_}kernel-install
+ mv -T {shell-completion/zsh/_,src/kernel-install/zsh-completion_}kernel-install
+ mv -T {man,src/kernel-install}/kernel-install.xml
+
+ mv -T src/lib{shared,core}/linux
+
+ mv -T src/{,libsystemd/}/compat-libs
+ mkdir src/libsystemd/include
+ mv -T src/{,libsystemd/include}/systemd
+
+ mkdir src/grp-machine
+ mv -T src/machine src/grp-machine/libmachine-core
+ mkdir src/grp-machine/systemd-machined
+ mv -T src/grp-machine/{libmachine-core,systemd-machined}/machined.c
+ mkdir src/grp-machine/machinectl
+ mv -T src/grp-machine/{libmachine-core,machinectl}/machinectl.c
+ mv -T src/{,grp-machine}/nss-mymachines
+
+ mkdir src/grp-resolve
+ mv -T src/{resolve,grp-resolve/systemd-resolved}
+ mv -T src/{,grp-resolve}/nss-resolve
+
+ mkdir src/grp-system
+ mv -T src/{,grp-system}/systemctl
+
+ mkdir src/libfirewall
+ mv -T src/lib{shared,firewall}/firewall-util.c
+ mv -T src/lib{shared,firewall}/firewall-util.h
+
+ mkdir src/grp-system/systemd
+ mv -T src/{libcore,grp-system/systemd}/main.c
+ mv -T src/{libcore,grp-system/systemd}/macros.systemd.in
+ mv -T src/{libcore,grp-system/systemd}/org.freedesktop.systemd1.conf
+ mv -T src/{libcore,grp-system/systemd}/org.freedesktop.systemd1.policy.in.in
+ mv -T src/{libcore,grp-system/systemd}/org.freedesktop.systemd1.service
+ mv -T src/{libcore,grp-system/systemd}/system.conf
+ mv -T src/{libcore,grp-system/systemd}/systemd.pc.in
+ mv -T src/{libcore,grp-system/systemd}/triggers.systemd.in
+ mv -T src/{libcore,grp-system/systemd}/user.conf
+
+ mkdir src/libudev/include
+ mv -T src/libudev/{src,include}/libudev.h
+
+ mv -T {man,src/systemd-activate}/systemd-activate.xml
+
+ mv -T src/libsystemd/{src,}/libsystemd.pc.in
+ mv -T src/libsystemd/{src,}/libsystemd.sym
+ mv -T src/libsystemd/{src,}/.gitignore
+ mv -T src/libsystemd/{src,libsystemd-internal}
+
+ mkdir src/systemd-shutdown
+
+ mkdir src/grp-coredump
+ mv -T src/{,grp-coredump}/systemd-coredump
+ mkdir src/grp-coredump/coredumpctl
+ mv -T src/grp-coredump/{systemd-coredump,coredumpctl}/coredumpctl.c
+
+ mkdir src/grp-boot
+ mv -T src/boot/efi src/grp-boot/systemd-boot
+ mv -T src/boot src/grp-boot/bootctl
+ mv -T {test,src/grp-boot/systemd-boot}/test-efi-create-disk.sh
+
+ mkdir build-aux
+ mkdir build-aux/Makefile.{once,each}.{head,tail}
+ touch build-aux/Makefile.{once,each}.{head,tail}/.gitignore
+
+ mkdir src/libsystemd/libsystemd-journal-internal
+
+ libsystemd_journal_files=(
+ audit-type.c
+ audit-type.h
+ catalog.c
+ catalog.h
+ compress.c
+ compress.h
+ fsprg.c
+ fsprg.h
+ journal-authenticate.c
+ journal-authenticate.h
+ journal-def.h
+ journal-file.c
+ journal-file.h
+ journal-internal.h
+ journal-send.c
+ journal-vacuum.c
+ journal-vacuum.h
+ journal-verify.c
+ journal-verify.h
+ lookup3.c
+ lookup3.h
+ mmap-cache.c
+ mmap-cache.h
+ sd-journal.c
+ )
+ for file in "${libsystemd_journal_files[@]}"; do
+ mv -T src/{journal,libsystemd/libsystemd-journal-internal}/$file
+ done
+
+ mkdir src/busctl
+ mv src/libsystemd/libsystemd-internal/sd-bus/busctl* src/busctl
+
+ mv -T src/{udev,libudev/src}/udev.h
+
+ mv -T src/{bus-proxyd,libbus-proxy-core}
+ mkdir src/systemd-bus-proxyd
+ mv src/{libbus-proxy-core,systemd-bus-proxyd}/bus-proxyd.c
+ mkdir src/systemd-stdio-bridge
+ mv src/{libbus-proxy-core,systemd-stdio-bridge}/stdio-bridge.c
+
+ mkdir src/grp-timedate
+ mv -T src/timedate src/grp-timedate/systemd-timedated
+ mkdir src/grp-timedate/timedatectl
+ mv -T src/grp-timedate/{systemd-timedated,timedatectl}/timedatectl.c
+
+ mv -T src/{libsystemd/libsystemd-internal/sd-netlink,libshared}/local-addresses.c
+ mv -T src/{libsystemd/libsystemd-internal/sd-netlink,libshared}/local-addresses.h
+ mv -T src/{libsystemd/libsystemd-internal/sd-netlink,libshared}/test-local-addresses.c
+)
+
+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 's|#include "(sd-[^"]*)"|#include <systemd/\1>|'
+)
+
+fixup_makefile() {
+ sed -r \
+ -e '/^[^# ]*:/ { s|^(\s*)\S+/|\1$(outdir)/| }' \
+ -e 's|^if (.*)|ifneq ($(\1),)|' \
+ -e 's|rootprefix|prefix|g' \
+ -e 's|rootbin|bin|g' \
+ -e 's|rootlib|lib|g' \
+ -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\) / $(ALL_CPPFLAGS) /g' \
+ -e '/^[^# ]*:/ { s|\S+/|$(outdir)/|g }' \
+ src/libbasic/Makefile \
+ src/libsystemd/libsystemd-journal-internal/Makefile \
+ src/udev/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
+)
+
+move() (
+ >&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 postmove
+
+ move
+
+ git add .
+ git commit -m './move.sh'
+ git merge -s ours lukeshu/postmove
+ git checkout lukeshu/postmove
+ git merge postmove
+ git branch -d postmove
+}
+
+main "$@"