-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathblist_l
2340 lines (2238 loc) · 106 KB
/
blist_l
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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#!/bin/bash
## localized version of Batch List Installation Script Tool
## checking of missing dialog
if [ -z $1 ]; then
if $(LANG=C dialog 2>&1 | grep -q "command not found"); then
echo '
It looks like the "dialog" is not available.
This script will not work without it.
Lets try to install it:
'; sleep 2; pacman -Sy; pacman -S dialog --noconfirm --needed; fi
if $(LANG=C dialog 2>&1 | grep -q "command not found"); then
echo '
Seems it did not work. Sorry.
'; exit 0; fi
fi
batchlist='packages.txt'
if [ -z "$1" ]; then
exitstatus=$(mktemp XXXXXXXX.tmp)
## localization menu
dialog --colors --no-cancel --radiolist "Select installer lang" '' '' '' 'en' 'English' 'on' 'uk' 'Ukranian' '' 2>$exitstatus
if [ "$(cat $exitstatus)" == "uk" ]; then
echo 'enable (for installer) Ukranian locale and font'
echo 'FONT=UniCyr_8x16' >>/etc/vconsole.conf
echo 'uk_UA.UTF-8 UTF-8' >>/etc/locale.gen
locale-gen
systemctl restart systemd-vconsole-setup
lng="uk_UA.UTF-8"
else
lng="C"
fi
echo $lng >installer_lang
dialog --defaultno --colors --yes-label "$($0 locale t050 $lng)" --no-label "$($0 locale t051 $lng)" --title "$($0 locale t052 $lng)" --yesno "$($0 locale t053 $lng)" '' ''
if [ $? -ne 0 ]; then clear; rm -f $exitstatus ; exit 0; fi
pacman 2&>$exitstatus
if $(cat $exitstatus | grep -q 'command not found'); then
dialog --colors --ok-label "$($0 locale t054 $lng)" --msgbox "$($0 locale t055 $lng)" '' '' #"$(($(tput lines)-10))" "$(($(tput cols)-10))"
clear; $0 fdisk_gui "$exitstatus"; rm -f $exitstatus; clear; exit 0 ; fi
#clear; rm -f $exitstatus; echo 3; exit 0 ; fi
#dialog --colors --radiolist "$($0 locale t056 $lng)" '' '' '' 'Make' "$($0 locale t057 $lng)" '' 'Install' "$($0 locale t058 $lng)" '' 'MakeArm' "$($0 locale t059 $lng)" '' 2>$exitstatus
dialog --colors --ok-label "$($0 locale t187 $lng)" --cancel-label "$($0 locale t188 $lng)" --radiolist "$($0 locale t056 $lng)" '' '' '' 'Make' "$($0 locale t057 $lng)" '' 'Install' "$($0 locale t058 $lng)" 'on' 2>$exitstatus
if [ -z $(cat $exitstatus) ]; then clear; rm -f $exitstatus; exit 0 ; fi # when cancel pressed
if [ "$(cat $exitstatus)" == "Make" ]; then
$0 "mk_batch_list" "$exitstatus" "$batchlist" "g"
rm -f $exitstatus
#if [ -f $batchlist ]; then dialog --msgbox "$batchlist created" '5' '30'; fi
clear
exit 0
elif [ "$(cat $exitstatus)" == "Install" ]; then
pacstrap 2&>$exitstatus
if $(cat $exitstatus | grep -q 'command not found'); then
dialog --ok-label "$($0 locale t187 $lng)" --msgbox "$($0 locale t060 $lng)" '' ''
rm -f $exitstatus
exit 0
fi
clear
if [ ! -s "$batchlist" ]; then rm -f $batchlist; $0 "mk_batch_list" "$exitstatus" "$batchlist" "t"; fi
$0 "mk_batch_list" "$exitstatus" "$batchlist" "e"
dialog --defaultno --yesno "$($0 locale t195 $lng)" '' ''
if [ $? -eq 0 ]; then sed -i 's/#Parallel/Parallel/g' /etc/pacman.conf; fi
$0 fdisk_gui "$exitstatus"
$0 disk_fnm "$exitstatus"
if ! $(mount | grep -q "/mnt"); then dialog --title "$($0 locale t061 $lng)" --colors --ok-label "$($0 locale t187 $lng)" --msgbox "$($0 locale t062 $lng) $0" '' ''; rm -f $exitstatus; exit 0; fi
clear
$0 step1 "$exitstatus"
tmp_mscrname=$(echo $0 | sed 's|\.||g' | sed 's|\/||g')
if [ -f "$tmp_mscrname" ]; then cp -f $tmp_mscrname /mnt/$tmp_mscrname
else
cp -f $(find / $tmp_mscrname | grep $tmp_mscrname -m 1) /mnt/$tmp_mscrname
fi
if [ -f "installer_lang" ]; then cp -f installer_lang /mnt/installer_lang; fi
chmod +x /mnt/$tmp_mscrname
echo '' > $exitstatus
echo '' > /mnt/$exitstatus
#echo -e "\n./$tmp_mscrname 'step2' '$exitstatus'" | arch-chroot /mnt
$0 step2 "$exitstatus"
rm -f /mnt/$exitstatus
rm -f /mnt/st2run
rm -f $exitstatus
sync
dialog --yes-label "$($0 locale t063 $lng)" --yesno "$($0 locale t064 $lng)" '' ''
if [ $? -eq 0 ]; then reboot; fi
elif [ "$(cat $exitstatus)" == "MakeArm" ]; then
clear
echo "$($0 locale t065 $lng)"
#$0 step3 "$exitstatus"
fi
rm -f $exitstatus
exit 0
fi
lng=$(cat installer_lang)
## ----------------- ##
## internal function ##
## ----------------- ##
mk_menu_list(){
## $1 - menuitem
## $2 - menu 3rd param
## $3 when nonzero -first only 3rd param
rez=''
for jj in $1; do
if [ -z $3 ]; then
rez+='"'"$jj"'" "" "'"$2"'" '
elif [ ! -z $3 ]&&[ "$rez" != "" ]; then
rez+='"'"$(echo $jj)"'" "" "'""'" '
else
rez+='"'"$(echo $jj)"'" "" "'"$2"'" '
fi
done
echo $rez
}
## ---------------------- ##
## next internal function ##
## ---------------------- ##
mk_batch_list(){
## $1 - exitstatus
## $2 - batchlist
## $3 : g - get from runned system; t - get from template; e - edit it
if [ "$3" == "g" ]; then
echo '0'>$1
if [ -f "$2" ]; then
dialog --yesno "$2 $($0 locale t066 $lng)" '' ''
echo $? >$1
fi
if [ "$(cat $1)" != 1 ]; then pacman -Qqe >$2; fi
elif [ "$3" == "t" ]; then
echo 0 >$1
if [ -f "$2" ]; then
dialog --yesno "$2 $($0 locale t066 $lng)" '' ''
echo $? >$1
fi
if [ "$(cat $1)" != 1 ]; then
dialog --no-cancel --ok-label "$($0 locale t194 $lng)" --radiolist "$($0 locale t067 $lng) ! '$2' $($0 locale t068 $lng) '$2' $($0 locale t069 $lng)" '' '' '' 'plasma' '- plasma desktop + libreoffice + firefox...' on 'xfce' '- xfce desktop + firefox...' '' 'lxqt' '- lxqt desktop only' '' 'xfce_dt' '- xfce + fs/disks utils' '' 'ARM_303_xfce' '- xfce desktop on ARMv7hf xe303c12 chromebook' '' 2>$1
if [ "$(cat $1)" == "plasma" ]; then
echo "acpi acpid alsa-utils ark mkinitcpio discover audacity autoconf automake avidemux-qt bash binutils bison bluedevil bluez-cups bluez-hid2hci bluez-utils botan btrfs-progs bzip2 cdrdao cmake conky coreutils crda cryptsetup cups cups-pdf device-mapper dhcpcd dialog diffutils dolphin dosfstools dvd+rw-tools e2fsprogs ecryptfs-utils ed f2fs-tools faac fakeroot file filesystem findutils firefox firefox-i18n-ru firefox-i18n-uk flex foomatic-db-engine gawk gcc gcc-libs gettext gimp git glibc gparted grep grub gsmartcontrol gst-libav gst-plugins-good gst-plugins-ugly gstreamer-vaapi gwenview gzip hidapi imake inetutils iproute2 iputils iw k3b kate kcalc kdegraphics-mobipocket kdenetwork-filesharing kimageformats konsole krita kscreen kwalletmanager ladspa less libmirage libreoffice-fresh libreoffice-fresh-ru libreoffice-fresh-uk libtool libva-vdpau-driver libvdpau-va-gl licenses linux linux-headers logrotate lvm2 m4 make man-db man-pages mc mdadm mediainfo mkvtoolnix-gui nano netctl networkmanager networkmanager-openvpn networkmanager-qt noto-fonts-cjk noto-fonts-emoji ntfs-3g nvidia-dkms nvidia-settings ocl-icd okular opencl-headers opencl-nvidia os-prober p7zip packagekit-qt5 pacman patch pciutils perl pigz plasma-desktop plasma-nm plasma-pa powerdevil procps-ng psmisc psutils pulseaudio-alsa pulseaudio-bluetooth qt5-connectivity qt5-imageformats qt5-serialport qt5-virtualkeyboard ragel rcs samba sddm sddm-kcm sed shadow sudo sysfsutils systemd-sysvcompat tar texinfo thunderbird thunderbird-i18n-ru thunderbird-i18n-uk transcode transmission-qt ufw uget unrar unzip usbutils user-manager util-linux vcdimager vi vlc wget which wireless-regdb xf86-input-evdev xf86-input-libinput xf86-input-synaptics xf86-input-vmmouse xf86-input-void xf86-video-ati xf86-video-dummy xf86-video-fbdev xf86-video-vesa xf86-video-amdgpu xf86-video-ati xf86-video-intel xf86-video-nouveau xmlto xorg-bdftopcf xorg-docs xorg-font-util xorg-fonts-100dpi xorg-fonts-75dpi xorg-fonts-cyrillic xorg-fonts-encodings xorg-iceauth xorg-mkfontscale xorg-server xorg-server-common xorg-server-devel xorg-server-xephyr xorg-server-xnest xorg-server-xvfb xorg-server-xwayland xorg-sessreg xorg-setxkbmap xorg-smproxy xorg-x11perf xorg-xauth xorg-xbacklight xorg-xcmsdb xorg-xcursorgen xorg-xdpyinfo xorg-xdriinfo xorg-xev xorg-xgamma xorg-xhost xorg-xinput xorg-xkbcomp xorg-xkbevd xorg-xkbutils xorg-xkill xorg-xlsatoms xorg-xlsclients xorg-xmodmap xorg-xpr xorg-xprop xorg-xrandr xorg-xrdb xorg-xrefresh xorg-xset xorg-xsetroot xorg-xvinfo xorg-xwd xorg-xwininfo xorg-xwud xsane xsane-gimp yasm zip">$2
elif [ "$(cat $1)" == "xfce" ]; then
echo "base bluez btrfs-progs crda dhcpcd dialog diffutils f2fs-tools ffmpeg firefox gimp gparted grub gvfs gvfs-afc gvfs-gphoto2 gvfs-mtp gvfs-smb htop inetutils linux logrotate lvm2 lxdm man-db man-pages mc mdadm mkinitcpio mousepad mpv nano netctl network-manager-applet networkmanager nm-connection-editor os-prober p7zip pavucontrol pulseaudio-alsa samba sudo texinfo thunar thunar-archive-plugin thunar-volman unrar vi which xf86-input-evdev xf86-input-libinput xf86-input-synaptics xf86-input-void xf86-input-wacom xf86-video-amdgpu xf86-video-ati xf86-video-fbdev xf86-video-intel xf86-video-nouveau xf86-video-vesa xfce4-appfinder xfce4-artwork xfce4-battery-plugin xfce4-clipman-plugin xfce4-cpufreq-plugin xfce4-cpugraph-plugin xfce4-datetime-plugin xfce4-fsguard-plugin xfce4-genmon-plugin xfce4-mount-plugin xfce4-netload-plugin xfce4-notifyd xfce4-panel xfce4-power-manager xfce4-pulseaudio-plugin xfce4-screenshooter xfce4-sensors-plugin xfce4-session xfce4-settings xfce4-systemload-plugin xfce4-taskmanager xfce4-terminal xfce4-time-out-plugin xfce4-timer-plugin xfce4-verve-plugin xfce4-wavelan-plugin xfce4-whiskermenu-plugin xfce4-xkb-plugin xfdesktop xfwm4 xfwm4-themes xorg-fonts-100dpi xorg-fonts-75dpi xorg-iceauth xorg-server xorg-sessreg xorg-setxkbmap xorg-smproxy xorg-xauth xorg-xbacklight xorg-xcmsdb xorg-xcursorgen xorg-xdpyinfo xorg-xdriinfo xorg-xev xorg-xgamma xorg-xinput xorg-xkbevd xorg-xkbutils xorg-xkill xorg-xlsatoms xorg-xlsclients xorg-xmodmap xorg-xpr xorg-xprop xorg-xrandr xorg-xrdb xorg-xrefresh xorg-xset xorg-xsetroot xorg-xvinfo xorg-xwd xorg-xwininfo xorg-xwud zip ">$2
elif [ "$(cat $1)" == "lxqt" ]; then
echo "acpi acpid alsa-firmware alsa-utils b43-fwcutter base btrfs-progs cifs-utils crda dhclient dhcpcd dialog diffutils dmraid ecryptfs-utils f2fs-tools grub haveged inetutils liblxqt linux linux-firmware linux-headers logrotate lximage-qt lxqt-about lxqt-admin lxqt-archiver lxqt-config lxqt-globalkeys lxqt-notificationd lxqt-openssh-askpass lxqt-panel lxqt-policykit lxqt-powermanagement lxqt-qtplugin lxqt-runner lxqt-session lxqt-sudo lxqt-themes man-db man-pages mdadm mkinitcpio nano net-tools network-manager-applet networkmanager-qt nm-connection-editor ntfs-3g obconf-qt openbox openssh os-prober pcmanfm-qt powertop pulseaudio-alsa reflector rsync s-nail screengrab sddm sudo sysfsutils syslog-ng texinfo usbutils which wpa_supplicant xdg-user-dirs xdg-utils xf86-input-vmmouse xf86-video-amdgpu xf86-video-ati xf86-video-dummy xf86-video-fbdev xf86-video-intel xf86-video-nouveau xf86-video-openchrome xf86-video-sisusb xf86-video-vesa xf86-video-vmware xf86-video-voodoo xorg-iceauth xorg-server xorg-sessreg xorg-setxkbmap xorg-smproxy xorg-xauth xorg-xbacklight xorg-xcmsdb xorg-xcursorgen xorg-xdpyinfo xorg-xdriinfo xorg-xev xorg-xgamma xorg-xinit xorg-xinput xorg-xkbevd xorg-xkbutils xorg-xkill xorg-xlsatoms xorg-xlsclients xorg-xmodmap xorg-xpr xorg-xprop xorg-xrandr xorg-xrdb xorg-xrefresh xorg-xset xorg-xsetroot xorg-xvinfo xorg-xwd xorg-xwininfo xorg-xwud qterminal xterm zip ">$2
elif [ "$(cat $1)" == "xfce_dt" ]; then
echo "afpfs-ng avfs base bleachbit bluez bonnie++ btfs btrfs-progs cabextract cdrtools cgmanager chntpw cifs-utils clonezilla compsize crda cryfs curlftpfs cyrus-sasl dash davfs2 ddrescue dhcpcd dialog diffutils dmapi dmg2img dracut dstat duperemove ecryptfs-utils efibootmgr elfutils emelfm2 encfs ethtool evince exfat-utils expect extundelete f2fs-tools fatresize ffmpeg file-roller firefox foremost freerdp fsarchiver fscrypt fuse-overlayfs galculator gcr gd glusterfs gnome-disk-utility gocryptfs gpart gparted gphoto2 grsync grub grub-customizer guvcview hardinfo hddtemp hexchat hexedit htop idle3-tools inetutils iperf iperf3 jfsutils kbfs lastpass-cli leafpad lftp libbsd libcaca libewf libgtop libieee1284 libisoburn libisofs libldm libmbim libmng libndp libplist libqmi libusbmuxd linux logrotate lshw lsscsi lvm2 lxcfs lxdm man-db man-pages mate-utils mbedtls mc mdadm memtester mhash minicom mkinitcpio mousepad mpv mtools mtpfs multipath-tools nano nbd ncdu ncftp ncompress net-tools netctl netpbm network-manager-applet networkmanager networkmanager-pptp nfs-utils nm-connection-editor nmap notification-daemon ntp nvme-cli openvpn os-prober p7zip parallel pavucontrol pcmanfm-gtk3 poppler-data powertop psensor pth pulseaudio-alsa putty pv rdesktop rdiff-backup read-edid remmina reptyr rp-pppoe s3fs-fuse samba sane sbc scite shake sleuthkit smartmontools smbnetfs snapper squashfs-tools squashfuse stress sudo syslinux taglib tcplay testdisk texinfo thunar thunar-archive-plugin thunar-volman tigervnc tk tmux tree truecrypt udevil unrar veracrypt vi which wimlib wipe x11vnc xdialog xf86-input-evdev xf86-input-libinput xf86-input-synaptics xf86-input-void xf86-input-wacom xf86-video-amdgpu xf86-video-ati xf86-video-fbdev xf86-video-intel xf86-video-nouveau xf86-video-vesa xfburn xfce4-appfinder xfce4-artwork xfce4-battery-plugin xfce4-clipman-plugin xfce4-cpufreq-plugin xfce4-cpugraph-plugin xfce4-datetime-plugin xfce4-fsguard-plugin xfce4-genmon-plugin xfce4-mount-plugin xfce4-netload-plugin xfce4-notifyd xfce4-panel xfce4-power-manager xfce4-pulseaudio-plugin xfce4-screenshooter xfce4-sensors-plugin xfce4-session xfce4-settings xfce4-systemload-plugin xfce4-taskmanager xfce4-terminal xfce4-time-out-plugin xfce4-timer-plugin xfce4-verve-plugin xfce4-wavelan-plugin xfce4-whiskermenu-plugin xfce4-xkb-plugin xfdesktop xfsdump xfwm4 xfwm4-themes xorg-fonts-100dpi xorg-fonts-75dpi xorg-iceauth xorg-server xorg-sessreg xorg-setxkbmap xorg-smproxy xorg-xauth xorg-xbacklight xorg-xcmsdb xorg-xcursorgen xorg-xdpyinfo xorg-xdriinfo xorg-xev xorg-xgamma xorg-xinput xorg-xkbevd xorg-xkbutils xorg-xkill xorg-xlsatoms xorg-xlsclients xorg-xmodmap xorg-xpr xorg-xprop xorg-xrandr xorg-xrdb xorg-xrefresh xorg-xset xorg-xsetroot xorg-xvinfo xorg-xwd xorg-xwininfo xorg-xwud yad zip zsync">$2
elif [ "$(cat $1)" == "ARM_303_xfce" ]; then
echo "alsa-firmware alsa-plugins alsa-tools alsa-utils audacity bash bluez btrfs-progs bzip2 coreutils crda cryptsetup device-mapper dhcpcd dialog diffutils ffmpeg file filesystem findutils firefox gawk gcc gcc-libs gettext gimp glibc gparted grep gtk-xfce-engine gvfs gvfs-afc gvfs-gphoto2 gvfs-mtp gvfs-smb gzip htop inetutils iproute2 iputils less libreoffice-fresh libva-mesa-driver licenses linux-armv7-chromebook logrotate lvm2 lxdm make man-db man-pages mc mdadm mesa-demos mesa-vdpau mousepad mpv mtools nano netctl p7zip pacman pacman-mirrorlist parole psmisc samba sudo tar tcl texinfo thunar thunar-archive-plugin thunar-volman unrar usbutils util-linux vi which xf86-input-evdev xf86-input-keyboard xf86-input-libinput xf86-input-mouse xf86-input-synaptics xf86-input-void xf86-input-wacom xf86-video-fbdev xf86-video-vesa xfce4-appfinder xfce4-artwork xfce4-battery-plugin xfce4-clipman-plugin xfce4-cpufreq-plugin xfce4-cpugraph-plugin xfce4-datetime-plugin xfce4-fsguard-plugin xfce4-genmon-plugin xfce4-mount-plugin xfce4-netload-plugin xfce4-notifyd xfce4-panel xfce4-power-manager xfce4-pulseaudio-plugin xfce4-screenshooter xfce4-sensors-plugin xfce4-session xfce4-settings xfce4-systemload-plugin xfce4-taskmanager xfce4-terminal xfce4-time-out-plugin xfce4-timer-plugin xfce4-verve-plugin xfce4-wavelan-plugin xfce4-whiskermenu-plugin xfce4-xkb-plugin xfdesktop xfwm4 xfwm4-themes xorg-fonts-100dpi xorg-fonts-75dpi xorg-iceauth xorg-server xorg-sessreg xorg-setxkbmap xorg-smproxy xorg-xauth xorg-xbacklight xorg-xcmsdb xorg-xcursorgen xorg-xdpyinfo xorg-xdriinfo xorg-xev xorg-xgamma xorg-xinput xorg-xkbevd xorg-xkbutils xorg-xkill xorg-xlsatoms xorg-xlsclients xorg-xmodmap xorg-xpr xorg-xprop xorg-xrandr xorg-xrdb xorg-xrefresh xorg-xset xorg-xsetroot xorg-xvinfo xorg-xwd xorg-xwininfo xorg-xwud yasm youtube-dl zip ">$2
fi
fi
elif [ "$3" == "e" ]; then
dlg='dialog --no-cancel --ok-label "'"$($0 locale t194 $lng)"'" --checklist "'"$($0 locale t070 $lng)"'" "" "" "" '
for jj in $(echo $(cat $2)); do
dlg+='"'"$jj"'" "" on '
done
dlg+=' 2''>'"$1"
eval $dlg
cat $1>$2
return 0
fi
}
## ---------------------- ##
## next internal function ##
## ---------------------- ##
almb(){
## align to Mb
## $1 -start sector
## $2 -sector size
if [ "$(($1*$2%(1024*1024)))" -ne 0 ]; then
echo $(((($1*$2/(1024*1024))+1)*1024*1024/$2))
else
echo $1
fi
}
## ---------------------- ##
## next internal function ##
## ---------------------- ##
get_p_str(){
## get partitions string
## $1 - partition path
## $2 - fdisk script commands
if $(echo $1 | grep -q -e 'mmc' -e 'nvme'); then
msk_1="$1""p"
else
msk_1="$1"
fi
if $(echo -e $2"p\nq" | fdisk "$1" | grep -q "$msk_1[1-9]"); then
pn_lst=$(echo -e $2"p\nq" | fdisk "$1" | grep "$msk_1[1-9]" | sed "s@.*$msk_1@@g" | sed "s/ .*//g")
## single partition case
if [ "$(($(echo $pn_lst | sed 's/ /+/g')))" == "$pn_lst" ]; then
part_scheme="part$pn_lst "
part_scheme+="$(echo -e $2"i\nq" | fdisk "$1" | grep 'Start:' | sed 's/://g') "
part_scheme+="End $(($(echo -e $2"i\nq" | fdisk "$1" | grep 'End:' | sed 's/://g' | sed 's/.* //g')+0)) "
echo $part_scheme
else
## many partition case
for pn in $(echo $pn_lst); do
part_scheme="part$pn "
part_scheme+="$(echo -e $2"i\n$pn\nq" | fdisk "$1" | grep 'Start:' | sed 's/://g') "
part_scheme+="End $(($(echo -e $2"i\n$pn\nq" | fdisk "$1" | grep 'End:' | sed 's/://g' | sed 's/.* //g')+0)) "
echo $part_scheme
done
fi
else
## no partitions case
tmpvar08=$(echo -e $2"F\nq" | fdisk "$1" | tail -n 3 | head -n 1)
tmpvar09=$(echo $tmpvar08 | sed 's/.* //g')
tmpvar09=$(echo $tmpvar08 | sed "s/ $tmpvar09//g" | sed 's/.* //g')
echo $tmpvar08 | sed "s/ $tmpvar09.*//g"
fi
}
## ---------------------- ##
## next internal function ##
## ---------------------- ##
get_scl_sheme(){
## get scatter like sheme
## $1 - disk path
## $2 -fdisk script commands
tmp_part_string=$(mktemp XXXXXXXXX.tmp)
tmp_sectors=$(mktemp XXXXXXXX.tmp)
tmp_dsk_part_sh=$(mktemp XXXXXXX.tmp)
get_p_str "$1" "$2" > $tmp_part_string
startpoints=$(cat $tmp_part_string | sed 's/.* Start //g' | sed 's/ .*//g' | sort -n)
endpoints=$(cat $tmp_part_string | sed 's/.* End //g' | sed 's/ .*//g' | sort -n)
## determine disk start and end sectors
if [ "$(echo -e $2"p\nq" | fdisk "$1" 2>&1 | grep "Disklabel type" | sed 's/.*: //g')" == "dos" ]; then
tmpvar14="o\nn\n\n\n\n\nq"
else
tmpvar14="g\nn\n\n\n\nq"
fi
last_sector=$(($(echo -e "$tmpvar14" | fdisk "$1" 2>&1 | grep 'Last sector' | sed 's/.*, default //g' | sed 's/).*//g')))
first_sector=$(echo -e "$tmpvar14" | fdisk "$1" 2>&1 | grep 'First sector' | sed 's/.*First sector (//g' | sed 's/-.*//g')
## if disk is empty
if [ "$(cat $tmp_part_string)" == "$(echo $first_sector $last_sector)" ]; then
echo $first_sector $(($last_sector-$first_sector)) free
else
#echo "$first_sector" >$tmp_sectors
echo "$startpoints" >$tmp_sectors
echo "$endpoints" >>$tmp_sectors
echo "$last_sector" >>$tmp_sectors
## make disk partitions sheme
tmp_fs=$first_sector
echo "">$tmp_dsk_part_sh
for tmp_cycle in $(cat $tmp_sectors | sort -n); do
echo $tmp_fs $(($tmp_cycle-$tmp_fs)) >>$tmp_dsk_part_sh
tmp_fs=$tmp_cycle
done
echo '' >$tmp_sectors
tmp_sector_size=$(echo -e "p\nq" | fdisk $1 | grep "Units: sectors" | sed 's/ bytes.*//g' | sed 's/.*= //g')
## mk scatter-like output
for ((tmp_cycle2=2;tmp_cycle2<=$(echo $(wc -l $tmp_dsk_part_sh) | sed 's/ .*//g');tmp_cycle2++)); do
curr_line=$(head -n $tmp_cycle2 $tmp_dsk_part_sh | tail -n 1)
if [ "$(echo $curr_line | sed 's/.* //g')" -gt "$((1*1024*1024/$tmp_sector_size))" ]; then
if ! $(cat $tmp_part_string | sed 's/ End//g' | grep -q "$(echo $curr_line | sed 's/ .*//g') $(($(echo $curr_line | sed 's/ .*//g')+$(echo $curr_line | sed 's/.* //g')))"); then
if $(cat $tmp_part_string | sed 's/ End.*//g' | grep -q "$(echo $curr_line | sed 's/ .*//g')"); then
echo $(($(echo $curr_line | sed 's/ .*//g')+0)) $(($(echo $curr_line | sed 's/.* //g')+0)) free>>$tmp_sectors
else
echo $curr_line free>>$tmp_sectors
fi
fi
fi
done
for ((tmp_cycle2=1;tmp_cycle2<=$(wc -l $tmp_part_string | sed "s/ $tmp_part_string//g");tmp_cycle2++)); do
echo $(cat $tmp_part_string | head -n $tmp_cycle2 | tail -n 1 | sed 's/.*Start //g' | sed 's/ .*//g') $(($(echo $(cat $tmp_part_string | head -n $tmp_cycle2 | tail -n 1 | sed 's/.*Start /-/g' | sed 's/ End /+/g' | sed 's/ //g')))) $(cat $tmp_part_string | head -n $tmp_cycle2 | tail -n 1 | sed 's/ .*//g') >>$tmp_sectors
done
cat $tmp_sectors | sort -n | tail -n +2
fi
rm -f $tmp_part_string $tmp_sectors $tmp_dsk_part_sh
}
## ---------------------- ##
## next internal function ##
## ---------------------- ##
get_adnf(){
## get additional info
## $1 - disk path
## $2 - fdisk script variable
## $3 - scatter like sheme
## $4 - disk partition type dos/gpt
tmpvar04=$(mktemp XXXXXXX.tmp)
tmpvar05=$(mktemp XXXXXXX.tmp)
tmp_parts_num=$(cat "$3" | grep -v free | grep -c part)
if [ "$4" == "dos" ]; then
for tmp_cycle3 in $(cat "$3" | grep -v free | sed 's/.*part//g' | sed 's/ .*//g'); do
if [ "$tmp_parts_num" -eq 1 ]; then
echo -e "$2""i\nq" | fdisk "$1" > $tmpvar04
else
echo -e "$2""i\n$tmp_cycle3\nq" | fdisk "$1" > $tmpvar04
fi
if $(cat $tmpvar04 | grep -q "Boot"); then
cat "$3" | sed "s/part$tmp_cycle3/part$tmp_cycle3 Boot/g" > $tmpvar05
cp -f $tmpvar05 "$3"
fi
if [ "$tmp_cycle3" -gt 4 ]; then
cat "$3" | sed "s/part$tmp_cycle3/part$tmp_cycle3 Logical/g" > $tmpvar05
cp -f $tmpvar05 "$3"
elif ! $(cat $tmpvar04 | grep "Type:" | grep -q "Extended"); then
cat "$3" | sed "s/part$tmp_cycle3/part$tmp_cycle3 Primary/g" > $tmpvar05
cp -f $tmpvar05 "$3"
fi
tmp_size=$(cat $tmpvar04 | grep "Size" | sed 's/.*Size: //g' | sed 's/ .*//g')
tmp_type=$(cat $tmpvar04 | grep "Type" | sed 's@\/@-@g' | sed 's/.*Type: //g' | sed 's/ .*//g')
cat "$3" | sed "s/part$tmp_cycle3/part$tmp_cycle3 $tmp_size $tmp_type/g" > $tmpvar05
cp -f $tmpvar05 "$3"
done
tmp_sector_size=$(echo -e "p\nq" | fdisk $1 | grep "Units: sectors" | sed 's/ bytes.*//g' | sed 's/.*= //g')
if $(cat "$3" | grep -q "Extended"); then
tmpvar06=$(cat "$3" | grep "Extended" | sed 's/ .*//g')
tmpvar07=$(cat "$3" | grep "Extended" | sed "s/$tmpvar06 //g" | sed 's/ .*//g')
## if extended and no logical add a free extended space
if ! $(cat "$3" | grep -q "Logical"); then
echo $(($tmpvar06+1)) $(($tmpvar07-1)) free >> "$3"
cat "$3" | sort -n >"$tmpvar05"
cp -f $tmpvar05 "$3"
fi
tmpvar07=$(($tmpvar07+$tmpvar06))
else
tmpvar06=0
tmpvar07=0
fi
for tmp_cycle3 in $(echo $(cat "$3" | grep free | sed 's/ .*//g')); do
tmpvar16=$(cat "$3" | grep "$tmp_cycle3" | grep free | sed 's/ free.*//g' | sed "s/$tmp_cycle3 //g")
#tmpvar20=$(cat "$3" | sed 's/ .*//g' | grep "$tmp_cycle3" -n | sed 's/\:.*//g')
#tmpvar16=$(cat "$3" | head -n $tmpvar20 | tail -n 1 | sed 's/ free.*//g' | sed "s/$tmp_cycle3 //g")
if [ "$tmp_cycle3" -ge "$tmpvar06" ]&&[ "$tmp_cycle3" -lt "$tmpvar07" ]; then
if [ "$(($(cat "$3" | grep "Extended" | sed 's/ .*//g')+1))" -eq "$tmp_cycle3" ]; then
tmpvar15=$(echo $(($tmp_cycle3-1+(1024*1024/$tmp_sector_size))) $(($tmpvar16+1-(1024*1024/$tmp_sector_size))) free Logical)
else
tmpvar15=$(echo $(($tmp_cycle3+(1024*1024/$tmp_sector_size))) $(($tmpvar16-(1024*1024/$tmp_sector_size))) free Logical)
fi
## exclude alignment waste space
if [ "$(($tmpvar16-(1024*1024/$tmp_sector_size)))" -gt "$((1024*1024/$tmp_sector_size))" ]; then
cat "$3" | sed "s/$tmp_cycle3.*free/$tmpvar15/g" | sort -n > $tmpvar05
cp -f $tmpvar05 "$3"
else
cat "$3" | sed "s/$tmp_cycle3.*free//g" | sort -n > $tmpvar05
cp -f $tmpvar05 "$3"
fi
elif [ "$(($(cat "$3" | grep part | grep "Primary" -c)+$(cat "$3" | grep "Extended" -c)))" -lt 4 ]; then
cat "$3" | sed "s/$(cat "$3" | grep $tmp_cycle3)/$(cat "$3" | grep $tmp_cycle3) Primary/g" > $tmpvar05
cp -f $tmpvar05 "$3"
fi
done
elif [ "$4" == "gpt" ]; then
for tmp_cycle3 in $(cat "$3" | grep -v free | sed 's/.*part//g' | sed 's/ .*//g'); do
if [ "$tmp_parts_num" -eq 1 ]; then
echo -e "$2""i\nq" | fdisk "$1" > $tmpvar04
else
echo -e "$2""i\n$tmp_cycle3\nq" | fdisk "$1" > $tmpvar04
fi
tmp_size=$(cat $tmpvar04 | grep "Size" | sed 's/.*Size: //g' | sed 's/ .*//g')
tmp_type=$(echo $(cat $tmpvar04 | grep "Type") | sed 's/.*Type: //g' | sed 's/ Type.*//g')
cat "$3" | sed "s/part$tmp_cycle3/part$tmp_cycle3 $tmp_size $tmp_type/g"> $tmpvar05
cp -f $tmpvar05 "$3"
done
fi
rm -f $tmpvar04 $tmpvar05
}
## ---------------------- ##
## next internal function ##
## ---------------------- ##
fdisk_gui(){
## $1 - exitstatus
##
tmpvar01='dialog --title "'"$($0 locale t067 $lng)"'" --colors --yes-label "'"$($0 locale t192 $lng)"'" --no-label "'"$($0 locale t193 $lng)"'" --yesno "'"$($0 locale t071 $lng)"'" "" "" ' #2>"'"$1"'"'
eval $tmpvar01
echo $?>"$1"
if [ "$(cat $1)" -ne 0 ]; then return 0; fi
#disks cycle
tmp_menu_cycle00=" "
while [ ! -z "$tmp_menu_cycle00" ]; do
#dd if=/dev/zero of=testdik.img bs=10M count=3
#tmpvar02=testdik.img
#tmpvar02=$(echo $(ls /dev/disk/by-id | grep -v part | grep -v wwn))
tmpvar02=$(echo $(ls /dev | grep -e 'sd' -e 'vd' | grep -v "[1-9]" | grep -v 'dvd'))
tmpvar02+=' '$(echo $(ls /dev | grep -x -e "nvme[0-9]n[0-9]" -e "mmcblk[0-9]"))
tmpvar01='dialog --no-cancel --ok-label "'$($0 locale t187 $lng)'" --cancel-label "'$($0 locale t188 $lng)'" --radiolist "'"$($0 locale t072 $lng)"'" "" "" "" '
tmpvar01+=$(mk_menu_list "$tmpvar02" "on" "1")
tmpvar01+=' 2>"'"$1"'"'
eval $tmpvar01
diskpath="/dev/$(cat $1 | sed 's/ //g')"
sector_size=$(echo -e "p\nq" | fdisk $diskpath | grep "Units: sectors" | sed 's/ bytes.*//g' | sed 's/.*= //g')
if $(echo -e "i\nq" | fdisk $diskpath | grep -q "Device does not contain a recognized partition table."); then
dialog --ok-label "$($0 locale t187 $lng)" --msgbox "$($0 locale t073 $lng)" '5' '30'
dialog --no-cancel --ok-label "$($0 locale t187 $lng)" --radiolist "$($0 locale t074 $lng)" "" "" "" "dos" "$($0 locale t075 $lng)" "on" "gpt" "$($0 locale t076 $lng)" "" 2>"$1"
else
dialog --colors --defaultno --yes-label "$($0 locale t192 $lng)" --no-label "$($0 locale t193 $lng)" --yesno "$($0 locale t077 $lng)" "" ""
if [ $? -eq 0 ];then
dialog --no-cancel --ok-label "$($0 locale t187 $lng)" --radiolist "$($0 locale t078 $lng)" "" "" "" "dos" "$($0 locale t079 $lng)" "on" "gpt" "$($0 locale t080 $lng)" "" 2>"$1"
#diskpath="--wipe always $diskpath"
fi
fi
if [ "$(cat $1)" == "dos" ]; then fdisk_script="$fdisk_script\no\n"
elif [ "$(cat $1)" == "gpt" ]; then fdisk_script="$fdisk_script\ng\n"
else fdisk_script=''
fi
part_table_type=$(echo -e "$fdisk_script""\np\nq" | fdisk $diskpath | grep 'Disklabel type:' | sed 's/.*isklabel type: //g')
tmp_menu_cycle01=" "
while [ ! -z "$tmp_menu_cycle01" ]; do
tmpvar10=""
get_scl_sheme "$diskpath" "$fdisk_script" >"$1"
curr_parts=$(cat "$1" | grep part -c)
get_adnf "$diskpath" "$fdisk_script" "$1" $part_table_type
pri_parts_num=$(($(cat $1 | grep -v free | grep -c 'Primary')+$(cat $1 | grep -v free | grep -c 'Extended')))
is_there_exte=$(cat $1 | grep -v free | grep -c 'Extended')
log_parts_num=$(cat "$1" | grep part | grep -c "Logical")
free_pri_space=$(cat "$1" | grep free | grep -c "Primary")
tmpvar10=$(mk_menu_list "$(echo $(cat $1 | sed 's/.*part/part/g' | sed 's/ /_/g'))" "" "")
#tmpvar10=$(mk_menu_list "$(echo $(cat $1 | sed 's/ /_/g'))" "" "")
tmpvar10=$(echo $tmpvar10 | sed 's/_/ /g')
tmpvar10+=" '$($0 locale t081 $lng)' '' '' '$($0 locale t082 $lng)' '' 'on' "
tmpvar10="dialog --no-cancel --ok-label ""$($0 locale t187 $lng)"" --radiolist '$($0 locale t083 $lng)' '' '' '' $tmpvar10 "
tmpvar10+=' 2>"'"$1"'"'
#echo $fdisk_script
#sleep 7
eval $tmpvar10
if $(cat "$1" | grep -q free); then
if [ "$part_table_type" == "dos" ]; then
part_of=$(cat $1 | sed 's/ .*//g')
part_sz=$(cat $1 | sed 's/ free.*//g' | sed 's/.* //g')
if $(cat "$1" | grep -q "Logical"); then
if [ "$log_parts_num" -eq 0 ]; then
dialog --no-cancel --title "$($0 locale t084 $lng)" --ok-label "$($0 locale t187 $lng)" --inputbox "$($0 locale t085 $lng) ($(($part_of+0)) - $(($part_of+$part_sz)))" '' '' "$(almb "$part_of" "$sector_size")" 2>"$1"
else
dialog --no-cancel --title "$($0 locale t084 $lng)" --ok-label "$($0 locale t187 $lng)" --inputbox "$($0 locale t085 $lng) ($(($part_of+1)) - $(($part_of+$part_sz)))" '' '' "$(almb "$(($part_of+1))" "$sector_size")" 2>"$1"
fi
## if no free primary space left
if [ "$free_pri_space" -eq 0 ]; then
fdisk_script_tmp="$fdisk_script""n\n$(cat $1)\n"
else
fdisk_script_tmp="$fdisk_script""n\nl\n$(cat $1)\n"
fi
dialog --no-cancel --title "$($0 locale t086 $lng)" --ok-label "$($0 locale t187 $lng)" --inputbox "\n($(($part_of+1)) - $(($part_of+$part_sz)))\n$($0 locale t183 $lng) $sector_size $($0 locale t184 $lng))" '' '' "$(($part_of+$part_sz))" 2>"$1"
fdisk_script_tmp="$fdisk_script_tmp""$(cat $1)\n"
if $(echo -e "$fdisk_script_tmp""\n\n\n\n\nq" | fdisk $diskpath 2>&1 | grep -q "Value out of range")||$(echo -e "$fdisk_script_tmp""\n\n\n\n\nq" | fdisk $diskpath 2>&1 | grep -q "unknown command"); then
dialog --ok-label "$($0 locale t187 $lng)" --msgbox "$($0 locale t087 $lng)" '6' '30'
else
fdisk_script="$fdisk_script_tmp"
fi
elif [ "$pri_parts_num" -lt 4 ]; then
if [ "$is_there_exte" == "0" ]; then
dialog --no-cancel --ok-label "$($0 locale t187 $lng)" --radiolist "$($0 locale t088 $lng)" '' '' '' 'p' "$($0 locale t089 $lng)" 'on' 'e' "$($0 locale t090 $lng)" '' 2>"$1"
else
echo p>"$1"
fi
tmpvar17=$(echo $(cat "$1"))
if [ "$pri_parts_num" -eq 0 ]; then
dialog --no-cancel --title "$($0 locale t091 $lng)" --ok-label "$($0 locale t187 $lng)" --inputbox "$($0 locale t092 $lng) ($(($part_of)) - $(($part_of+$part_sz)))" '' '' "$(($part_of))" 2>"$1"
else
dialog --no-cancel --title "$($0 locale t091 $lng)" --ok-label "$($0 locale t187 $lng)" --inputbox "$($0 locale t092 $lng) ($(($part_of+1)) - $(($part_of+$part_sz)))" '' '' "$(almb "$(($part_of+1))" "$sector_size")" 2>"$1"
fi
if [ "$(($pri_parts_num+0))" -eq 3 ]; then
fdisk_script_tmp="$fdisk_script""n\n$tmpvar17\n$(cat $1)\n"
else
fdisk_script_tmp="$fdisk_script""n\n$tmpvar17\n\n$(cat $1)\n"
fi
dialog --no-cancel --title "$($0 locale t093 $lng)" --ok-label "$($0 locale t187 $lng)" --inputbox "\n($part_of - $(($part_of+$part_sz-0)))\n$($0 locale t183 $lng) $sector_size $($0 locale t184 $lng)" '' '' "$(($part_of+$part_sz-0))" 2>"$1"
fdisk_script_tmp="$fdisk_script_tmp""$(cat $1)\n"
if $(echo -e "$fdisk_script_tmp""\n\n\n\n\nq" | fdisk $diskpath 2>&1 | grep -q "Value out of range")||$(echo -e "$fdisk_script_tmp""\n\n\n\n\nq" | fdisk $diskpath 2>&1 | grep -q "unknown command"); then
dialog --ok-label "$($0 locale t187 $lng)" --msgbox "$($0 locale t087 $lng)" '6' '30'
else
fdisk_script="$fdisk_script_tmp"
fi
fi
elif [ "$part_table_type" == "gpt" ]; then
part_of=$(cat $1 | sed 's/ .*//g')
part_sz=$(cat $1 | sed 's/ free//g' | sed 's/.* //g')
if [ "$curr_parts" == "0" ]; then
dialog --no-cancel --title "$($0 locale t094 $lng)" --ok-label "$($0 locale t187 $lng)" --inputbox "$($0 locale t095 $lng) ($part_of - $(($part_of+$part_sz)))" '' '' $part_of"" 2>"$1"
else
dialog --no-cancel --title "$($0 locale t094 $lng)" --ok-label "$($0 locale t187 $lng)" --inputbox "$($0 locale t095 $lng) ($part_of - $(($part_of+$part_sz)))" '' '' ""$(almb "$(($part_of+1))" "$sector_size")"" 2>"$1"
fi
fdisk_script_tmp="$fdisk_script""n\n\n$(cat $1)\n"
dialog --no-cancel --title "$($0 locale t096 $lng)" --ok-label "$($0 locale t187 $lng)" --inputbox "\n($(($part_of+1)) - $(($part_of+$part_sz)))\n$($0 locale t183 $lng) $sector_size $($0 locale t184 $lng)" '' '' "$(($part_of+$part_sz))" 2>"$1"
fdisk_script_tmp="$fdisk_script_tmp""$(cat $1)\n"
if $(echo -e "$fdisk_script_tmp""\n\n\n\n\nq" | fdisk $diskpath 2>&1 | grep -q "Value out of range")||$(echo -e "$fdisk_script_tmp""\n\n\n\n\nq" | fdisk $diskpath 2>&1 | grep -q "unknown command"); then
dialog --ok-label "$($0 locale t187 $lng)" --msgbox "$($0 locale t087 $lng)" '6' '30'
else
fdisk_script="$fdisk_script_tmp"
fi
fi
elif $(cat "$1" | grep -q part); then
if [ "$part_table_type" == "dos" ]; then
tmpvar13=$(cat "$1" | grep part | sed 's/.*part//g')
tmpvar11=$(cat "$1" | grep part | sed 's/.*part//g' | sed 's/ .*//g')
if $(cat "$1" | grep "part$tmpvar11" | grep -q Extended); then
dialog --ok-label "$($0 locale t187 $lng)" --cancel-label "$($0 locale t188 $lng)" --radiolist "$($0 locale t097 $lng)" '' '' '' "$($0 locale t098 $lng)" '' '' 2> "$1"
else
dialog --ok-label "$($0 locale t187 $lng)" --cancel-label "$($0 locale t188 $lng)" --radiolist "$($0 locale t097 $lng)" '' '' '' "$($0 locale t098 $lng)" '' '' "$($0 locale t099 $lng)" '' '' "$($0 locale t100 $lng)" '' '' 2> "$1"
fi
if $(cat "$1" | grep -q "$($0 locale t098 $lng)"); then
if $(echo $tmpvar13 | grep -q "Extended"); then
dialog --colors --yes-label "$($0 locale t192 $lng)" --no-label "$($0 locale t193 $lng)" --yesno "$($0 locale t101 $lng)" '' ''
if [ $? -eq 0 ]; then
if [ "$curr_parts" -eq 1 ]; then
fdisk_script="$fdisk_script""d\n"
else
fdisk_script="$fdisk_script""d\n$tmpvar11\n"
fi
fi
else
if [ "$curr_parts" -eq 1 ]; then
fdisk_script="$fdisk_script""d\n"
else
fdisk_script="$fdisk_script""d\n$tmpvar11\n"
fi
fi
elif $(cat "$1" | grep -q "$($0 locale t099 $lng)"); then
## detect current type
if [ "$curr_parts" -eq 1 ]; then
tmpvar12=$(echo -e "$fdisk_script""\ni\nq" | fdisk $diskpath | grep "Id:" | sed 's/.*Id: //g' | sed 's/ .*//g')
else
tmpvar12=$(echo -e "$fdisk_script""\ni\n$tmpvar11\nq" | fdisk $diskpath | grep "Id:" | sed 's/.*Id: //g' | sed 's/ .*//g')
fi
## make menulist
echo -e "o\n\nl\nq" | fdisk $diskpath | sed "s/Command (m for help): //g" | grep " [0-9,a-f][0-9,a-f] " | sed 's/ /@/g' | sed "s/'//g">$1
tmpvar10=''
for tmp_cycle4 in $(echo $(echo -e $(echo $(echo -e "o\n\nl\nq" | fdisk $diskpath | sed "s/Command (m for help): //g" | grep " [0-9,a-f][0-9,a-f] ") | sed 's/ /\\n/g')| grep -x "[0-9,a-f]") $(echo -e $(echo $(echo -e "o\n\nl\nq" | fdisk $diskpath | sed "s/Command (m for help): //g" | grep " [0-9,a-f][0-9,a-f] ") | sed 's/ /\\n/g')| grep -x "[0-9,a-f][0-9,a-f]")); do
tmpvar10+=$(echo "'"$tmp_cycle4"' '"'@'$(echo $(cat "$1") | sed 's/ /@/g' | sed "s/.*@$tmp_cycle4@//g" | sed 's/@[0-9,a-f][0-9,a-f@]@.*//g')"' ")
if [ "$tmp_cycle4" == "$tmpvar12" ]; then
tmpvar10+="'on' "
else
tmpvar10+="'' "
fi
done
tmpvar10="dialog --no-cancel --ok-label ""$($0 locale t187 $lng)"" --radiolist '""$($0 locale t102 $lng)""' '' '' '' $tmpvar10"
tmpvar10=$(echo $tmpvar10 | sed 's/@/ /g' | sed 's/(//g' | sed 's/)//g')
tmpvar10+=' 2>"'"$1"'"'
eval $tmpvar10
if [ $? -eq 0 ]; then
tmpvar10=$(cat $1 | sed 's/ .*//g')
if [ "$tmpvar12" != "$tmpvar10" ]; then
if [ "$curr_parts" -eq 1 ]; then
fdisk_script="$fdisk_script""t\n$tmpvar10\n"
else
fdisk_script="$fdisk_script""t\n$tmpvar11\n$tmpvar10\n"
fi
fi
fi
elif $(cat "$1" | grep -q "$($0 locale t100 $lng)"); then
if [ "$curr_parts" -eq 1 ]; then
fdisk_script="$fdisk_script""\na\n"
else
fdisk_script="$fdisk_script""\na\n$tmpvar11\n"
fi
fi
elif [ "$part_table_type" == "gpt" ]; then
tmpvar11=$(cat $1 | grep part | sed 's/.*part//g' | sed 's/ .*//g')
dialog --ok-label "$($0 locale t187 $lng)" --cancel-label "$($0 locale t188 $lng)" --radiolist "$($0 locale t097 $lng)" '' '' '' "$($0 locale t098 $lng)" '' '' "$($0 locale t099 $lng)" '' '' 2> "$1"
if $(cat "$1" | grep -q "$($0 locale t098 $lng)"); then
if [ "$curr_parts" -eq 1 ]; then
fdisk_script="$fdisk_script""d\n"
else
fdisk_script="$fdisk_script""d\n$tmpvar11\n"
fi
elif $(cat "$1" | grep -q "$($0 locale t099 $lng)"); then
## detect current type
if [ "$curr_parts" -eq 1 ]; then
tmpvar12=$(echo $(echo -e "g\n\nl\nq" | fdisk $diskpath | sed "s/Command (m for help): //g" | grep -e "$(echo $(echo -e "$fdisk_script""\ni\nq" | fdisk $diskpath | grep "Type-UUID:") | sed 's/.*Type-UUID: //g' | sed 's/ .*//g')") | sed 's/ .*//g')
else
tmpvar12=$(echo $(echo -e "g\n\nl\nq" | fdisk $diskpath | sed "s/Command (m for help): //g" | grep -e "$(echo $(echo -e "$fdisk_script""\ni\n$tmpvar11\nq" | fdisk $diskpath | grep "Type-UUID:") | sed 's/.*Type-UUID: //g' | sed 's/ .*//g')") | sed 's/ .*//g')
fi
## make menulist
echo -e "$(echo -e "g\n\nl\nq" | fdisk $diskpath)" | sed "s/Command (m for help): //g" | grep -e "[ ][ ,1-9][0-9][ ][A-Z]" | sed 's/[0-9,A-Z][0-9,A-Z][0-9,A-Z][0-9,A-Z][0-9,A-Z][0-9,A-Z][0-9,A-Z][0-9,A-Z]-.*//g' > "$1"
tmpvar10="dialog --no-cancel --ok-label ""$($0 locale t187 $lng)"" --radiolist '$($0 locale t103 $lng)' '' '' '' "
for ((tmp_cycle4=1;tmp_cycle4<=$(echo $(wc -l "$1") | sed 's/ .*//g');tmp_cycle4++)); do
if [ "$tmp_cycle4" == "$tmpvar12" ]; then
tmpvar10+="'$(echo $(cat $1 | head -n $tmp_cycle4 | tail -n 1 | sed "s/'/~/g"))' '' 'on' "
else
tmpvar10+="'$(echo $(cat $1 | head -n $tmp_cycle4 | tail -n 1 | sed "s/'/~/g"))' '' '' "
fi
done
tmpvar10+=' 2>"'"$1"'"'
eval $tmpvar10
tmpvar10=$(cat $1 | sed 's/ .*//g')
if [ "$tmpvar12" -ne "$tmpvar10" ]; then
if [ "$curr_parts" -eq 1 ]; then
fdisk_script="$fdisk_script""t\n$tmpvar10\n"
else
fdisk_script="$fdisk_script""t\n$tmpvar11\n$tmpvar10\n"
fi
fi
fi
fi
fi
if $(cat $1 | grep -q "$(echo $($0 locale t082 $lng))"); then tmp_menu_cycle01=""; fi
if $(cat $1 | grep -q "$(echo $($0 locale t081 $lng))"); then
dialog --defaultno --colors --yes-label "$($0 locale t192 $lng)" --no-label "$($0 locale t193 $lng)" --yesno "$($0 locale t104 $lng)" '10' '30'
if [ $? -eq 0 ]; then
echo -e "$fdisk_script""\nw" | fdisk $diskpath
sleep 10
partprobe
tmp_menu_cycle01=""
fi
fi
done
fdisk_script=''
dialog --no-cancel --ok-label "$($0 locale t187 $lng)" --radiolist "$($0 locale t105 $lng)" '' '' '' "$($0 locale t106 $lng)" '' '' "$($0 locale t107 $lng)" '' 'on' 2>"$1"
if $(cat $1 | grep -q "$($0 locale t107 $lng)"); then tmp_menu_cycle00=""; fi
done
}
## ---------------------- ##
## next internal function ##
## ---------------------- ##
ft_n_mt(){
##format and mount
## $1 - part string
## $2 - diskpath
if $(echo $2 | grep -q loop)||$(echo $2 | grep -q mmc); then
tmp_dskpath=$2'p'
else
tmp_dskpath=$2
fi
tmp_fs_mount_opt=''
for tmp_cycle7 in $(echo "$1" | sed "s/@/ /g" ); do
if $(echo $tmp_cycle7 | grep -q part ); then
if $(echo $tmp_cycle7 | grep -q "luks" ); then
tmp_part_path="/dev/mapper/$tmp_cycle7"
else
tmp_part_path="$tmp_dskpath$(echo $tmp_cycle7 | sed 's/part//g')"
fi
elif $(echo $tmp_cycle7 | grep -q zlib )||$(echo $tmp_cycle7 | grep -q zstd ); then
tmp_fs_mount_opt=" -o,compress=$tmp_cycle7"
elif $(echo $tmp_cycle7 | grep -q "/" ); then
if [ "$tmp_cycle7" == "/" ]; then
tmp_part_label=rootfs
elif [ "$tmp_cycle7" == "/bootefi" ]; then
tmp_part_label=ESP
else
tmp_part_label=$(echo "$tmp_cycle7" | sed 's|\/||g')
fi
tmp_mount_point="$tmp_cycle7"
elif $(echo $tmp_cycle7 | grep -q "hash=" ); then
tmp_luks_hash_algo=$(echo $tmp_cycle7 | sed 's/hash=//g')
elif $(echo $tmp_cycle7 | grep -q "[0-9][0-9][0-9]b" ); then
tmp_luks_key_size=$tmp_cycle7
elif $(echo $tmp_cycle7 | grep -q "[cbc,xts]" ); then
tmp_luks_sheme=$tmp_cycle7
fi
done
## format partition
tmp_fs_type=''
if $(echo "$1" | grep -q fat);then
if [ "$tmp_part_label" == "ESP" ]; then
mkfs.fat -s1 -F 32 -n "$tmp_part_label" $tmp_part_path
tmp_fs_type=fat
else
mkfs.fat -F 32 -n "$tmp_part_label" $tmp_part_path
tmp_fs_type=fat
fi
elif $(echo "$1" | grep -q ntfs);then
mkntfs -f -L "$tmp_part_label" $tmp_part_path
tmp_fs_type=ntfs
elif $(echo "$1" | grep -q f2fs);then
if $(echo "$1" | grep -q ',');then
for tmp_cycle7 in $(echo "$1" | sed "s/@/ /g" ); do
if $(echo $tmp_cycle7 | grep -q ',');then
tmpvar24=$(echo "$tmp_cycle7 " | sed 's/, //g')
fi
done
mkfs.f2fs -f -O $tmpvar24 -l "$tmp_part_label" $tmp_part_path
tmp_fs_type=f2fs
else
mkfs.f2fs -f -l "$tmp_part_label" $tmp_part_path
tmp_fs_type=f2fs
fi
elif $(echo "$1" | grep -q btrfs);then
mkfs.btrfs -f --label "$tmp_part_label" $tmp_part_path
tmp_fs_type=btrfs
elif $(echo "$1" | grep -q ext4);then
mke2fs -F -t ext4 -L "$tmp_part_label" $tmp_part_path
tmp_fs_type=ext4
elif $(echo "$1" | grep -q swap);then
mkswap $tmp_part_path
swapon $tmp_part_path
elif $(echo "$1" | grep -q "@luks@");then
echo luks currently not supported
fi
## mount partition
if $(echo "$1" | grep -q "@/");then
if [ "$tmp_part_label" != "rootfs" ]&&[ "$tmp_part_label" != "ESP" ]; then
tmp_part_label='/'$tmp_part_label
mkdir /mnt$tmp_part_label
elif [ "$tmp_part_label" == "ESP" ]; then
tmp_part_label='/boot/efi'
if [ ! -d /mnt/boot ]; then mkdir /mnt/boot; fi
mkdir /mnt/boot/efi
tmp_fs_type=''
else
tmp_part_label=''
fi
if [ ! -z "$tmp_fs_mount_opt" ]; then
mount $tmp_part_path -t $tmp_fs_type $tmp_fs_mount_opt /mnt$tmp_part_label
elif [ ! -z "$tmp_fs_type" ]; then
mount $tmp_part_path -t $tmp_fs_type /mnt$tmp_part_label
else
mount $tmp_part_path /mnt$tmp_part_label
fi
fi
}
## ---------------------- ##
## next internal function ##
## ---------------------- ##
disk_fnm(){
## $1 - exitstatus
## $2 - disk image path
if [ -z $2 ]; then
tmpvar01='dialog --title '"$($0 locale t067 $lng)"' --colors '"--yes-label '"$($0 locale t192 $lng)"' --no-label '"$($0 locale t193 $lng)"'"' --yesno "'"$($0 locale t108 $lng)"'" "" "" ' #2>"'"$1"'"'
eval $tmpvar01
echo $?>"$1"
if [ "$(cat $1)" -ne 0 ]; then return 0; fi
fi
partprobe
#mount_ponts='/ /boot /home /var /tmp /usr'
tmp_menu_cycle00=" "
#luks_tests=$(mktemp XXXXXXX.tmp)
while [ ! -z "$tmp_menu_cycle00" ]; do
mount_ponts='/ /boot /home /var /tmp /usr'
if [ ! -z $2 ]; then
tmpvar02="$2"
else
#tmpvar02=testdik.img
#tmpvar02=$(echo $(ls /dev/disk/by-id | grep -v part | grep -v wwn))
tmpvar02=$(echo $(ls /dev | grep -e 'sd' -e 'vd' | grep -v "[1-9]" | grep -v 'dvd'))
tmpvar02+=' '$(echo $(ls /dev | grep -x -e "nvme[0-9]n[0-9]" -e "mmcblk[0-9]"))
fi
tmpvar01='dialog --no-cancel --ok-label "'"$($0 locale t187 $lng)"'" --radiolist "'"$($0 locale t109 $lng)"'" "" "" "" '
tmpvar01+=$(mk_menu_list "$tmpvar02" "on" "1")
tmpvar01+=' 2>"'"$1"'"'
eval $tmpvar01
diskpath="/dev/$(cat $1 | sed 's/ //g')"
sector_size=$(echo -e "p\nq" | fdisk $diskpath | grep "Units: sectors" | sed 's/ bytes.*//g' | sed 's/.*= //g')
if $(echo -e "i\n\nq" | fdisk $diskpath | grep -q "Device does not contain a recognized partition table."); then
dialog --ok-label "$($0 locale t110 $lng)" --msgbox "$($0 locale t111 $lng)" "7" "35"
return 1
fi
if $(echo -e "p\n\nq" | fdisk $diskpath | grep 'Disklabel type:' | grep -q gpt)&&$(echo $mount_ponts | grep -vq bootefi); then
mount_ponts="/bootefi $(echo $mount_ponts)"
fi
part_table_type=$(echo -e "\np\nq" | fdisk $diskpath 2>&1 | grep 'Disklabel type:' | sed 's/.*isklabel type: //g')
tmpvar10=""
get_scl_sheme "$diskpath" "" >"$1"
curr_parts=$(cat "$1" | grep part -c)
get_adnf "$diskpath" "" "$1" $part_table_type
parts_lst=''
for tmp_cycle5 in $(cat "$1" | grep -v free | grep -v "Extended" | sed 's/.*part/part/g' | sed 's/ .*//g'); do
parts_lst+=$(echo "$tmp_cycle5"@"$(cat "$1" | grep "$tmp_cycle5" | sed "s/.*$tmp_cycle5 //g" | sed 's/ .*//g')"' ')
done
tmp_menu_cycle01=" "
while [ ! -z "$tmp_menu_cycle01" ]; do
tmpvar10=$(mk_menu_list "$parts_lst" "" "")
tmpvar10=$(echo $tmpvar10 | sed 's/@/ /g')
tmpvar10+=" '$($0 locale t190 $lng)' '' '' '$($0 locale t082 $lng)' '' 'on' '$($0 locale t081 $lng)' '' '' "
tmpvar10="dialog --no-cancel --ok-label '""$($0 locale t187 $lng)""' --radiolist '$($0 locale t189 $lng)' '' '' '' $tmpvar10 "
tmpvar10+=' 2>"'"$1"'"'
eval $tmpvar10
if $(cat "$1" | grep -q "/")||$(cat "$1" | grep -q " luks")||$(cat "$1" | grep -q "swap"); then
dialog --ok-label "$($0 locale t187 $lng)" --msgbox "$($0 locale t112 $lng)" '8' '40'
elif $(cat "$1" | grep -q "$($0 locale t082 $lng)"); then
tmp_menu_cycle01=''
tmp_menu_cycle00=''
parts_lst=''
return 0
elif $(cat "$1" | grep -q "$($0 locale t081 $lng)"); then
if ! $(echo $parts_lst | grep -q "@/@"); then
dialog --colors --ok-label "$($0 locale t187 $lng)" --msgbox "$($0 locale t113 $lng)" '' ''
fi
tmp_menu_cycle01=''
tmp_menu_cycle00=''
elif $(cat "$1" | grep -q "$($0 locale t190 $lng)"); then
tmp_menu_cycle01=''
parts_lst=''
# dialog --defaultno --yesno 'Do you want to use partitions from other disk(s)?' '6' '35'
# if [ $? -ne 0 ]; then tmp_menu_cycle00=''; fi
else
tune_part=$(cat "$1" | grep part | sed 's/ .*//g')
if $(echo $tune_part | grep -q part); then
if $(echo $tune_part | grep -vq luks); then
tmpvar10=$(mk_menu_list "$mount_ponts" "" "")
#tmpvar10+=" 'swap' '' '' 'luks' '' '' 'custom' '' '' 'do not use' '' 'on' "
tmpvar10+=" 'swap' '' '' 'custom' '' '' 'do not use' '' 'on' "
tmpvar10=" dialog --no-cancel --ok-label '""$($0 locale t187 $lng)""' --radiolist '$($0 locale t191 $lng)' '' '' '' $tmpvar10 "
else
tmpvar10=$(mk_menu_list "$(echo $mount_ponts | sed 's|\/ | |g' | sed 's| \/boot | |g')" "" "")
tmpvar10+=" 'custom' '' '' 'do not use' '' 'on' "
tmpvar10=" dialog --no-cancel --ok-label '""$($0 locale t187 $lng)""' --radiolist '$($0 locale t114 $lng)' '' '' '' $tmpvar10 "
fi
tmpvar10+=' 2>"'"$1"'"'
eval $tmpvar10
if $(cat "$1" | grep -q bootefi); then
parts_lst=$(echo $parts_lst | sed "s|$tune_part|$tune_part@/bootefi|g")
mount_ponts=$(echo $mount_ponts | sed "s|\/bootefi ||g")
echo ''>$1
dialog --no-cancel --ok-label "$($0 locale t187 $lng)" --radiolist "$($0 locale t115 $lng)" '' '' '' 'fat' "$($0 locale t116 $lng)" '' 'do_not_format' "$($0 locale t117 $lng)" 'on' 2>"$1"
parts_lst=$(echo $parts_lst | sed "s|$tune_part|$tune_part@$(echo $(cat $1))|g")
# if $(cat "$1" | grep -q "do not use"); then
# echo '' >/dev/null
elif $(cat "$1" | grep -q custom); then
dialog --no-cancel --title "$($0 locale t118 $lng)" --ok-label "$($0 locale t187 $lng)" --inputbox "$($0 locale t119 $lng)" '12' '44' "/my_dir" 2>"$1"
if $(cat "$1" | grep -vxq "/")&&$(cat "$1" | grep -vxq "/boot"); then
parts_lst=$(echo $parts_lst | sed "s|$tune_part|$tune_part@$(echo $(cat $1))|g")
mount_ponts=$(echo $mount_ponts | sed "s|$(cat $1) ||g")
dialog --no-cancel --ok-label "$($0 locale t187 $lng)" --radiolist "$($0 locale t120 $lng)" '' '' '' 'ext4' '' '' 'btrfs' '' '' 'f2fs' '' '' 'fat' '' '' 'ntfs' '' '' 'do_not_format' '' 'on' 2>"$1"
parts_lst=$(echo $parts_lst | sed "s|$tune_part|$tune_part@$(echo $(cat $1))|g")
fi
if $(cat "$1" | grep -q "btrfs" ); then
dialog --no-cancel --ok-label "$($0 locale t187 $lng)" --radiolist "$($0 locale t121 $lng)" '' '' '' 'zlib' "$($0 locale t122 $lng)" '' 'zlib:9' "$($0 locale t123 $lng)" '' 'zstd' "$($0 locale t124 $lng)" '' 'zstd:13' "$($0 locale t125 $lng)" '' 'do_not_compress' '' 'on' 2>"$1"
parts_lst=$(echo $parts_lst | sed "s|$tune_part|$tune_part@$(echo $(cat $1))|g")
fi
if $(cat "$1" | grep -q "f2fs" ); then
dialog --colors --no-cancel --checklist "$($0 locale t126 $lng)" '' '' '' 'encrypt' "$($0 locale t127 $lng)" '' 'extra_attr' "$($0 locale t128 $lng)" '' 'project_quota' "129" '' 'inode_checksum' "$($0 locale t130 $lng)" '' 'flexible_inline_xattr' "$($0 locale t131 $lng)" '' 'quota' "$($0 locale t132 $lng)" '' 'inode_crtime' "$($0 locale t133 $lng)" '' 'lost_found' 'lost+found' '' 'sb_checksum' "$($0 locale t134 $lng)" '' 'casefold' "$($0 locale t135 $lng)" '' 'compression' "$($0 locale t136 $lng)" '' 2>"$1"
if $(cat $1 | grep -e 'project_quota' -e 'inode_checksum' -e 'flexible_inline_xattr' -e 'inode_crtime' -e 'compression' -q ) && $(cat $1 | grep -vq extra_attr); then
tmpvar23="extra_attr "
tmpvar23+=$(echo $(cat "$1"))
echo $tmpvar23',' > "$1"
tmpvar23=$(echo $(cat "$1") | sed 's/ /,/g')
echo $tmpvar23 > "$1"
elif [ "$(cat $1)" == "" ]; then
tmpvar23=''
else
tmpvar23=$(echo $(cat "$1")',')
echo $(echo $tmpvar23) | sed 's/ /,/g'> "$1"
fi
parts_lst=$(echo $parts_lst | sed "s|$tune_part|$tune_part@$(echo $(cat $1))|g")
fi
elif $(cat "$1" | grep -xq luks)&&$(echo $tune_part | grep -vq luks); then
if [ ! -s "$luks_tests" ]; then
clear
echo wait 10-30 sec. for crypt tests ends
cryptsetup benchmark > "$luks_tests"
cat "$luks_tests"
read -n 1 -s -r -p "Press any key to continue"
fi
tmpvar10=$(mk_menu_list "$(echo $(cat "$luks_tests" | grep PBKDF2 | sed 's/PBKDF2-//g' | sed 's/ .*//g'))" "on" "1")
tmpvar10=" dialog --no-cancel --ok-label '""$($0 locale t187 $lng)""' --radiolist 'Select hash algorithm' '' '' '' $tmpvar10 "
tmpvar10+=' 2>"'"$1"'"'
eval $tmpvar10
tmpluksvar="@hash="$(cat "$1")"@"
tmpvar10=$(mk_menu_list "$(echo $(tail -n +$(($(cat "$luks_tests" | grep Algorithm -n | sed 's/:.*//g')+1)) "$luks_tests" | sed 's/ /@/g' | sed 's/b@.*/b/g' | sed 's/@@/@/g' | sed 's/@@/@/g' | sed 's/@@/@/g'))" "on" "1")
tmpvar10=" dialog --no-cancel --ok-label '""$($0 locale t187 $lng)""' --radiolist 'Select hash algorithm' '' '' '' $tmpvar10 "
tmpvar10=$(echo $tmpvar10 | sed 's/@/ /g')
tmpvar10+=' 2>"'"$1"'"'
eval $tmpvar10
tmpluksvar+="@"$(cat "$1" | sed 's/ /@/g')'@'
#spc encryptor
parts_lst=$(echo $parts_lst | sed "s|$tune_part|$tune_part@luks$tmpluksvar|g")
parts_lst+=" ""$tune_part""luks"
elif $(cat "$1" | grep -q swap); then
## due to risks swap encryption isn't included
parts_lst=$(echo $parts_lst | sed "s|$tune_part|$tune_part@swap|g")
elif $(cat "$1" | grep -q "/" ); then
parts_lst=$(echo $parts_lst | sed "s|$tune_part|$tune_part@$(echo $(cat $1))|g")
mount_ponts=$(echo $mount_ponts | sed "s|$(cat $1) ||g")
dialog --no-cancel --ok-label "$($0 locale t187 $lng)" --radiolist "$($0 locale t137 $lng)" '' '' '' 'ext4' 'HDD,SSD,pendrive' '' 'btrfs' 'HDD,SSD,pendrive' '' 'f2fs' 'SSD,pendrive' '' 'do_not_format' '' 'on' 2>"$1"
parts_lst=$(echo $parts_lst | sed "s|$tune_part|$tune_part@$(echo $(cat $1))|g")
if $(cat "$1" | grep -q "btrfs" ); then
dialog --no-cancel --ok-label "$($0 locale t187 $lng)" --radiolist "$($0 locale t138 $lng)" '' '' '' 'zlib' "$($0 locale t122 $lng)" '' 'zlib:9' "$($0 locale t123 $lng)" '' 'zstd' "$($0 locale t124 $lng)" '' 'zstd:13' "$($0 locale t125 $lng)" '' 'do_not_compress' '' 'on' 2>"$1"
parts_lst=$(echo $parts_lst | sed "s|$tune_part|$tune_part@$(echo $(cat $1))|g")
fi
if $(cat "$1" | grep -q "f2fs" ); then
dialog --colors --no-cancel --checklist "$($0 locale t126 $lng)" '' '' '' 'encrypt' "$($0 locale t127 $lng)" '' 'extra_attr' "$($0 locale t128 $lng)" '' 'project_quota' "$($0 locale t129 $lng)" '' 'inode_checksum' "$($0 locale t130 $lng)" '' 'flexible_inline_xattr' "$($0 locale t131 $lng)" '' 'quota' "$($0 locale t132 $lng)" '' 'inode_crtime' "$($0 locale t133 $lng)" '' 'lost_found' 'lost+found' '' 'sb_checksum' "$($0 locale t134 $lng)" '' 'casefold' "$($0 locale t135 $lng)" '' 'compression' "$($0 locale t136 $lng)" '' 2>"$1"
if $(cat $1 | grep -e 'project_quota' -e 'inode_checksum' -e 'flexible_inline_xattr' -e 'inode_crtime' -e 'compression' -q ) && $(cat $1 | grep -vq extra_attr); then
tmpvar23="extra_attr "
tmpvar23+=$(echo $(cat "$1"))
echo $tmpvar23',' > "$1"
tmpvar23=$(echo $(cat "$1") | sed 's/ /,/g')
echo $tmpvar23 > "$1"
elif [ "$(cat $1)" == "" ]; then
tmpvar23=''
else
tmpvar23=$(echo $(cat "$1")',')
echo $(echo $tmpvar23) | sed 's/ /,/g'> "$1"
fi
parts_lst=$(echo $parts_lst | sed "s|$tune_part|$tune_part@$(echo $(cat $1))|g")
fi
fi
fi
fi
done
done
## find rootfs
if $(echo $diskpath | grep -q -e 'mmc' -e 'nvme'); then
diskpartmask=p
else
diskpartmask=''
fi
for tmp_cycle6 in $parts_lst; do
if $(echo $tmp_cycle6 | grep -q "@/@"); then
clear
ft_n_mt "$tmp_cycle6" "$diskpath""$diskpartmask"
tmp_parts_lst=$(echo $parts_lst | sed "s|$tmp_cycle6||g")
fi
done
## if boot and bootefi existed make boot first
if $(echo $tmp_parts_lst | grep -q "@/boot@")&&$(echo $tmp_parts_lst | grep -q "@/bootefi@"); then
parts_lst=$tmp_parts_lst
for tmp_cycle6 in $parts_lst; do
if $(echo $tmp_cycle6 | grep -q "@/boot@"); then
ft_n_mt "$tmp_cycle6" "$diskpath""$diskpartmask"
tmp_parts_lst=$(echo $parts_lst | sed "s|$tmp_cycle6 ||g")
fi
done
fi
## process other partitions
tmp_parts_lst_luks=$tmp_parts_lst
for tmp_cycle6 in $tmp_parts_lst; do
if $(echo $tmp_cycle6 | grep -vq "luks"); then
ft_n_mt "$tmp_cycle6" "$diskpath""$diskpartmask"
tmp_parts_lst_luks=$(echo $tmp_parts_lst_luks | sed "s|$tmp_cycle6 ||g")
fi
done
#rm -f $luks_tests
}
## ---------------------- ##
## next internal function ##
## ---------------------- ##
pkg_chk(){
## $1 - pkgname
## $2 - export to file
#if $(pacman -Ss $1 | grep $1 -w -q); then
if $(pacman -Ss $1 | sed 's@.*\/@@g' | sed 's@ .*@@g' | grep $1 -xq); then
echo "$1 " >> $2
else
echo $1 >>ignored.txt
fi
}
## ---------------------- ##
## next internal function ##
## ---------------------- ##
f-ecf(){
## internal func - edit config file
cp $1 $1.tmp
echo "cat $1.tmp | sed -e 's@"$2"@"$3"@g' >$1" >rsct.tmp
chmod +x rsct.tmp
./rsct.tmp
rm -f $1.tmp rsct.tmp
}
## ---------------------- ##
## next internal function ##
## ---------------------- ##
runchr(){
## $1 - exitstatusfile