]> gitweb.fluxo.info Git - hydra.git/commitdiff
Using target argument
authorSilvio Rhatto <rhatto@riseup.net>
Tue, 4 Oct 2011 20:38:44 +0000 (17:38 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Tue, 4 Oct 2011 20:38:44 +0000 (17:38 -0300)
share/hydra/bootless

index 751ae5c5264f2b8fb6086c7137c56cc7f3f46d57..a9ae47b5658468973e006c0a2f0e436b612469d0 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU Affero General Public License as
@@ -20,11 +20,9 @@ hydra_config_load
 
 # parameter verification
 if [ $# -gt 1 ]; then
-  echo "Usage: $0"
+  echo "Usage: `basename $0` [target]"
   exit 1
-fi
-
-if [ -z "$HYDRA_FOLDER" ]; then
+elif [ -z "$HYDRA_FOLDER" ]; then
   echo "Parameter HYDRA_FOLDER not configured."
   exit 1
 fi
@@ -35,33 +33,34 @@ Bootless Install Script
 =======================
 
 This script installs a bootable copy of the bootless repository in a device
-partition. It will ask for a git repo URL and a device partition, clone the
-repository in the partition and make the device bootable.
+partition. It will ask for a device partition, clone the repository in the
+partition and make the device bootable.
 
 Press any key to continue, or ^C to abort.
 EOF
 read tmp
 
-# asks for git repo URL
-echo -n "Git repo url (`pwd`/.git): "
-read gitdir
-if [ -z "${gitdir}" ]; then
+if [ -e "$HYDRA_FOLDER/bootless" ]; then
   gitdir="$HYDRA_FOLDER/bootless"
+elif [ -e "$HYDRA_FOLDER/conf/bootless" ]; then
+  gitdir="$HYDRA_FOLDER/conf/bootless"
+else
+  echo "Please make a symlink $HYDRA_FOLDER/bootless pointing to your devel puppet modules."
+  exit 1
 fi
 
 # git repo consistency check
-git --git-dir=${gitdir} status > /dev/null
+( cd ${gitdir} && git status > /dev/null )
 if [ $? -ne 0 ]; then
   echo "Error: '${gitdir}' is not a git repository."
   exit 1
 fi
 
-# asks for target device
-if [ $# -lt 1 ]; then
+if [ -z "$1" ]; then
   echo -n "Target device: "
   read device
 else
-  device=$2
+  device=$1
 fi
 
 # target device consistency check
@@ -93,25 +92,25 @@ if [ "${go}" != "YES" ]; then
 fi
 
 # formatacao e montagem
-mke2fs ${device}
+sudo mke2fs ${device}
 if [ $? != 0 ]; then
   echo "Error: mke2fs failed in \"${device}\" (errno: $?)."
   exit 1;
 fi
-tune2fs -c 0 -i 0 ${device}
+sudo tune2fs -c 0 -i 0 ${device}
 if [ $? != 0 ]; then
   echo "Error: tune2fs failed in \"${device}\" (errno: $?)."
   exit 1;
 fi
 tmpdir=`mktemp -d`
-mount ${device} ${tmpdir}
+sudo mount ${device} ${tmpdir}
 if [ $? != 0 ]; then
   echo "Error: failed to mount \"${device}\" filesystem in \"${tmpdir}\" (errno: $?)."
   exit 1;
 fi
 
 # data copy
-git clone --depth=1 ${gitdir} ${tmpdir}/boot
+sudo git clone --depth=1 ${gitdir} ${tmpdir}/boot
 if [ $? != 0 ]; then
   echo "Error: failed to clone repository \"${gitdir}\" in \"${tmpdir}\" (errno: $?)."
   exit 1;
@@ -129,9 +128,9 @@ fi
 
 # grub 2
 usbdevice=`echo ${device} | sed -e s/[0-9]\$//`
-grub-install --root-directory=${tmpdir} ${usbdevice} --force
+sudo grub-install --root-directory=${tmpdir} ${usbdevice} --force
 
 # finalize
 #rm -f ${devicemap}
-umount ${tmpdir}
-rm -rf ${tmpdir}
+sudo umount ${tmpdir}
+sudo rm -rf ${tmpdir}