#!/bin/bash # SPDX-License-Identifier: Unlicense cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" dir="/tmp/dtrfs" if [ -z $1 ]; then echo "You must specify the server as the first parameter." echo "Example: ./install.sh 10.10.10.73 root 22" echo "The 2nd (ssh user) and 3rd (ssh port) arguments are optional." exit 1 fi server="$1" scp_server="$1" echo $1 | grep -F ':' > /dev/null && scp_server="[${1}]" if ! [ -z $2 ]; then server="${2}@${server}" echo $1 | grep -F ':' > /dev/null && scp_server="${2}@${scp_server}" fi if [ -z $3 ]; then ssh="ssh" scp="scp" else ssh="ssh -p $3" scp="scp -P $3" fi set -e # TODO: test if this works mkdir -p tmp build my_location="$(pwd)" cd ../dtrfs_api && cargo build --release || { echo Could not build dtrfs_api exit 1 } cd "$my_location" cp ../dtrfs_api/target/release/dtrfs_api ./build/ tar cf tmp/dtrfs.tar *.sh build/dtrfs_api arch_guest_mods $ssh $server rm -rf ${dir} $ssh $server mkdir -p ${dir} $scp tmp/dtrfs.tar ${scp_server}:${dir} $ssh $server tar -xf ${dir}/dtrfs.tar -C ${dir} $ssh $server GRAB_LOCAL_MODS=YES ${dir}/create.sh archive=$($ssh $server cat ${dir}/build/.archive_name) $scp ${scp_server}:${dir}/build/${archive} tmp/ echo echo initrd downloaded to: $(pwd)/tmp/${archive}