grml_chroot: fix broken mount argument handling
[grml-scripts.git] / usr_sbin / dirvish-setup
index 6344f65..8a2497c 100755 (executable)
@@ -4,9 +4,8 @@
 # Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
 # Bug-Reports:   see http://grml.org/bugs/
 # License:       This file is licensed under the GPL v2.
-# Latest change: Fre Mär 09 19:45:57 CET 2007 [mika]
 ################################################################################
-# Ressources:
+# Resources:
 #   http://apt-get.dk/howto/backup/
 #   http://edseek.com/~jasonb/articles/dirvish_backup/advanced.html
 #   http://www.dirvish.org/svn/contrib/admin/DailyEmailScript/dirvish-status.sh
 
 set -e
 
+# shellcheck disable=SC1091
 . /etc/grml/script-functions
+# shellcheck disable=SC1091
 . /etc/grml/lsb-functions
 
 check4root
-check4progs dirvish rsync ssh-keygen ssh-copy-id
+check4progs dialog dirvish rsync ssh-keygen ssh-copy-id
 
 PN="$0"
 CONFFILE=/etc/dirvish/master.conf
@@ -56,7 +57,7 @@ Runall:
      $CLIENT 22:00
      # add-another-client-here 22:00
 
-# See http://www.dirvish.org/debian.howto.html for further details:
+     # See http://www.dirvish.org/debian.howto.html for further details:
 expire-default: +30 days
 expire-rule:
 #       MIN HR    DOM MON       DOW  STRFTIME_FMT
@@ -72,7 +73,8 @@ EOF
 
 # TODO / integrate?
 cronsetup() {
-  test -f ~/.keychain/`uname -n`-sh && source ~/.keychain/`uname -n`-sh
+# shellcheck disable=SC1090
+  test -f "${HOME}/.keychain/$(uname -n)-sh" && . "${HOME}/.keychain/$(uname -n)-sh"
 }
 
 get_backup_dir() {
@@ -81,8 +83,9 @@ get_backup_dir() {
 
   if ! [ -d "$BACKUP_DIR" ] ; then
     dialog --stdout --title "${PN}" --yesno "The directory $BACKUP_DIR does not yet exist. Do you want me to create it for you? " 0 0
+    RC=$?
 
-    if [ $? -eq 0 ]; then
+    if [ ${RC} -eq 0 ]; then
        echo "mkdir $BACKUP_DIR"
        echo "chmod 700 $BACKUP_DIR"
     else
@@ -122,23 +125,25 @@ EOF
 }
 
 sshkey_setup() {
-  CLIENTNAME="$(dialog --stdout --inputbox 'Please choose user login and hostname for the client you want to backup. Syntax: user@host' 0 0 root@$(hostname))"
+  CLIENTNAME="$(dialog --stdout --inputbox 'Please choose user login and hostname for the client you want to backup. Syntax: user@host' 0 0 root@"$(hostname)")"
 
   dialog --stdout --title "${PN}" --yesno "Do you want me to create ssh setup for client ${CLIENTNAME} using ssh-keygen and ssh-copy-id?" 0 0
+  RC=$?
 
-  if [ $? -eq 0 ]; then
+  if [ ${RC} -eq 0 ]; then
      [ -d "$HOME/.ssh" ] || mkdir "$HOME/.ssh"
      einfo "Creating $HOME/.ssh/id_rsa_dirvish_${CLIENT} using ssh-keygen:"
      ssh-keygen -t rsa -f "$HOME/.ssh/id_rsa_dirvish_${CLIENT}" ; eend $?
      einfo "Running ssh-copy-id to copy ssh key to $CLIENTNAME:"
-     ssh-copy-id -i "$HOME/.ssh/id_rsa_dirvish_${CLIENT}.pub" $CLIENTNAME ; eend $?
+     ssh-copy-id -i "$HOME/.ssh/id_rsa_dirvish_${CLIENT}.pub" "$CLIENTNAME" ; eend $?
   fi
 }
 
 client_setup() {
   dialog --stdout --title "${PN}" --yesno "Do you want to backup $CLIENT via network? Answering with no will use localhost [$(hostname)] as client." 0 0
+  RC=$?
 
-  if [ $? -eq 0 ]; then
+  if [ ${RC} -eq 0 ]; then
      sshkey_setup
   else
      CLIENTNAME=$(hostname) # use localhost only
@@ -176,7 +181,7 @@ case "$1" in
      ;;
 esac
 
-# now run the funtions:
+# now run the functions:
 get_backup_dir     && \
 client_name        && \
 tree_name          && \