kadischi/rc userhome.sh,1.8,1.9

Jasper O'neal Hartline (autopsy) fedora-extras-commits at redhat.com
Thu Sep 21 17:54:19 UTC 2006


Author: autopsy

Update of /cvs/devel/kadischi/rc
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv17039/kadischi/rc

Added Files:
	userhome.sh 
Log Message:
Replaced userhome.sh, mode 755


Index: userhome.sh
===================================================================
RCS file: userhome.sh
diff -N userhome.sh
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ userhome.sh	21 Sep 2006 17:54:17 -0000	1.9
@@ -0,0 +1,353 @@
+#!/bin/bash
+
+# Choose a disk, partition, filesystem type and mount it under /home
+
+#variables
+TITLE="Kadischi User Data"
+TEXT="Kadischi data configuration and save"
+
+
+introduction() {
+    fstype="$fstype $(zenity --title "$TITLE" --question  --text "This dialog is designed to allow a user to mount a device under /home to store specific \
+user data and configurations, would you like to continue?" \
+        --height=300 --width=300)"
+        [ "$(echo $?)" != "0" ] && exit 1
+}
+
+get_fstype() {
+        fstype="$fstype $(zenity --list --title "$TITLE" --radiolist  --text "Choose the filesystem type for $partition to be mounted under /home"  \
+    --column "" --column "Device" --column "Description"  --separator " "    \
+        "" "ext2" "Extended Second Filesystem" \
+        "" "ext3" "Extended Third Filesystem"  \
+        "" "vfat" "Virtual FAT Filesystems"    \
+        --height=300 --width=300)"
+        [ "$(echo $?)" != "0" ] && exit 1
+}
+
+select_device () {
+        device="$device $(zenity --list --title "$TITLE" --radiolist  --text "Select the device containing our mountable partition for /home" \
+     --column "" --column "Device" --column "Description"  --separator " "       \
+        "" "/dev/hda" "First IDE disk"        \
+        "" "/dev/hdb" "Second IDE disk"       \
+        "" "/dev/hdc" "Third IDE disk"        \
+        "" "/dev/hdd" "Fourth IDE disk"       \
+        "" "/dev/sda" "First USB/SCSI disk"   \
+    "" "/dev/sdb" "Second USB/SCSI disk"  \
+    "" "/dev/sdc" "Third USB/SCSI disk"   \
+    "" "/dev/sdd" "Fourth USB/SCSI disk"  \
+        --height=400 --width=300)"
+        [ "$(echo $?)" != "0" ] && exit 1
+}
+
+select_partitions () {
+        partition="$partition $(zenity --list --title "$TITLE" --radiolist  --text "Select the partition that will be mounted under /home" \
+     --column "" --column "Partition" --column "Description"  --separator " "          \
+        "" "/dev/$1d$21" "First partition"    \
+        "" "/dev/$1d$22" "Second partition"   \
+        "" "/dev/$1d$23" "Third partition"    \
+        "" "/dev/$1d$24" "Fourth partition"   \
+        --height=300 --width=300)"
+        [ "$(echo $?)" != "0" ] && exit 1
+}
+
+do_mount() {
+    tar -cf /tmp/home.tar /home
+    umount -l /home
+    mount -t $fstype $partition /home
+    if [ "$?" -eq "0" ]; then
+        tar --directory / -xf /tmp/home.tar && rm -rf /tmp/home.tar
+    fi
+    if [ "$?" -eq "0" ]; then
+        zenity --title "Kadischi User Data" --info --text "Success! Mounted $partition on /home as $fstype, If a non-root user doesn't already exist, create one now and logout, then log back in as your user."
+        sleep 20
+        exit 0
+    else
+        zenity --error --text "There was an error processing your request"
+        exit 1
+    fi
+}
+
+if [ "$UID" -eq "0" ]; then
+    if [ -x /usr/bin/zenity ]; then
+        introduction
+        select_device
+        case $device in
+           ' /dev/hda')
+                      select_partitions h a
+                        ;;
+           ' /dev/hdb')
+                      select_partitions h b
+                        ;;
+           ' /dev/hdc') 
+                      select_partitions h c
+                        ;;
+           ' /dev/hdd') 
+                      select_partitions h d
+                        ;;
+           ' /dev/sda') 
+                      select_partitions s a
+                        ;;
+           ' /dev/sdb') 
+                      select_partitions s b
+                        ;;
+           ' /dev/sdc') 
+                      select_partitions s c
+                        ;;
+           ' /dev/sdd') 
+                      select_partitions s d
+                        ;;
+        esac
+        get_fstype
+        do_mount
+    else
+        ### Begin dialog and shell sections
+        get_fstype() {
+
+            if [ -f /tmp/.disk.partition ]; then
+                PARTITION=$(cat /tmp/.disk.partition)
+                ### Begin filesytsem type choices
+                dialog --backtitle "Kadischi User Data" --title "Kadischi user partition filesystem selection" --begin 6 9 --aspect 0 --shadow --menu "Please choose the filesystem type on $PARTITION to be mounted under /home" 20 60 3 ext2 "Extended Second Filesystem" ext3 "Extended Third Filesystem" vfat "Virtual FAT Filesystems" 2>/tmp/.disk.partition.fstype
+            else
+                exit 1
+            fi
+        }
+
+
+
+        do_mount() {
+            if [ -f /tmp/.disk.partition.fstype ]; then
+                FSTYPE=$(cat /tmp/.disk.partition.fstype)
+                umount /home
+                mount -t $FSTYPE $PARTITION /home
+                if [ "$?" -eq "0" ]; then
+                    dialog --backtitle "Kadischi User Data" --begin 6 9 --aspect 0 --shadow --msgbox "Success! Mounted $PARTITION on /home as $FSTYPE , Done! If a non-root user doesn't already exist, create one now and logout, then log back in as your user." 12 60
+                    sleep 20
+                    exit 0
+                else
+
+                    echo "There was an error processing your request!"
+                        sleep 20
+                        exit 1
+                fi
+            else
+                exit 1
+            fi
+        }
+
+
+
+        do_cleanup() {
+            ### Cleanup
+            rm -rf /tmp/.disk
+            rm -rf /tmp/.disk.partition
+            rm -rf /tmp/.disk.partition.fstype
+        }
+
+
+
+        if [ "$UID" -eq "0" ]; then
+            if [ -x /usr/bin/dialog ]; then
+
+                dialog --backtitle "Kadischi User Data" --title "Kadischi data configuration and save" --begin 6 9 --aspect 0 --shadow --yesno \
+                    "This dialog is designed to allow a user to mount a partition as /home under the LiveCD environment to save user data and configurations.
+
+Would you like to continue?" 10 80
+
+                if [ "$?" -eq "0" ]; then
+                ### Begin user disk and partition selections
+                    dialog --backtitle "Kadischi User Data" --title "Kadischi user disk selection" --begin 6 9 --aspect 0 --shadow --menu "Please choose the
+disk that contains our mountable partition" 20 60 8 /dev/hda "First IDE disk" /dev/hdb "Second IDE disk" /dev/hdc "Third IDE disk" /dev/hdd "Fourth IDE disk" /dev/sda "First SCSI disk" /dev/sdb "Second SCSI disk" /dev/sdc "Third SCSI disk" /dev/sdd "Fourth SCSI disk" 2>/tmp/.disk
+
+                    if [ -f /tmp/.disk ]; then
+                        DISK=$(cat /tmp/.disk)
+                        if [ "$DISK" == "/dev/hda" ]; then
+                           dialog --backtitle "Kadischi User Data" --title "Kadischi user partition selection" --begin 6 9 --aspect 0 --shadow --menu "Please choose the partition on $DISK to be mounted under /home" 20 60 4 /dev/hda1 "First partition" /dev/hda2 "Second partition" /dev/hda3 "Third partition" /dev/hda4 "Fourth partition" 2>/tmp/.disk.partition
+                            if [ "$?" -eq "0" ]; then
+                                get_fstype
+                                do_mount
+                                do_cleanup
+                            else
+                                do_cleanup
+                                exit 1
+                            fi
+
+                        elif [ "$DISK" == "/dev/hdb" ]; then
+                            dialog --backtitle "Kadischi User Data" --title "Kadischi user partition selection" --begin 6 9 --aspect 0 --shadow --menu "Please choose the partition on $DISK to be mounted under /home" 20 60 4 /dev/hdb1 "First partition" /dev/hdb2 "Second partition" /dev/hdb3 "Third partition" /dev/hdb4 "Fourth partition" 2>/tmp/.disk.partition
+                            if [ "$?" -eq "0" ]; then
+                                get_fstype
+                                do_mount
+                                do_cleanup
+                            else
+                                do_cleanup
+                                exit 1
+                            fi
+
+                        elif [ "$DISK" == "/dev/hdc" ]; then
+                            dialog --backtitle "Kadischi User Data" --title "Kadischi user partition selection" --begin 6 9 --aspect 0 --shadow --menu "Please choose the partition on $DISK to be mounted under /home" 20 60 4 /dev/hdc1 "First partition" /dev/hdc2 "Second partition" /dev/hdc3 "Third partition" /dev/hdc4 "Fourth partition" 2>/tmp/.disk.partition
+                            if [ "$?" -eq "0" ]; then
+                                get_fstype
+                                do_mount
+                                do_cleanup
+                            else
+                                do_cleanup
+                                exit 1
+                            fi
+
+                        elif [ "$DISK" == "/dev/hdd" ]; then
+                            dialog --backtitle "Kadischi User Data" --title "Kadischi user partition selection" --begin 6 9 --aspect 0 --shadow --menu "Please choose the partition on $DISK to be mounted under /home" 20 60 4 /dev/hdd1 "First partition" /dev/hdd2 "Second partition" /dev/hdd3 "Third partition" /dev/hdd4 "Fourth partition" 2>/tmp/.disk.partition
+                            if [ "$?" -eq "0" ]; then
+                                get_fstype
+                                do_mount
+                                do_cleanup
+                            else
+                                do_cleanup
+                                exit 1
+                            fi
+
+                        elif [ "$DISK" == "/dev/sda" ]; then
+                            dialog --backtitle "Kadischi User Data" --title "Kadischi user partition selection" --begin 6 9 --aspect 0 --shadow --menu "Please choose the partition on $DISK to be mounted under /home" 20 60 4 /dev/sda1 "First partition" /dev/sda2 "Second partition" /dev/sda3 "Third partition" /dev/sda4 "Fourth partition" 2>/tmp/.disk.partition
+                            if [ "$?" -eq "0" ]; then
+                                get_fstype
+                                do_mount
+                                do_cleanup
+                            else
+                                do_cleanup
+                                exit 1
+                            fi
+
+                        elif [ "$DISK" == "/dev/sdb" ]; then
+                            dialog --backtitle "Kadischi User Data" --title "Kadischi user partition selection" --begin 6 9 --aspect 0 --shadow --menu "Please choose the partition on $DISK to be mounted under /home" 20 60 4 /dev/sdb1 "First partition" /dev/sdb2 "Second partition" /dev/sdb3 "Third partition" /dev/sdb4 "Fourth partition" 2>/tmp/.disk.partition
+                            if [ "$?" -eq "0" ]; then
+                                get_fstype
+                                do_mount
+                                do_cleanup
+                            else
+                                do_cleanup
+                                exit 1
+                            fi
+
+                        elif [ "$DISK" == "/dev/sdc" ]; then
+                            dialog --backtitle "Kadischi User Data" --title "Kadischi user partition selection" --begin 6 9 --aspect 0 --shadow --menu "Please choose the partition on $DISK to be mounted under /home" 20 60 4 /dev/sdc1 "First partition" /dev/sdc2 "Second partition" /dev/sdc3 "Third partition" /dev/sdc4 "Fourth partition" 2>/tmp/.disk.partition
+                            if [ "$?" -eq "0" ]; then
+                                get_fstype
+                                do_mount
+                                do_cleanup
+                            else
+                                do_cleanup
+                                exit 1
+                            fi
+
+                        elif [ "$DISK" == "/dev/sdd" ]; then
+                            dialog --backtitle "Kadischi User Data" --title "Kadischi user partition selection" --begin 6 9 --aspect 0 --shadow --menu "Please choose the partition on $DISK to be mounted under /home" 20 60 4 /dev/sdd1 "First partition" /dev/sdd2 "Second partition" /dev/sdd3 "Third partition" /dev/sdd4 "Fourth partition" 2>/tmp/.disk.partition
+                            if [ "$?" -eq "0" ]; then
+                                get_fstype
+                                do_mount
+                                do_cleanup
+                            else
+                                do_cleanup
+                                exit 1
+                            fi
+                        else
+                            dialog --backtitle "Kadischi User Data" --title "Kadischi user partition selection" --begin 6 9 --aspect 0 --shadow --msgbox "There was an error processing the arguments provided, bailing!" 8 70
+                            do_cleanup
+                            sleep 20
+                        fi
+                    else
+                        exit 1
+                    fi
+                else
+                    exit 1
+                fi
+        else
+            ### Begin standard shell menu procedure and menu
+            while [ -z $DONE ]; do
+                clear
+                echo "---------------------------------------------------------------------"
+            echo -e  "               \033[0;31mKadischi User Configuration and Save        "
+            echo -en "\033[0m"
+                echo "                                                                     "
+                echo "    1) Disk                                                          "
+                echo "    2) Partition                                                     "
+                echo "    3) Filesystem type                                               "
+                echo "    4) exit                                                          "
+                echo "                                                                     "
+                echo "    Please choose your disk, partition and filesystem type to mount  "
+                echo "    as /home in the LiveCD environment or exit now!                  "
+                echo "                                                                     "
+                echo "                                                                     "
+                echo "---------------------------------------------------------------------"
+                echo -n "Selection: "
+                read CHOICE
+                    case $CHOICE in
+                                    1) echo "Please provide the disk in which our mountable partition resides"
+                                       echo -n "[/dev/hda]: "
+                                           read DISK
+                                           if [ ! "$DISK" ]; then
+                                               DISK=/dev/hda
+                                           fi
+                                           ;;
+
+                                    2) echo "Please provide the partition number of which is our mountable partition"
+                                       echo -n "[1]: "
+                                           read PARTITION
+                                           if [ ! "$PARTITION" ]; then
+                                               PARTITION=1
+                                           fi
+                                           ;;
+
+                                    3) echo "Please provide the filesystem type of which our mountable partition is"
+                                       echo -n "[ext2]: "
+                                           read FSTYPE
+                                           if [ ! "$FSTYPE" ]; then
+                                                FSTYPE=ext2
+                                           fi
+                                           ;;
+
+                                    4) echo "Bye!"
+                                       exit 0
+                                           ;;
+
+                                    *) echo "Unrecognized option!"
+                    esac
+                    if [ -n "$DISK" ] && [ -n "$PARTITION" ] && [ -n "$FSTYPE" ]; then
+                        umount /home
+                        mount -t $FSTYPE $PARTITION /home
+                        if [ "$?" -eq "0" ]; then
+                            echo "Successfully mounted $PARTITION on /home as $FSTYPE!"
+                            echo "If a non-root user doesn't already exist, create one now."
+                            echo "Done! Please logout and back ins as your user."
+                            do_cleanup
+                            sleep 20
+                            exit 0
+                        else
+                            echo "There was an error processing your request to mount $PARTITION as $FSTYPE"
+                            do_cleanup
+                            sleep 20
+                            exit 1
+                        fi
+                     else
+                        echo " "
+                        echo "Still choices left!"
+                        echo "Move on to the next available option."
+                        echo "                   "
+                        sleep 5
+                     fi
+            done
+                exit 0
+        fi
+    else
+        if [ -x /usr/bin/dialog ]; then
+            dialog --backtitle "Kadischi User Data" --begin 6 9 --aspect 0 --shadow --msgbox "You cannot run this application as non superuser (root)!" 6 60
+            exit 0
+        else
+            echo "You cannot run this application as non superuser (root)!"
+            exit 0
+        fi
+    fi
+     
+           #### End dialog and shell sections
+    fi
+else
+    zenity --error --text "You cannot run this application as non superuser (root)!"
+    exit 0
+fi




More information about the fedora-extras-commits mailing list