various fixes and improvements
[automated-distro-installer] / arch-init-remote
index 82fdedbd04342f961d4bf87f9064ec88ec7e7532..4210b5f8ce86f83ba73924372147232302a5e3aa 100755 (executable)
@@ -1,35 +1,48 @@
-#!/bin/bash -lx
+#!/bin/bash -l
 
+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
 
+if [[ ! $1 ]]; then
+    echo "error: expect a hostname in \$1 "
+    exit 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} \
+     /a/bin/fai/encrypt \
      ${fai_files[@]/#//a/bin/fai/fai/config/} \
-    /q/root/luks /p/shadow root@$host:
+     /a/bin/devbyid \
+     /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 ./arch-init $host $mirror
+
+#ssh root@$host reboot now || [[ $? == 255 ]]
+
+# next up is:
 # 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 $!