#!/usr/bin/env bash
# Created by Tobias Powalowski <tpowa@archlinux.org>

build ()
{
    map add_binary getent head id cksum tail test tr uptime w who which whoami xargs \
          swapon uniq cut seq snarf fdisk sfdisk cfdisk parted free less \
          chgrp chown df dialog dmesg egrep fgrep stty sync tar bsdcpio hdparm \
          chroot dirname expr bzip2 su cpio top sdparm tput \
          ifconfig ln losetup mkfifo mknod readlink lzmadec lzop xz last wall mesg utmpdump \
          xzdec switch_root pivot_root chcpu ctrlaltdel gdisk sgdisk cgdisk fixparts findmnt \
          lsblk swaplabel cal chrt col colcrt colrm column fallocate flock getopt \
          ionice ipcmk ipcrm ipcs isosize swapoff look lscpu mcookie namei prlimit rename \
          renice rev script scriptreplay setarch setsid setterm taskset ul unshare \
          uuidgen whereis write addpart delpart ldattach partx readprofile rtcwake uuidd \
          sysctl pkill pmap pwdx slabtop tload vmstat watch file eject keyctl request-key \
          zsh hostname tac sulogin resizepart lslocks wdctl zless zgrep fold od ldd \
          shred blockdev blkdiscard newgrp nsenter runuser vigr vipw ldconfig diff depmod \
          linux32 linux64 lsmod lzcat lzcmp lzdiff lzegrep lzfgrep lzgrep lzegrep \
          lzless lzmore lzma modinfo nc reset unlzma unxz xzcat lastb stat \
          blkzone chmem choom fincore hardlink irqtop lsipc lsirq lslogins lsmem lsns mkfs \
          scriptlive setpriv  uclampset uname26 uuidparse zramctl [ b2sum base32 base64 \
          basenc chcon comm csplit dircolors expand factor fmt hostid join link \
          logname md5sum nice nl nohup nproc numfmt paste pathchk pinky pr printenv ptx realpath \
          runcon sha1sum sha224sum sha256sum sha384sum sha512sum shuf split stdbuf sum timeout truncate \
          tsort unexpand unlink users vdir pwait fuser peekfd prtstat pslog pstree newgidmap newuidmap \
          lzmainfo xzcmp xzgrep xzegrep xzfgrep gzexe uncompress zcmp zdiff zegrep zfgrep zforce zmore znew \
          bunzip2 bzcat bzdiff bzgrep bzip2recover bzmore chacl getfacl setfacl attr getfattr \
          setfattr pzstd unzstd zstdcat zstdgrep zstdless zstdmt lz4 lz4c lz4cat unlz4 gunzip zcat
    [[ "$(uname -m)" == "x86_64" ]] && map add_binary i386 x86_64
    ### add zsh
    map add_full_dir "/etc/zsh" "/usr/share/zsh" "/usr/lib/zsh"
    
    ### add en_US.utf8 locale
    add_file "/usr/lib/locale/locale-archive"

    ### fix file
    add_file "/usr/share/file/misc/magic.mgc"
    
    ### add shadow
    map add_binary groups chage chfn chsh expiry faillog gpasswd lastlog passwd \
          chgpasswd chpasswd groupadd groupdel groupmems groupmod grpck grpconv grpunconv \
          newusers pwck pwconv pwunconv useradd userdel usermod sg

    ### fix licenses
    map add_file "/usr/share/licenses/file/COPYING" "/usr/share/licenses/bzip2/LICENSE" \
                 "/usr/share/licenses/hdparm/LICENSE.TXT" "/usr/share/licenses/ncurses/COPYING" \
                 "/usr/share/licenses/pcre/LICENSE" "/usr/share/licenses/sdparm/LICENSE" \
                 "/usr/share/licenses/zlib/LICENSE"
}

help ()
{
cat <<HELPEOF
  This hook sets up base for a normal archboot image.
HELPEOF
}
