##### variables/env setup
-script_dir="$(readlink -f "$BASH_SOURCE")"; script_dir=${script_dir%/*}
+script_dir="$(readlink -f "${BASH_SOURCE[@]}")"; script_dir=${script_dir%/*}
+# shellcheck source=./pkgs
source $script_dir/pkgs
set +x
source /a/bin/distro-functions/src/identify-distros
home_network() { ! linode; }
encrypted() { has_p; }
shopt -s extglob
-export GLOBIGNORE=*/.:*/..
+export GLOBIGNORE="*/.:*/.."
umask 022
PATH="/a/exe:$PATH"
sed="sed --follow-symlinks"
sudo systemctl start keyscriptoff.service
# from /usr/share/doc/dropbear-initramfs/README.initramfs.gz
- while read m _; do /sbin/modinfo -F filename "$m"; done </proc/modules | \
- sed -nr "s@^/lib/modules/`uname -r`/kernel/drivers/net(/.*)?/([^/]+)\.ko\$@\2@p" \
+ while read -r m _; do /sbin/modinfo -F filename "$m"; done </proc/modules | \
+ sed -nr "s@^/lib/modules/$(uname -r)/kernel/drivers/net(/.*)?/([^/]+)\.ko\$@\2@p" \
| sudo dd of=/etc/initramfs-tools/modules
sudo apt-get -y install initramfs-tools-core
# initram auth keys get setup with rootsshsync
set +x
err-allow
source /etc/profile.d/environment.sh
+# shellcheck source=./.bashrc
source ~/.bashrc
err-catch
$interactive || set -x
pi nfs-common
s dd of=/root/imount <<'EOF'
#!/bin/bash
-[[ $EUID == 0 ]] || exec sudo -E "$BASH_SOURCE" "$@"
+[[ $EUID == 0 ]] || exec sudo -E "${BASH_SOURCE[0]}" "$@"
set -eE -o pipefail
trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
for dir in /i /mnt/iroot /k /kr /w; do
##### setup email
-if isdeb; then
- mail-setup exim4
-else
- # todo: probably broken
- mail-setup postfix
-fi
+mail-setup
#### ubuntu nicety
if isubuntu; then
# https://wiki.archlinux.org/index.php/Xinitrc
for homedir in /home/*; do
cp /etc/X11/xinit/xinitrc $homedir/.xinitrc
+ # shellcheck disable=SC2016
$sed -ri '/^ *twm\b/,$d' $homedir/.xinitrc
tee -a $homedir/.xinitrc <<'EOF'
/a/bin/desktop-20-autostart.sh