penguins-eggs 25.9.2 → 25.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/.oclif.manifest.json +1 -1
  2. package/README.md +31 -29
  3. package/addons/eggs/adapt/applications/eggs-adapt.desktop +0 -0
  4. package/addons/eggs/pve/applications/eggs-pve.desktop +0 -0
  5. package/addons/eggs/rsupport/applications/eggs-rsupport.desktop +0 -0
  6. package/addons/eggs/theme/applications/install-system.desktop +0 -0
  7. package/assets/calamares/install-system.sh +0 -0
  8. package/assets/penguins-eggs.desktop +0 -0
  9. package/assets/penguins-krill.desktop +0 -0
  10. package/assets/penguins-links-add.desktop +0 -0
  11. package/assets/penguins-live-installer.desktop +0 -0
  12. package/bin/dev.js +0 -0
  13. package/conf/distros/alpine/calamares/calamares-modules/machineid-openrc/machineid-openrc.sh +0 -0
  14. package/conf/distros/bionic/calamares/calamares-modules/after-bootloader/after-bootloader.sh +0 -0
  15. package/conf/distros/bionic/calamares/calamares-modules/before-bootloader/before-bootloader.sh +0 -0
  16. package/conf/distros/bionic/calamares/calamares-modules/before-bootloader-mkdirs/before-bootloader-mkdirs.sh +0 -0
  17. package/conf/distros/bionic/calamares/calamares-modules/bug/bug.sh +0 -0
  18. package/conf/distros/bionic/calamares/calamares-modules/grubcfg/main.py +0 -0
  19. package/conf/distros/buster/calamares/calamares-modules/cleanup/cleanup.sh +0 -0
  20. package/conf/distros/buster/calamares/calamares-modules/dpkg-unsafe-io/dpkg-unsafe-io.sh +0 -0
  21. package/conf/distros/buster/calamares/calamares-modules/sources-yolk/sources-yolk.sh +0 -0
  22. package/conf/distros/fedora/calamares/calamares-modules/bootloaderspecification/bootloaderspecification.sh +0 -0
  23. package/conf/distros/openmamba/calamares/modules/users.yml +1 -1
  24. package/conf/distros/opensuse/calamares/calamares-modules/bootloaderspecification/bootloaderspecification.sh +0 -0
  25. package/conf/distros/opensuse/calamares/settings.yml +0 -0
  26. package/conf/distros/opensuse/calamares/zstd2lzo.sh +0 -0
  27. package/conf/init/unattended.sh +0 -0
  28. package/dist/classes/incubation/incubator.js +5 -1
  29. package/dist/classes/utils.d.ts +2 -1
  30. package/dist/classes/utils.js +14 -2
  31. package/dist/commands/export/pkg.js +2 -2
  32. package/dist/krill/classes/sequence.d/bootloader.js +25 -10
  33. package/dist/krill/classes/sequence.d/bootloader_config.js +60 -8
  34. package/dist/krill/classes/sequence.d/mkfs.js +8 -4
  35. package/dist/krill/classes/sequence.d/mount_vfs.js +24 -5
  36. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +7 -5
  37. package/dist/krill/classes/sequence.js +9 -9
  38. package/dist/penguins-eggs_25.9.3-1_amd64.deb +0 -0
  39. package/dist/penguins-eggs_25.9.3-1_amd64.deb.sha256 +1 -0
  40. package/dist/penguins-eggs_25.9.3-1_arm64.deb +0 -0
  41. package/dist/penguins-eggs_25.9.3-1_arm64.deb.sha256 +1 -0
  42. package/dist/penguins-eggs_25.9.3-1_i386.deb +0 -0
  43. package/dist/penguins-eggs_25.9.3-1_i386.deb.sha256 +1 -0
  44. package/eui/eui-autostart-cinnamon.desktop +0 -0
  45. package/eui/eui-autostart-xfce.desktop +0 -0
  46. package/eui/eui-create-image.sh +0 -0
  47. package/eui/eui-start.sh +0 -0
  48. package/package.json +131 -125
  49. package/perrisbrewery/scripts/postinst +0 -0
  50. package/perrisbrewery/scripts/postrm +0 -0
  51. package/perrisbrewery/scripts/preinst +0 -0
  52. package/perrisbrewery/scripts/prerm +0 -0
  53. package/perrisbrewery/template/dependencies-bionic.yaml +6 -23
  54. package/pods/almalinux.sh +0 -0
  55. package/pods/archlinux.sh +0 -0
  56. package/pods/ci/kernel-overlay-install.sh +0 -0
  57. package/pods/ci/minimal/almalinux-container2host.sh +0 -0
  58. package/pods/ci/minimal/archlinux-container2host.sh +0 -0
  59. package/pods/ci/minimal/debian-container2host.sh +0 -0
  60. package/pods/ci/minimal/fedora-container2host.sh +0 -0
  61. package/pods/ci/minimal/manjaro-container2host.sh +0 -0
  62. package/pods/ci/minimal/opensuse-container2host.sh +0 -0
  63. package/pods/ci/penguins-eggs-execute.sh +0 -0
  64. package/pods/ci/penguins-eggs-install.sh +0 -0
  65. package/pods/ci/run +0 -0
  66. package/pods/ci/run-on-almalinux.sh +0 -0
  67. package/pods/ci/run-on-archlinux.sh +0 -0
  68. package/pods/ci/run-on-debian.sh +0 -0
  69. package/pods/ci/run-on-devuan.sh +0 -0
  70. package/pods/ci/run-on-fedora.sh +0 -0
  71. package/pods/ci/run-on-manjaro.sh +0 -0
  72. package/pods/ci/run-on-opensuse.sh +0 -0
  73. package/pods/ci/run-on-rockylinux.sh +0 -0
  74. package/pods/ci/run-on-ubuntu.sh +0 -0
  75. package/pods/debian.sh +0 -0
  76. package/pods/devuan.sh +0 -0
  77. package/pods/fedora.sh +0 -0
  78. package/pods/lmde.sh +0 -0
  79. package/pods/manjaro.sh +0 -0
  80. package/pods/opensuse.sh +0 -0
  81. package/pods/podman.command.sh +0 -0
  82. package/pods/rocky.sh +0 -0
  83. package/pods/run-build-packages-debs.sh +0 -0
  84. package/pods/run-create-debs.sh +0 -0
  85. package/pods/ubuntu.sh +0 -0
  86. package/scripts/99clean +0 -0
  87. package/scripts/adapt.sh +0 -0
  88. package/scripts/bros/waydroid-helper.sh +0 -0
  89. package/scripts/lsb_release +0 -0
  90. package/scripts/mom.sh +0 -0
  91. package/scripts/pve-live.service +0 -0
  92. package/scripts/pve-live.sh +0 -0
  93. package/scripts/resy +0 -0
