-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwrimage
executable file
·70 lines (67 loc) · 1.45 KB
/
wrimage
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
#1 input name
if [ -z "${1}" ]; then
echo argument required
exit 1
fi
fullname=${1}
filename=$(basename -- "${fullname}")
extension="${filename##*.}"
echo ${extension}
#a=( `df | cut -f1 -d' ' | tail -n +2` )
a=( `sudo fdisk -l | grep "^/" | cut -f1 -d' '` )
echo Plug the card and press a key.
read -n1 -t $((60*60*24))
#b=( `df | cut -f1 -d' ' | tail -n +2` ) #only when is automounting
b=( `sudo fdisk -l | grep "^/" | cut -f1 -d' '` )
aa=${#a[@]}
bb=${#b[@]}
c=( )
k=0
sudo fdisk -l
for ((i = 0; i < ${bb}; i++ )); do
for ((j = 0; j < ${aa}; j++ )); do
if [ "${a[${j}]}" = "${b[${i}]}" ]; then
break
fi
done
if [ ${j} -eq ${aa} ]; then
df | tail -n +$((i+2)) | head -1
c[${k}]=${b[${i}]}
k=$((k+1))
break
fi
done
if [ ${k} -gt 0 ]; then
for var in "${c[@]}"; do
echo ${var}
echo "blind umount or exit. y?"
read -n1 -t $((60*60*24)) ans
if [ "${ans}" = "y" ]; then
sudo umount ${var}
else
echo no
exit 1
fi
done
name=${c[0]}
for ((x = ${#name}; x > 0 ; )); do
x=$((x-1))
printf -v n "%d\n" "'${name:x:1}"
if [ ${n} -ge 48 ] && [ ${n} -le 57 ]; then continue; fi
break
done
name=${name:0:x+1}
echo ${name}
echo "Is ok? y?"
read -n1 -t $((60*60*24)) ans
if [ "${ans}" = "y" ]; then
if [ "${extension}" = "xz" ]; then
xzcat ${1} | sudo dd of=${name} status=progress bs=134217728; sync
else
sudo dd if=${fullname} of=${name} status=progress bs=134217728; sync
#default bs is 512
fi
else
echo no
fi
fi