From 96e21d9866cfc7b853f5cb8728ff2f7d7409ea84 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 26 Sep 2015 12:12:26 -0300 Subject: Provision fixes for raspi --- lib/hydra/provision | 48 +++++++++++++++++++++--------------------- share/hydra/provision | 3 ++- share/hydra/provision-raspi | 1 + share/hydractl/provision | 8 ++++++- share/hydractl/provision-raspi | 16 ++++++++++---- 5 files changed, 46 insertions(+), 30 deletions(-) create mode 120000 share/hydra/provision-raspi diff --git a/lib/hydra/provision b/lib/hydra/provision index 5c85e04..1c24129 100644 --- a/lib/hydra/provision +++ b/lib/hydra/provision @@ -1,31 +1,31 @@ #!/bin/bash # Load provision configuration -function hydra_provision_load_config { -if [ ! -z "$1" ]; then - if [ -f "$1" ]; then - echo "Using configuration from file $1..." - source "$1" - elif [ -f "$1.conf" ]; then - echo "Using configuration from file $1.conf..." - source "$1.conf" - elif [ -f "$HYDRA_FOLDER/config/provision/$1" ]; then - echo "Using configuration from $HYDRA_FOLDER/config/provision/$1..." - source "$HYDRA_FOLDER/config/provision/$1" - elif [ -f "$HYDRA_FOLDER/config/provision/$1.conf" ]; then - echo "Using configuration from $HYDRA_FOLDER/config/provision/$1.conf..." - source "$HYDRA_FOLDER/config/provision/$1.conf" - elif [ -f "$APP_BASE/share/config/provision/$1" ]; then - echo "Using configuration from $APP_BASE/share/config/provision/$1..." - source "$APP_BASE/share/config/provision/$1" - elif [ -f "$APP_BASE/share/config/provision/$1.conf" ]; then - echo "Using configuration from $APP_BASE/share/config/provision/$1.conf..." - source "$APP_BASE/share/config/provision/$1.conf" - else - echo "Profile not found: $1" - exit 1 +function hydra_provision_config_load { + if [ ! -z "$1" ]; then + if [ -f "$1" ]; then + echo "Using configuration from file $1..." + source "$1" + elif [ -f "$1.conf" ]; then + echo "Using configuration from file $1.conf..." + source "$1.conf" + elif [ -f "$HYDRA_FOLDER/config/provision/$1" ]; then + echo "Using configuration from $HYDRA_FOLDER/config/provision/$1..." + source "$HYDRA_FOLDER/config/provision/$1" + elif [ -f "$HYDRA_FOLDER/config/provision/$1.conf" ]; then + echo "Using configuration from $HYDRA_FOLDER/config/provision/$1.conf..." + source "$HYDRA_FOLDER/config/provision/$1.conf" + elif [ -f "$APP_BASE/share/config/provision/$1" ]; then + echo "Using configuration from $APP_BASE/share/config/provision/$1..." + source "$APP_BASE/share/config/provision/$1" + elif [ -f "$APP_BASE/share/config/provision/$1.conf" ]; then + echo "Using configuration from $APP_BASE/share/config/provision/$1.conf..." + source "$APP_BASE/share/config/provision/$1.conf" + else + echo "Profile not found: $1" + exit 1 + fi fi -fi } # Networking. diff --git a/share/hydra/provision b/share/hydra/provision index 99ee291..4c59b3d 100755 --- a/share/hydra/provision +++ b/share/hydra/provision @@ -23,6 +23,7 @@ hydra_config_load # Parameters NODE="$1" CONFIG="$HYDRA_FOLDER/config/provision" +BASENAME="`basename $0`" # Ensure config folder exists mkdir -p $CONFIG @@ -33,5 +34,5 @@ if [ -z "$NODE" ]; then ( cd $CONFIG && tree ) exit 1 else - hydractl provision $NODE + hydractl $BASENAME $NODE fi diff --git a/share/hydra/provision-raspi b/share/hydra/provision-raspi new file mode 120000 index 0000000..e98b45a --- /dev/null +++ b/share/hydra/provision-raspi @@ -0,0 +1 @@ +provision \ No newline at end of file diff --git a/share/hydractl/provision b/share/hydractl/provision index 79c88cc..087b703 100755 --- a/share/hydractl/provision +++ b/share/hydractl/provision @@ -109,10 +109,16 @@ function hydra_provision_config { hydra_user_config vg $hostname "Install vg" hydra_user_config grub y "Setup GRUB? (y/n)" hydra_user_config mirror http://http.debian.net/debian/ "Debian mirror" + + # Check arch + if [ "$arch" == "armel" ] || [ "$arch" == "armhf" ]; then + echo "You probably want to run provision-raspi instead of provision" + exit 1 + fi } # Load configuration -hydra_provision_load_config +hydra_provision_config_load $1 # Parameters WORK="/tmp/debootstrap" diff --git a/share/hydractl/provision-raspi b/share/hydractl/provision-raspi index 640616f..5b3ea15 100755 --- a/share/hydractl/provision-raspi +++ b/share/hydractl/provision-raspi @@ -29,23 +29,31 @@ function hydra_provision_config { hydra_user_config arch armel "System arch" hydra_user_config version jessie "Distro version" hydra_user_config mirror http://http.debian.net/debian/ "Debian mirror" + + # Check arch + if [ "$arch" != "armel" ] && [ "$arch" != "armhf" ]; then + echo "You probably want to run provision instead of provision-raspi" + exit 1 + fi } # Load configuration -hydra_provision_load_config +hydra_provision_config_load $1 # Parameters WORK="/media/mmc" CHROOT="hydra_sudo_run chroot $WORK" CMDLINE="dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait" -RPI_URL="http://goo.gl/1BOfJ" +RPI_URL="https://raw.githubusercontent.com/Hexxeh/rpi-update/master/rpi-update" # Get config parameters. hydra_provision_config # Partitioning -# TODO automated -hydra_sudo_run cfdisk $device # bootable VFAT (0B) and linux partitions +hydra_sudo_run parted -s -- $device mklabel msdos +hydra_sudo_run parted -s -- $device unit MB mkpart primary fat32 1 100 +hydra_sudo_run parted -s -- $device unit MB mkpart primary ext2 101 -1 +hydra_sudo_run parted -s -- $device set 1 boot on hydra_sudo_run mkdir -p $WORK # Create filesystems -- cgit v1.2.3