@@ -1621,5 +1621,5 @@
1621
1621
  ]
1622
1622
  }
1623
1623
  },
1624
- "version": "25.9.2"
1624
+ "version": "25.9.3"
1625
1625
  }
package/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
  [![ver](https://img.shields.io/npm/v/penguins-eggs.svg)](https://npmjs.org/package/penguins-eggs)
10
10
 
11
11
  <a href="https://drive.google.com/drive/folders/19M7fDEebPZjEY4yHD79zSMWFndCPishN">
12
- <img src="./images/cdrom.png" width="280" height="300" alt="CD-ROM">
12
+ <img src="https://raw.githubusercontent.com/pieroproietti/penguins-eggs/master/images/cdrom.png" width="280" height="300" alt="CD-ROM">
13
13
  </a>
14
14
 
15
15
  It took years of work to create the penguins-eggs, and I also incurred expenses for renting the site and subscribing to Google Gemini, for the artificial intelligence that is now indispensable.
@@ -18,6 +18,8 @@ It took years of work to create the penguins-eggs, and I also incurred expenses
18
18
 
19
19
  ## Index
20
20
  <!-- toc -->
21
+ * [README](#readme)
22
+ * [Penguin&#39;s eggs are generated and new birds are ready to fly...](#penguin39s-eggs-are-generated-and-new-birds-are-ready-to-fly)
21
23
  * [Presentation](#presentation)
22
24
  * [Installation](#installation)
23
25
  * [Introduction](#introduction)
@@ -534,7 +536,7 @@ EXAMPLES
534
536
  $ eggs adapt
535
537
  ```
536
538
 
537
- _See code: [src/commands/adapt.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/adapt.ts)_
539
+ _See code: [src/commands/adapt.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/adapt.ts)_
538
540
 
539
541
  ## `eggs analyze`
540
542
 
@@ -555,7 +557,7 @@ EXAMPLES
555
557
  sudo eggs analyze
556
558
  ```
557
559
 
558
- _See code: [src/commands/analyze.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/analyze.ts)_
560
+ _See code: [src/commands/analyze.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/analyze.ts)_
559
561
 
560
562
  ## `eggs autocomplete [SHELL]`
561
563
 
@@ -619,7 +621,7 @@ EXAMPLES
619
621
  sudo eggs calamares --remove
620
622
  ```
621
623
 
622
- _See code: [src/commands/calamares.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/calamares.ts)_
624
+ _See code: [src/commands/calamares.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/calamares.ts)_
623
625
 
624
626
  ## `eggs config`
625
627
 
@@ -646,7 +648,7 @@ EXAMPLES
646
648
  sudo eggs config --clean --nointeractive
647
649
  ```
648
650
 
649
- _See code: [src/commands/config.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/config.ts)_
651
+ _See code: [src/commands/config.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/config.ts)_
650
652
 
651
653
  ## `eggs cuckoo`
652
654
 
@@ -667,7 +669,7 @@ EXAMPLES
667
669
  sudo eggs cuckoo
668
670
  ```
669
671
 
670
- _See code: [src/commands/cuckoo.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/cuckoo.ts)_
672
+ _See code: [src/commands/cuckoo.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/cuckoo.ts)_
671
673
 
672
674
  ## `eggs dad`
673
675
 
@@ -696,7 +698,7 @@ EXAMPLES
696
698
  sudo dad --default
697
699
  ```
698
700
 
699
- _See code: [src/commands/dad.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/dad.ts)_
701
+ _See code: [src/commands/dad.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/dad.ts)_
700
702
 
701
703
  ## `eggs export iso`
702
704
 
@@ -721,7 +723,7 @@ EXAMPLES
721
723
  $ eggs export iso --clean
722
724
  ```
723
725
 
724
- _See code: [src/commands/export/iso.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/export/iso.ts)_
726
+ _See code: [src/commands/export/iso.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/export/iso.ts)_
725
727
 
726
728
  ## `eggs export pkg`
727
729
 
@@ -748,7 +750,7 @@ EXAMPLES
748
750
  $ eggs export pkg --all
749
751
  ```
750
752
 
751
- _See code: [src/commands/export/pkg.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/export/pkg.ts)_
753
+ _See code: [src/commands/export/pkg.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/export/pkg.ts)_
752
754
 
753
755
  ## `eggs export tarballs`
754
756
 
@@ -772,7 +774,7 @@ EXAMPLES
772
774
  $ eggs export tarballs --clean
773
775
  ```
774
776
 
775
- _See code: [src/commands/export/tarballs.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/export/tarballs.ts)_
777
+ _See code: [src/commands/export/tarballs.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/export/tarballs.ts)_
776
778
 
777
779
  ## `eggs help [COMMAND]`
778
780
 
@@ -834,7 +836,7 @@ EXAMPLES
834
836
  sudo eggs install --chroot
835
837
  ```
836
838
 
837
- _See code: [src/commands/install.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/install.ts)_
839
+ _See code: [src/commands/install.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/install.ts)_
838
840
 
839
841
  ## `eggs kill`
840
842
 
@@ -857,7 +859,7 @@ EXAMPLES
857
859
  sudo eggs kill
858
860
  ```
859
861
 
860
- _See code: [src/commands/kill.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/kill.ts)_
862
+ _See code: [src/commands/kill.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/kill.ts)_
861
863
 
862
864
  ## `eggs krill`
863
865
 
@@ -919,7 +921,7 @@ EXAMPLES
919
921
  $ eggs auto
920
922
  ```
921
923
 
922
- _See code: [src/commands/love.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/love.ts)_
924
+ _See code: [src/commands/love.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/love.ts)_
923
925
 
924
926
  ## `eggs mom`
925
927
 
@@ -939,7 +941,7 @@ EXAMPLES
939
941
  $ eggs mom
940
942
  ```
941
943
 
942
- _See code: [src/commands/mom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/mom.ts)_
944
+ _See code: [src/commands/mom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/mom.ts)_
943
945
 
944
946
  ## `eggs pods [DISTRO]`
945
947
 
@@ -966,7 +968,7 @@ EXAMPLES
966
968
  $ eggs pods ubuntu
967
969
  ```
968
970
 
969
- _See code: [src/commands/pods.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/pods.ts)_
971
+ _See code: [src/commands/pods.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/pods.ts)_
970
972
 
971
973
  ## `eggs produce`
972
974
 
@@ -1027,7 +1029,7 @@ EXAMPLES
1027
1029
  sudo eggs produce --excludes home # exclude ~/*
1028
1030
  ```
1029
1031
 
1030
- _See code: [src/commands/produce.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/produce.ts)_
1032
+ _See code: [src/commands/produce.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/produce.ts)_
1031
1033
 
1032
1034
  ## `eggs status`
1033
1035
 
@@ -1048,7 +1050,7 @@ EXAMPLES
1048
1050
  $ eggs status
1049
1051
  ```
1050
1052
 
1051
- _See code: [src/commands/status.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/status.ts)_
1053
+ _See code: [src/commands/status.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/status.ts)_
1052
1054
 
1053
1055
  ## `eggs syncfrom`
1054
1056
 
@@ -1074,7 +1076,7 @@ EXAMPLES
1074
1076
  sudo eggs syncfrom --file /path/to/luks-volume
1075
1077
  ```
1076
1078
 
1077
- _See code: [src/commands/syncfrom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/syncfrom.ts)_
1079
+ _See code: [src/commands/syncfrom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/syncfrom.ts)_
1078
1080
 
1079
1081
  ## `eggs syncto`
1080
1082
 
@@ -1101,7 +1103,7 @@ EXAMPLES
1101
1103
  sudo eggs syncto --excludes
1102
1104
  ```
1103
1105
 
1104
- _See code: [src/commands/syncto.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/syncto.ts)_
1106
+ _See code: [src/commands/syncto.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/syncto.ts)_
1105
1107
 
1106
1108
  ## `eggs tools clean`
1107
1109
 
@@ -1123,7 +1125,7 @@ EXAMPLES
1123
1125
  sudo eggs tools clean
1124
1126
  ```
1125
1127
 
1126
- _See code: [src/commands/tools/clean.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/tools/clean.ts)_
1128
+ _See code: [src/commands/tools/clean.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/tools/clean.ts)_
1127
1129
 
1128
1130
  ## `eggs tools ppa`
1129
1131
 
@@ -1149,7 +1151,7 @@ EXAMPLES
1149
1151
  sudo eggs tools ppa --remove
1150
1152
  ```
1151
1153
 
1152
- _See code: [src/commands/tools/ppa.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/tools/ppa.ts)_
1154
+ _See code: [src/commands/tools/ppa.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/tools/ppa.ts)_
1153
1155
 
1154
1156
  ## `eggs tools skel`
1155
1157
 
@@ -1173,7 +1175,7 @@ EXAMPLES
1173
1175
  sudo eggs tools skel --user user-to-be-copied
1174
1176
  ```
1175
1177
 
1176
- _See code: [src/commands/tools/skel.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/tools/skel.ts)_
1178
+ _See code: [src/commands/tools/skel.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/tools/skel.ts)_
1177
1179
 
1178
1180
  ## `eggs tools stat`
1179
1181
 
@@ -1199,7 +1201,7 @@ EXAMPLES
1199
1201
  $ eggs tools stat --year
1200
1202
  ```
1201
1203
 
1202
- _See code: [src/commands/tools/stat.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/tools/stat.ts)_
1204
+ _See code: [src/commands/tools/stat.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/tools/stat.ts)_
1203
1205
 
1204
1206
  ## `eggs tools yolk`
1205
1207
 
@@ -1220,7 +1222,7 @@ EXAMPLES
1220
1222
  sudo eggs tools yolk
1221
1223
  ```
1222
1224
 
1223
- _See code: [src/commands/tools/yolk.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/tools/yolk.ts)_
1225
+ _See code: [src/commands/tools/yolk.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/tools/yolk.ts)_
1224
1226
 
1225
1227
  ## `eggs update`
1226
1228
 
@@ -1241,7 +1243,7 @@ EXAMPLES
1241
1243
  $ eggs update
1242
1244
  ```
1243
1245
 
1244
- _See code: [src/commands/update.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/update.ts)_
1246
+ _See code: [src/commands/update.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/update.ts)_
1245
1247
 
1246
1248
  ## `eggs version`
1247
1249
 
@@ -1287,7 +1289,7 @@ EXAMPLES
1287
1289
  $ eggs wardrobe get your-wardrobe
1288
1290
  ```
1289
1291
 
1290
- _See code: [src/commands/wardrobe/get.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/wardrobe/get.ts)_
1292
+ _See code: [src/commands/wardrobe/get.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/wardrobe/get.ts)_
1291
1293
 
1292
1294
  ## `eggs wardrobe list [REPO]`
1293
1295
 
@@ -1316,7 +1318,7 @@ EXAMPLES
1316
1318
  $ eggs wardrobe list --distro arch
1317
1319
  ```
1318
1320
 
1319
- _See code: [src/commands/wardrobe/list.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/wardrobe/list.ts)_
1321
+ _See code: [src/commands/wardrobe/list.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/wardrobe/list.ts)_
1320
1322
 
1321
1323
  ## `eggs wardrobe show [REPO]`
1322
1324
 
@@ -1346,7 +1348,7 @@ EXAMPLES
1346
1348
  $ eggs wardrobe show accessories/
1347
1349
  ```
1348
1350
 
1349
- _See code: [src/commands/wardrobe/show.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/wardrobe/show.ts)_
1351
+ _See code: [src/commands/wardrobe/show.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/wardrobe/show.ts)_
1350
1352
 
1351
1353
  ## `eggs wardrobe wear [REPO]`
1352
1354
 
@@ -1377,7 +1379,7 @@ EXAMPLES
1377
1379
  sudo eggs wardrobe wear wagtail/waydroid
1378
1380
  ```
1379
1381
 
1380
- _See code: [src/commands/wardrobe/wear.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.2/src/commands/wardrobe/wear.ts)_
1382
+ _See code: [src/commands/wardrobe/wear.ts](https://github.com/pieroproietti/penguins-eggs/blob/v25.9.3/src/commands/wardrobe/wear.ts)_
1381
1383
  <!-- commandsstop -->
1382
1384
 
1383
1385
  # GUI
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/bin/dev.js CHANGED
File without changes
@@ -60,7 +60,7 @@ defaultGroups:
60
60
  # Autologin causes a user to become automatically logged in to
61
61
  # the desktop environment on boot.
62
62
  # Disable when your Distribution does not require such a group.
63
- autologinGroup: autologin
63
+ # autologinGroup: autologin
64
64
 
65
65
 
66
66
  ### ROOT AND SUDO
File without changes
File without changes
File without changes
@@ -360,8 +360,12 @@ export default class Incubator {
360
360
  sudoers() {
361
361
  let live = 'live';
362
362
  let content = `${live} ALL=(ALL) NOPASSWD: /usr/bin/calamares`;
363
+ content = `# ${live} ALL=(ALL) NOPASSWD: /usr/bin/calamares`;
363
364
  let fname = '/etc/sudoers.d/calamares';
364
- fs.writeFileSync(fname, content, 'utf-8');
365
+ // su bionic fa un macello
366
+ if (this.distro.codenameLikeId !== 'bionic') {
367
+ fs.writeFileSync(fname, content, 'utf-8');
368
+ }
365
369
  }
366
370
  }
367
371
  /**
@@ -294,7 +294,8 @@ export default class Utils {
294
294
  /**
295
295
  *
296
296
  */
297
- static pressKeyToExit(warming?: string, procContinue?: boolean): Promise<void>;
297
+ static pressKeyToExit(warning?: string, procContinue?: boolean): Promise<void>;
298
+ static debug(cmd?: string, procContinue?: boolean): Promise<void>;
298
299
  /**
299
300
  * titles
300
301
  * Penguin's are gettings alive!
@@ -821,8 +821,20 @@ export default class Utils {
821
821
  /**
822
822
  *
823
823
  */
824
- static async pressKeyToExit(warming = 'Process will end', procContinue = true) {
825
- Utils.warning(warming);
824
+ static async pressKeyToExit(warning = 'Process will end', procContinue = true) {
825
+ Utils.warning(warning);
826
+ let msg = 'Press a key to exit...';
827
+ if (procContinue) {
828
+ msg = 'Press a key to continue...';
829
+ }
830
+ console.log(msg);
831
+ const pressKeyToExit = spawnSync('read _ ', { shell: true, stdio: [0, 1, 2] });
832
+ if (!procContinue) {
833
+ process.exit(0);
834
+ }
835
+ }
836
+ static async debug(cmd = 'cmd', procContinue = true) {
837
+ console.log(chalk.redBright('DEBUG >>> ') + cmd + '\n');
826
838
  let msg = 'Press a key to exit...';
827
839
  if (procContinue) {
828
840
  msg = 'Press a key to continue...';
@@ -92,7 +92,7 @@ export default class ExportPkg extends Command {
92
92
  */
93
93
  }
94
94
  else if (familyId === "debian") {
95
- Utils.warning("debian deb");
95
+ Utils.warning("debian DEB");
96
96
  localPath = `/home/${this.user}/penguins-eggs/dist`;
97
97
  remotePath = this.Tu.config.remotePathPackages + "/debs";
98
98
  let arch = Utils.uefiArch();
@@ -105,7 +105,7 @@ export default class ExportPkg extends Command {
105
105
  */
106
106
  }
107
107
  else if (familyId === 'fedora') {
108
- Utils.warning("fedora rpm packages");
108
+ Utils.warning("fedora RPM");
109
109
  localPath = `/home/${this.user}/rpmbuild/RPMS/x86_64`;
110
110
  if (distroId === 'fedora') {
111
111
  remotePath = this.Tu.config.remotePathPackages + "/fedora";
@@ -18,18 +18,33 @@ import path from 'node:path';
18
18
  export default async function bootloader() {
19
19
  let grubName = Diversion.grubName(this.distro.familyId);
20
20
  let grubForce = Diversion.grubForce(this.distro.familyId);
21
- /**
22
- * grub-install: added --force per fedora family
23
- */
24
- // define grub-install --target=${target}
25
- let target = `x86_64-efi`;
26
- if (!this.efi) {
27
- target = 'i386-pc';
21
+ let cmd = '';
22
+ let grubLog = '/grub-install.lgo';
23
+ if (this.efi) {
24
+ /**
25
+ * UEFI Installation
26
+ * This is the correct way to install GRUB for UEFI systems.
27
+ * --target: Specifies the EFI architecture (x86_64-efi or arm64-efi).
28
+ * --efi-directory: Tells GRUB where the EFI System Partition is mounted. CRITICAL.
29
+ * --bootloader-id: Creates the \EFI\fedora directory on the ESP and labels the NVRAM entry. CRITICAL.
30
+ * We do NOT specify the device (e.g., /dev/sda) for UEFI.
31
+ */
32
+ let target = `x86_64-efi`;
33
+ if (process.arch === 'arm64') {
34
+ target = `arm64-efi`;
35
+ }
36
+ let bootloaderId = this.distro.distroLike.toLowerCase();
37
+ cmd = `chroot ${this.installTarget} ${grubName}-install --target=${target} --efi-directory=/boot/efi --bootloader-id=${bootloaderId} --recheck ${grubForce}`;
28
38
  }
29
- if (process.arch === 'arm64') {
30
- target = `arm64-efi`;
39
+ else {
40
+ /**
41
+ * MBR (Legacy BIOS) Installation
42
+ * For legacy boot, we specify the installation device directly.
43
+ */
44
+ const target = 'i386-pc';
45
+ cmd = `chroot ${this.installTarget} ${grubName}-install --target=${target} ${this.partitions.installationDevice} ${grubForce} ${grubLog}`;
31
46
  }
32
- let cmd = `chroot ${this.installTarget} ${grubName}-install --target=${target} ${this.partitions.installationDevice} ${grubForce} ${this.toNull}`;
47
+ // await Utils.debug(`grub-install: ${cmd}`)
33
48
  await exec(cmd, this.echo);
34
49
  /**
35
50
  * grub-mkconfig
@@ -20,7 +20,7 @@ export default async function bootloaderConfig() {
20
20
  if (this.distro.familyId === 'alpine') {
21
21
  if (this.efi) {
22
22
  try {
23
- cmd = `chroot ${this.installTarget} apk add grub grub-efi efibootmgr} ${this.toNull}`;
23
+ cmd = `chroot ${this.installTarget} apk add grub grub-efi efibootmgr shim} ${this.toNull}`;
24
24
  await exec(cmd, this.echo);
25
25
  }
26
26
  catch (error) {
@@ -43,7 +43,7 @@ export default async function bootloaderConfig() {
43
43
  else if (this.distro.familyId === 'archlinux') {
44
44
  if (this.efi) {
45
45
  try {
46
- cmd = `chroot ${this.installTarget} pacman -Sy grub efibootmgr} ${this.toNull}`;
46
+ cmd = `chroot ${this.installTarget} pacman -Sy grub efibootmgr shim} ${this.toNull}`;
47
47
  await exec(cmd, this.echo);
48
48
  }
49
49
  catch (error) {
@@ -75,7 +75,7 @@ export default async function bootloaderConfig() {
75
75
  const aptInstallOptions = ' apt install -y --no-upgrade --allow-unauthenticated -o Acquire::gpgv::Options::=--ignore-time-conflict ';
76
76
  if (this.efi) {
77
77
  try {
78
- cmd = `chroot ${this.installTarget} ${aptInstallOptions} grub-efi-${Utils.uefiArch()} --allow-unauthenticated ${this.toNull}`;
78
+ cmd = `chroot ${this.installTarget} ${aptInstallOptions} grub-efi-${Utils.uefiArch()} efibootmgr shim-signed --allow-unauthenticated ${this.toNull}`;
79
79
  await exec(cmd, this.echo);
80
80
  }
81
81
  catch (error) {
@@ -92,13 +92,19 @@ export default async function bootloaderConfig() {
92
92
  }
93
93
  }
94
94
  /**
95
- * fedora/openmamba
95
+ * fedora
96
96
  */
97
97
  }
98
- else if (this.distro.familyId === 'fedora' || this.distro.familyId === 'openmamba') {
98
+ else if (this.distro.familyId === 'fedora') {
99
99
  if (this.efi) {
100
100
  try {
101
- cmd = `chroot ${this.installTarget} dnf -y install grub2 grub2-efi-x64 efibootmgr shim ${this.toNull}`;
101
+ cmd = ``;
102
+ cmd += `chroot ${this.installTarget} `;
103
+ cmd += `dnf -y install grub2 `;
104
+ cmd += `grub2-efi-${process.arch} `;
105
+ cmd += `grub2-efi-${process.arch}-modules `;
106
+ cmd += `efibootmgr `;
107
+ cmd += `shim-${process.arch} ${this.toNull}`;
102
108
  await exec(cmd, this.echo);
103
109
  }
104
110
  catch (error) {
@@ -107,7 +113,43 @@ export default async function bootloaderConfig() {
107
113
  }
108
114
  else {
109
115
  try {
110
- cmd = `chroot ${this.installTarget} dnf -y install grub2 grub2-pc ${this.toNull}`;
116
+ cmd = ``;
117
+ cmd += `chroot ${this.installTarget} `;
118
+ cmd += `dnf -y install grub2 `;
119
+ cmd += `grub2-pc `;
120
+ cmd += `grub2-pc-modules ${this.toNull}`;
121
+ await exec(cmd, this.echo);
122
+ }
123
+ catch (error) {
124
+ await showError(cmd, error);
125
+ }
126
+ }
127
+ /**
128
+ * openmamba
129
+ */
130
+ }
131
+ else if (this.distro.familyId === 'openmamba') {
132
+ if (this.efi) {
133
+ try {
134
+ cmd = ``;
135
+ cmd += `chroot ${this.installTarget} `;
136
+ cmd += `dnf -y install grub `;
137
+ cmd += `grub-efi-x86_64 `;
138
+ cmd += `efibootmgr `;
139
+ cmd += `shim-signed ${this.toNull}`;
140
+ await exec(cmd, this.echo);
141
+ }
142
+ catch (error) {
143
+ await showError(cmd, error);
144
+ }
145
+ }
146
+ else {
147
+ try {
148
+ cmd = ``;
149
+ cmd += `chroot ${this.installTarget} `;
150
+ cmd += `dnf -y install grub2 `;
151
+ cmd += `grub2-pc `;
152
+ cmd += `grub2-pc-modules ${this.toNull}`;
111
153
  await exec(cmd, this.echo);
112
154
  }
113
155
  catch (error) {
@@ -121,7 +163,16 @@ export default async function bootloaderConfig() {
121
163
  else if (this.distro.familyId === 'opensuse') {
122
164
  if (this.efi) {
123
165
  try {
124
- cmd = `chroot ${this.installTarget} zypper install -y grub2 grub2-i386-pc grub2-x86_64-efi- efibootmgr} ${this.toNull}`;
166
+ cmd = `chroot ${this.installTarget} zypper install -y grub2 grub2-x86_64-efi efibootmgr shim} ${this.toNull}`;
167
+ await exec(cmd, this.echo);
168
+ }
169
+ catch (error) {
170
+ await showError(cmd, error);
171
+ }
172
+ }
173
+ else {
174
+ try {
175
+ cmd = `chroot ${this.installTarget} zypper install -y zypper install -y grub2 grub2-i386-pc ${this.toNull}`;
125
176
  await exec(cmd, this.echo);
126
177
  }
127
178
  catch (error) {
@@ -129,6 +180,7 @@ export default async function bootloaderConfig() {
129
180
  }
130
181
  }
131
182
  }
183
+ // await Utils.debug(`grub packages install cmd: ${cmd}`)
132
184
  }
133
185
  /**
134
186
  *
@@ -29,9 +29,11 @@ export default async function mkfs() {
29
29
  this.devices.efi.name = 'none'; // Trovare il modo
30
30
  }
31
31
  if (this.partitions.filesystemType === 'ext4') {
32
- // efi
32
+ /**
33
+ * EFI
34
+ */
33
35
  if (this.efi) {
34
- await exec(`mkdosfs -F 32 -I ${this.devices.efi.name} ${this.toNull}`, this.echo);
36
+ await exec(`mkfs.vfat -F 32 ${this.devices.efi.name} ${this.toNull}`, this.echo);
35
37
  }
36
38
  // boot
37
39
  if (this.devices.boot.name !== 'none') {
@@ -39,11 +41,13 @@ export default async function mkfs() {
39
41
  this.devices.boot.fsType = 'ext2';
40
42
  this.devices.boot.mountPoint = '/boot';
41
43
  }
42
- await exec(`mke2fs -Ft ${this.devices.boot.fsType} ${this.devices.boot.name} ${this.toNull}`, this.echo);
44
+ // await exec(`mke2fs -Ft ${this.devices.boot.fsType} ${this.devices.boot.name} ${this.toNull}`, this.echo)
45
+ await exec(`mkfs.${this.devices.boot.fsType} -F ${this.devices.boot.name} ${this.toNull}`, this.echo);
43
46
  }
44
47
  // root
45
48
  if (this.devices.root.name !== 'none') {
46
- await exec(`mke2fs -Ft ${this.devices.root.fsType} ${this.devices.root.name} ${this.toNull}`, this.echo);
49
+ // await exec(`mke2fs -Ft ${this.devices.root.fsType} ${this.devices.root.name} ${this.toNull}`, this.echo)
50
+ await exec(`mkfs.ext4 -F ${this.devices.root.name} ${this.toNull}`, this.echo);
47
51
  }
48
52
  // data
49
53
  if (this.devices.data.name !== 'none') {
@@ -11,18 +11,37 @@ import { exec } from '../../../lib/utils.js';
11
11
  * mountvfs()
12
12
  */
13
13
  export async function mountVfs() {
14
+ /**
15
+ * dev
16
+ */
14
17
  await exec(`mkdir ${this.installTarget}/dev ${this.toNull}`, this.echo);
15
- await exec(`mkdir ${this.installTarget}/dev/pts ${this.toNull}`, this.echo);
16
- await exec(`mkdir ${this.installTarget}/proc ${this.toNull}`, this.echo);
17
- await exec(`mkdir ${this.installTarget}/sys ${this.toNull}`, this.echo);
18
- await exec(`mkdir ${this.installTarget}/run ${this.toNull}`, this.echo);
19
18
  await exec(`mount -o bind /dev ${this.installTarget}/dev ${this.toNull}`, this.echo);
19
+ /**
20
+ * dev/pts
21
+ */
22
+ await exec(`mkdir ${this.installTarget}/dev/pts ${this.toNull}`, this.echo);
20
23
  await exec(`mount -o bind /dev/pts ${this.installTarget}/dev/pts ${this.toNull}`, this.echo);
24
+ /**
25
+ * proc
26
+ */
27
+ await exec(`mkdir ${this.installTarget}/proc ${this.toNull}`, this.echo);
21
28
  await exec(`mount -o bind /proc ${this.installTarget}/proc ${this.toNull}`, this.echo);
29
+ /**
30
+ * sys
31
+ */
32
+ await exec(`mkdir ${this.installTarget}/sys ${this.toNull}`, this.echo);
22
33
  await exec(`mount -o bind /sys ${this.installTarget}/sys ${this.toNull}`, this.echo);
34
+ /**
35
+ * sys/efivar
36
+ */
23
37
  if (this.efi) {
24
- await exec(`mount -o bind /sys/firmware/efi/efivars ${this.installTarget}/sys/firmware/efi/efivars ${this.toNull}`, this.echo);
38
+ await exec(`mkdir -p ${this.installTarget}/sys/firmware/efi/efivars ${this.toNull}`, this.echo);
39
+ await exec(`mount -o bind /sys/firmware/efi/efivars ${this.installTarget}/sys/firmware/efi/efivars`);
25
40
  }
41
+ /**
42
+ * run: use recursive binding rbins
43
+ */
44
+ await exec(`mkdir ${this.installTarget}/run ${this.toNull}`, this.echo);
26
45
  await exec(`mount -o rbind /run ${this.installTarget}/run ${this.toNull}`, this.echo);
27
46
  }
28
47
  /**