#/bin/busybox ash

# TODO: check that we're root, and exit or prompt user to continue

busybox find -group 1000 -o -user 1000 -exec busybox chown -hcv 0:0 {} +

busybox rm -v \
              home/user/.local/share/kwalletd/kdewallet.kwl \
              home/user/.local/share/kwalletd/kdewallet.salt \
              etc/skel/.local/share/kwalletd/kdewallet.kwl \
              etc/skel/.local/share/kwalletd/kdewallet.salt;

printf '%s\n%s\n' '127.0.0.1       localhost' '::1             ip6-localhost localhost' | busybox tee etc/hosts;

printf '%s' '[device]
wifi.scan-rand-mac-address=yes

[connection]
wifi.cloned-mac-address=random
ethernet.cloned-mac-address=random
connection.stable-id=${CONNECTION}/${BOOT}
' | busybox tee etc/NetworkManager/conf.d/00-macrandomize.conf;

busybox chmod -cv 0755 tmp var/tmp;

busybox ln -vs /usr/bin/lddtree /usr/local/bin/ldd;

busybox mkdir root/.cache \
              home/user/.cache home/user/.tor home/user/.android home/user/.lldb \
              home/user/.local/state \
              home/user/.local/share/sddm \
              home/user/.config/Signal home/user/.config/Signal/logs \
              home/user/Downloads home/user/Pictures home/user/Videos \
              var/lib/machines
              var/lib/portables
              var/lib/private
              var/lib/sddm/.cache var/lib/sddm/.local var/lib/sddm/.dbus;

for f in \
         root/.ash_history root/.bash_history root/.python_history root/.zsh_history \
         home/user/.ash_history home/user/.bash_history home/user/.python_history home/user/.zsh_history \
         home/user/.lldb/lldb-widehistory \
         home/user/.config/Signal home/user/.config/Signal/logs \
         home/user/.local/share/recently-used.xbel \
         home/user/.local/share/user-places.xbel \
         home/user/.local/share/user-places.xbel.bak \
         home/user/.local/share/user-places.xbel.tbcache \
         home/user/.local/share/sddm/wayland-session.log \
         var/lib/sddm/.local/share/sddm.log; do {
 busybox ln -vs /dev/null "$f";
}; done;

busybox chown 10000:10000 -hcv home/user \
                       home/user/.ash_history \
                       home/user/.bash_history \
                       home/user/.python_history \
                       home/user/.zsh_history \
                       home/user/Downloads home/user/Pictures home/user/Videos \
                       home/user/.cache home/user/.tor home/user/.android \
                       home/user/.local/state \
                       home/user/.local/share/recently-used.xbel home/user/.local/share/user-places.xbel home/user/.local/share/user-places.xbel.bak home/user/.local/share/user-places.xbel.tbcache \
                       home/user/.local/share/sddm home/user/.local/share/sddm/wayland-session.log;

busybox chattr -V +i . boot dev home lib media mnt proc run srv sys tmp usr var \
                       usr/local \
                       root/.cache \
                       var/cache var/empty var/local var/log var/mail var/tmp \
                       var/lib/AccountsService var/lib/boltd var/lib/chrony var/lib/dbus var/lib/flatpak var/lib/machines var/lib/misc var/lib/NetworkManager var/lib/nftables var/lib/portables var/lib/private var/lib/systemd var/lib/udhcpd var/lib/udisks2 var/lib/upower var/lib/urfkill var/lib/xkb \
                       var/lib/sddm/.cache var/lib/sddm/.local var/lib/sddm/.dbus \
                       home/user/Downloads home/user/Pictures home/user/Videos \
                       home/user/.cache \
                       home/user/.local home/user/.local/state;

printf '%s' '
tmpfs /tmp                            tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0

tmpfs /var/cache                      tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0
tmpfs /var/local                      tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0
tmpfs /var/log                        tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0
tmpfs /var/mail                       tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0
tmpfs /var/opt                        tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0
tmpfs /var/tmp                        tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0

tmpfs /var/lib/boltd                  tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0
tmpfs /var/lib/chrony                 tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0
tmpfs /var/lib/dbus                   tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0
tmpfs /var/lib/machines               tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0
tmpfs /var/lib/misc                   tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0
tmpfs /var/lib/NetworkManager         tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0
tmpfs /var/lib/nftables               tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0
tmpfs /var/lib/portables              tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0
tmpfs /var/lib/private                tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0
tmpfs /var/lib/systemd                tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0
tmpfs /var/lib/udhcpd                 tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0
tmpfs /var/lib/udisks2                tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0
tmpfs /var/lib/upower                 tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0
tmpfs /var/lib/urfkill                tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0
tmpfs /var/lib/xkb                    tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0

tmpfs /var/lib/sddm/.cache            tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0
tmpfs /var/lib/sddm/.local            tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0
tmpfs /var/lib/sddm/.dbus             tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G 0 0

tmpfs /root/.cache                    tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=256M 0 0

tmpfs /home/user/Downloads            tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G,uid=10000,gid=10000 0 0
tmpfs /home/user/Pictures             tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=128M,uid=10000,gid=10000 0 0
tmpfs /home/user/Videos               tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=128M,uid=10000,gid=10000 0 0
tmpfs /home/user/.cache               tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=256M,uid=10000,gid=10000 0 0
tmpfs /home/user/.android             tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=16M,uid=10000,gid=10000 0 0
tmpfs /home/user/.tor                 tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=64M,uid=10000,gid=10000 0 0

tmpfs /home/user/.config/pulse        tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=96M,uid=10000,gid=10000 0 0
tmpfs /home/user/.config/Signal/logs  tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=96M,uid=10000,gid=10000 0 0
tmpfs /home/user/.local/state         tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=256M,uid=10000,gid=10000 0 0

tmpfs /home/user/.local/share/kactivitymanagerd/resources tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=96M,uid=10000,gid=10000 0 0
tmpfs /home/user/.local/share/kate tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=96M,uid=10000,gid=10000 0 0
tmpfs /home/user/.local/share/klipper tmpfs inode32,rw,nodev,nosuid,noexec,noatime,nodiratime,async,size=1G,uid=10000,gid=10000 0 0
' | busybox tee -a etc/fstab;

busybox fstrim -v .;