-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrestoreSticks.sh
157 lines (112 loc) · 2.85 KB
/
restoreSticks.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#!/bin/bash
function enum_usbs () {
USBS=""
for USBDISK in /sys/block/sd*; do
USBDISK_READLINK=`readlink -f ${USBDISK}/device`
if [[ $USBDISK_READLINK == *"usb"* ]]; then
# This is USB drive
DEV_USBDISK=`basename ${USBDISK}`
DEV_USBDISK="/dev/${DEV_USBDISK}"
if grep -qs "${DEV_USBDISK}" /proc/mounts; then
echo "Ohitetaan mountattu USB-levy ${DEV_USBDISK}"
NOP=1
else
USBS="${USBS} ${DEV_USBDISK}"
fi
fi
done
USBS_COUNT=`echo "${USBS}" | wc -w`
}
# https://github.com/mplattu/abitti-scripts/blob/master/mkfat.sh
function mkfat () {
DEV=$1
FATNAME="USB-TIKKU"
FAIL=0
if [ "$DEV" = "" ]; then
echo "usage: $1 devicename"
FAIL=1
fi
if [ ! -b "$DEV" ]; then
echo "Device $DEV does not exist"
FAIL=1
fi
MOUNT_RESULT=`mount | grep -P "^${DEV}"`
if [ "$MOUNT_RESULT" != "" ]; then
echo "$DEV contains mounted filesystems, exiting"
FAIL=1
fi
if [ "$FAIL" -ne "1" ]; then
parted -s ${DEV} mklabel msdos
parted -s ${DEV} mkpart primary fat32 0 100%
sync
mkfs.vfat -n "${FATNAME}" ${DEV}1
fi
}
echo -e "${redBk}\nTikut tyhjennetään ja alustetaan FAT32-muotoon.\nHaluatko jatkaa?${end}"
select yn in "Kyllä" "Ei"; do
case $yn in
"Kyllä")
echo
break
;;
"Ei")
exit
break
;;
esac
done
CONFIRM=none
# Haetaan USB-tikkujen määrä, jotka ovat kirjoitettavissa.
enum_usbs
# While on niin kauan tosi, kun käyttäjä ei ole painanut w-näppäintä ja/tai löytyneiden USB-tikkujen määrä on 0.
# Valinnalla c silmukan saa keskeytettyä.
while [ "${CONFIRM}" != "w" -o "${USBS_COUNT}" -le 0 ]; do
clear
#echo "-o ${USBS_COUNT} -le 0"
# Päivitetäään USB-tikkujen määrä.
enum_usbs
echo "USB-tikut ${USBS} (${USBS_COUNT} kpl)"
if [ "${USBS_COUNT}" == "0" ]; then
echo ""
echo "Kirjoitettavia USB-tikkuja ei löytynyt"
fi
# Ask for user input
echo ""
echo " Enter: Lue USB-tikut uudelleen"
echo "C + Enter: Peruuta"
echo "W + Enter: Aloita tikkujen tyhjennys"
echo ""
echo -n "Aloitetaanko tikkujen palauttaminen? "
read CONFIRM
# Make lowercase
CONFIRM=`echo "$CONFIRM" | tr '[:upper:]' '[:lower:]'`
if [ "${CONFIRM}" == "c" ]; then
# Cancel pressed
echo "Poistutaan"
exit
fi
# Jos käyttäjä yrittää kirjoitusta, mutta kirjoitettavia USB-tikkuja ei löydy.
if [ "${CONFIRM}" = "w" -a "${USBS_COUNT}" -le 0 ]; then
echo ""
echo "Palautettavia tikkuja ei löytynyt. Palautusta ei voida aloittaa."
echo "Paina enter jatkaaksesi."
read
fi
done
echo "Aloitetaan tyhjennys "
UCOUNT=0
for THIS_USB in ${USBS}; do
echo -n "${THIS_USB} "
if [ -b ${THIS_USB} ]; then
echo tyhjennys
mkfat ${THIS_USB}
echo ""
else
echo "Varoitus: ${THIS_USB} ei ole block-laite - USB-tikku kadonnut"
fi
let "UCOUNT = UCOUNT + 1"
done
echo "(${UCOUNT})"
echo "Tikkujen palautus on päättynyt!"
echo "Paina enter jatkaaksesi."
read