Erste version der dialog-Skripte.

This commit is contained in:
Robert K 2022-09-08 00:28:26 +02:00
parent 77d396f7e3
commit 5489fafc1f
2 changed files with 161 additions and 0 deletions

View File

@ -0,0 +1,70 @@
#!/bin/bash
while true;
do
dialog --clear
# select filename using dialog
IMG=$(dialog --title "Datei mit < > wählen. Image aussuchen" --stdout --fselect ./ 14 88)
GG=`lsblk -r -p -n -oNAME`
echo $GG
Devs=()
for dev in $GG; do
Devs+=($dev)
Devs+=("")
done
DEV=`dialog --menu "Festplattengerät wählen" 0 0 0 \
"${Devs[@]}" 3>&1 1>&2 2>&3`
dialog --clear
dialog --yesno "Bestätigen Sie Ihre Auswahl: $DEV <- $IMG" 0 0
# Get exit status
# 0 means user hit [yes] button.
# 1 means user hit [no] button.
# 255 means user hit [Esc] key.
response=$?
case $response in
0) echo "Bestätigt"; break;;
1) echo "Sicherheitshalber beendet"; exit 1;;
255) echo "[ESC], Sicherheitshalber beendet"; exit 1;;
esac
done
#---------
if [ -z "$(command -v growpart)" ]; then
echo "growpart fehlt! Installiere cloud-guest-utils..."
sudo apt update
sudo apt install -y cloud-guest-utils
fi
if [ -z "$IMG" ] ; then
echo "Image-File angeben!"
exit 1
fi
if [ -z "$DEV" ] ; then
echo "HDD dev angeben! z. B. /dev/hdc"
exit 1
fi
echo "Warte 5 Sekunden vor dem löschen, abbrechen mit strg + c..."
sleep 5
echo "Achtung - vorbei, ich mache jetzt alles platt auf" "${DEV}"
case "$IMG" in
*.bz2)
sudo dd if="$IMG" bs=1M status=progress | bzip2 -d > "$DEV"
;;
*)
sudo dd if="$IMG" of=$DEV bs=1M status=progress
;;
esac
sync
sudo growpart $DEV 3
sudo mount ${DEV}3 /mnt
sudo btrfs filesystem resize max /mnt
sudo umount /mnt
sync

View File

@ -0,0 +1,91 @@
#!/bin/bash
GG=`lsblk -r -p -n -oNAME`
echo $GG
Devs=()
for dev in $GG; do
Devs+=($dev)
Devs+=("")
done
echo ${Devs[@]}
while true
do
dev=`dialog --menu "Platte einlesen. Festplattengerät wählen" 0 0 0 \
"${Devs[@]}" 3>&1 1>&2 2>&3`
dialog --clear
dialog --yesno "Bestätigen Sie Ihre Auswahl: $dev" 0 0
# Get exit status
# 0 means user hit [yes] button.
# 1 means user hit [no] button.
# 255 means user hit [Esc] key.
response=$?
case $response in
0) echo "Bestätigt"; break;;
1) echo "Neu wählen";;
255) echo "[ESC]"; exit 1;;
esac
done
while true
do
dialog --clear
# show an inputbox
FILENM=$(dialog --title "Imagedatei" --inputbox "Dateiname \*.img " 8 60 3>&1 1>&2 2>&3 3>&- )
# get respose
respose=$?
case $response in
1) exit 2 ;;
255) echo "[ESC]"; exit 1;;
esac
dialog --clear
dialog --yesno "Gewählte Datei: $FILENM" 0 0
# Get exit status
# 0 means user hit [yes] button.
# 1 means user hit [no] button.
# 255 means user hit [Esc] key.
response=$?
case $response in
0) echo "Bestätigt"; break;;
1) echo "Neu wählen";;
255) echo "[ESC]"; exit 1;;
esac
done
echo "Ermittle letzten Sektor von Quelldevice $dev"
LASTSECT=$(sudo fdisk -x "$dev" | tail -1 | awk '{print $3}' )
dialog --clear
dialog --yesno "Letzter Sektor von letzter Partition auf $dev ist $LASTSECT . OK?" 0 0
# Get exit status
# 0 means user hit [yes] button.
# 1 means user hit [no] button.
# 255 means user hit [Esc] key.
response=$?
case $response in
0) echo "Bestätigt";;
1) echo "Sicherheitshalber beendet"; exit 1;;
255) echo "[ESC]"; exit 1;;
esac
echo "Bereit $dev bis $LASTSECT in $FILENM zu schreiben"
dd if=$dev of="$FILENM" bs=512 count=$LASTSECT status=progress