-#!/bin/bash -lx
+#!/bin/bash -l
+# Copyright (C) 2016 Ian Kelling
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+set -x
set -eE -o pipefail
-trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?"' ERR
+trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
+usage() {
+ cat <<EOF
+Usage: ${0##*/} [-h|--help] HOSTNAME
+install arch after it's been booted into it's setup env
+EOF
+ exit $1
+}
+case $1 in
+ -h|--help) usage ;;
+esac
+
+if [[ ! $1 ]]; then
+ echo "error: expect a hostname in \$1 "
+ usage 1
+fi
host=$1
-[[ $host == frodo ]] && scp /a/c/machine_specific/frodo/subdir_files/.ssh/* frodo:.ssh/
+
+scp -o StrictHostKeyChecking=false -o UserKnownHostsFile=/dev/null \
+ /p/c/machine_specific/$host/filesystem/etc/ssh/* root@$host:/etc/ssh
+
if [[ -e /var/cache/pacman/pkg ]]; then
darkhttpd /var/cache/pacman/pkg &
- url=http://$HOSTNAME:8080
+ mirror=http://$HOSTNAME:8080
fi
-faid=/a/bin/fai
-fai_files=(
- distro-install-common
- hooks/partition.DEFAULT
- class/50-host-classes
-)
-sudo scp -r /a/bin/fai/arch-init{,-chroot} \
- ${fai_files[@]/#//a/bin/fai/fai/config/} \
- /q/root/luks /p/shadow root@$host:
+
+rsync -rlpthvi --relative /a/bin/fai/ root@$host:/
+rsync /a/bin/fai/ root@$host:/a/bin/fai/
+sudo scp -r /q/root/luks /q/root/shadow root@$host:
# creating shadow file string:
# on debian, you can use mkpasswd -m sha-512 to generate a pass.
# arch doesn't have this program. instead, you can do passwd,
# and extract it from the shadow file.
-ssh root@$host bash -x ./arch-init "'$(cat /p/shadow/standard)'" $host $url
-ssh root@$host reboot now || [[ $? == 255 ]]
-# we need to wait for reboot and input encryption password,
-# so no doing this now.
+ssh root@$host bash -x /a/bin/fai/arch-init $host $mirror
+
+ssh root@$host reboot || [[ $? == 255 ]]
+
+# next up is sync data, then
# ssh $host /a/bin/distro-begin
-killall darkhttpd
+if [[ -e /var/cache/pacman/pkg ]]; then
+ killall darkhttpd
+fi
# todo: this doesn't work. figure out why.
#kill $!