penguins-eggs 10.1.0 → 10.1.1

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 (440) hide show
  1. package/.oclif.manifest.json +1 -32
  2. package/README.md +109 -78
  3. package/conf/derivatives.yaml +3 -0
  4. package/conf/distros/buster/calamares/modules/users.yml +1 -0
  5. package/conf/distros/noble/calamares/modules/users.yml +1 -0
  6. package/dist/classes/bleach.d.ts +32 -0
  7. package/dist/classes/bleach.js +135 -0
  8. package/dist/classes/cli-autologin.d.ts +52 -0
  9. package/dist/classes/cli-autologin.js +247 -0
  10. package/dist/classes/compressors.d.ts +54 -0
  11. package/dist/classes/compressors.js +109 -0
  12. package/dist/classes/daddy.d.ts +26 -0
  13. package/dist/classes/daddy.js +167 -0
  14. package/dist/classes/distro.d.ts +56 -0
  15. package/dist/classes/distro.js +413 -0
  16. package/dist/classes/diversions.d.ts +52 -0
  17. package/dist/classes/diversions.js +126 -0
  18. package/dist/classes/incubation/branding.d.ts +17 -0
  19. package/dist/classes/incubation/branding.js +85 -0
  20. package/dist/classes/incubation/fisherman-helper/displaymanager.d.ts +11 -0
  21. package/dist/classes/incubation/fisherman-helper/displaymanager.js +40 -0
  22. package/dist/classes/incubation/fisherman-helper/packages.d.ts +20 -0
  23. package/dist/classes/incubation/fisherman-helper/packages.js +72 -0
  24. package/dist/classes/incubation/fisherman-helper/settings.d.ts +15 -0
  25. package/dist/classes/incubation/fisherman-helper/settings.js +83 -0
  26. package/dist/classes/incubation/fisherman.d.ts +70 -0
  27. package/dist/classes/incubation/fisherman.js +263 -0
  28. package/dist/classes/incubation/incubator.d/alpine.d.ts +32 -0
  29. package/dist/classes/incubation/incubator.d/alpine.js +78 -0
  30. package/dist/classes/incubation/incubator.d/bionic.d.ts +32 -0
  31. package/dist/classes/incubation/incubator.d/bionic.js +83 -0
  32. package/dist/classes/incubation/incubator.d/buster.d.ts +32 -0
  33. package/dist/classes/incubation/incubator.d/buster.js +85 -0
  34. package/dist/classes/incubation/incubator.d/jessie.d.ts +31 -0
  35. package/dist/classes/incubation/incubator.d/jessie.js +44 -0
  36. package/dist/classes/incubation/incubator.d/noble.d.ts +32 -0
  37. package/dist/classes/incubation/incubator.d/noble.js +85 -0
  38. package/dist/classes/incubation/incubator.d/openmamba.d.ts +32 -0
  39. package/dist/classes/incubation/incubator.d/openmamba.js +81 -0
  40. package/dist/classes/incubation/incubator.d/opensuse.d.ts +32 -0
  41. package/dist/classes/incubation/incubator.d/opensuse.js +81 -0
  42. package/dist/classes/incubation/incubator.d/rolling.d.ts +32 -0
  43. package/dist/classes/incubation/incubator.d/rolling.js +80 -0
  44. package/dist/classes/incubation/incubator.d.ts +44 -0
  45. package/dist/classes/incubation/incubator.js +382 -0
  46. package/dist/classes/incubation/installer.d.ts +13 -0
  47. package/dist/classes/incubation/installer.js +52 -0
  48. package/dist/classes/keyboards.d.ts +50 -0
  49. package/dist/classes/keyboards.js +287 -0
  50. package/dist/classes/locales.d.ts +21 -0
  51. package/dist/classes/locales.js +77 -0
  52. package/dist/classes/network.d.ts +37 -0
  53. package/dist/classes/network.js +98 -0
  54. package/dist/classes/ovary.d/bind-live-fs.d.ts +18 -0
  55. package/dist/classes/ovary.d/bind-live-fs.js +177 -0
  56. package/dist/classes/ovary.d/bind-vfs.d.ts +17 -0
  57. package/dist/classes/ovary.d/bind-vfs.js +37 -0
  58. package/dist/classes/ovary.d/create-xdg-autostart.d.ts +13 -0
  59. package/dist/classes/ovary.d/create-xdg-autostart.js +194 -0
  60. package/dist/classes/ovary.d/edit-live-fs.d.ts +20 -0
  61. package/dist/classes/ovary.d/edit-live-fs.js +245 -0
  62. package/dist/classes/ovary.d/fertilization.d.ts +12 -0
  63. package/dist/classes/ovary.d/fertilization.js +51 -0
  64. package/dist/classes/ovary.d/finished.d.ts +13 -0
  65. package/dist/classes/ovary.d/finished.js +41 -0
  66. package/dist/classes/ovary.d/initrd.d.ts +21 -0
  67. package/dist/classes/ovary.d/initrd.js +68 -0
  68. package/dist/classes/ovary.d/kernel-copy.d.ts +12 -0
  69. package/dist/classes/ovary.d/kernel-copy.js +22 -0
  70. package/dist/classes/ovary.d/live-create-structure.d.ts +12 -0
  71. package/dist/classes/ovary.d/live-create-structure.js +90 -0
  72. package/dist/classes/ovary.d/make-dot-disk.d.ts +12 -0
  73. package/dist/classes/ovary.d/make-dot-disk.js +40 -0
  74. package/dist/classes/ovary.d/make-efi.d.ts +12 -0
  75. package/dist/classes/ovary.d/make-efi.js +271 -0
  76. package/dist/classes/ovary.d/make-iso.d.ts +13 -0
  77. package/dist/classes/ovary.d/make-iso.js +45 -0
  78. package/dist/classes/ovary.d/make-squashfs.d.ts +18 -0
  79. package/dist/classes/ovary.d/make-squashfs.js +110 -0
  80. package/dist/classes/ovary.d/merged.d.ts +27 -0
  81. package/dist/classes/ovary.d/merged.js +77 -0
  82. package/dist/classes/ovary.d/produce.d.ts +23 -0
  83. package/dist/classes/ovary.d/produce.js +293 -0
  84. package/dist/classes/ovary.d/rexec.d.ts +13 -0
  85. package/dist/classes/ovary.d/rexec.js +34 -0
  86. package/dist/classes/ovary.d/syslinux.d.ts +12 -0
  87. package/dist/classes/ovary.d/syslinux.js +79 -0
  88. package/dist/classes/ovary.d/user-create-live.d.ts +14 -0
  89. package/dist/classes/ovary.d/user-create-live.js +93 -0
  90. package/dist/classes/ovary.d/users-remove.d.ts +9 -0
  91. package/dist/classes/ovary.d/users-remove.js +38 -0
  92. package/dist/classes/ovary.d/xorriso-commend.d.ts +14 -0
  93. package/dist/classes/ovary.d/xorriso-commend.js +119 -0
  94. package/dist/classes/ovary.d.ts +82 -0
  95. package/dist/classes/ovary.js +86 -0
  96. package/dist/classes/pacman.d/aldos.d.ts +52 -0
  97. package/dist/classes/pacman.d/aldos.js +100 -0
  98. package/dist/classes/pacman.d/alpine.d.ts +56 -0
  99. package/dist/classes/pacman.d/alpine.js +162 -0
  100. package/dist/classes/pacman.d/archlinux.d.ts +62 -0
  101. package/dist/classes/pacman.d/archlinux.js +136 -0
  102. package/dist/classes/pacman.d/debian.d.ts +65 -0
  103. package/dist/classes/pacman.d/debian.js +143 -0
  104. package/dist/classes/pacman.d/fedora.d.ts +53 -0
  105. package/dist/classes/pacman.d/fedora.js +101 -0
  106. package/dist/classes/pacman.d/openmamba.d.ts +52 -0
  107. package/dist/classes/pacman.d/openmamba.js +100 -0
  108. package/dist/classes/pacman.d/opensuse.d.ts +53 -0
  109. package/dist/classes/pacman.d/opensuse.js +102 -0
  110. package/dist/classes/pacman.d/voidlinux.d.ts +52 -0
  111. package/dist/classes/pacman.d/voidlinux.js +90 -0
  112. package/dist/classes/pacman.d.ts +139 -0
  113. package/dist/classes/pacman.js +776 -0
  114. package/dist/classes/pve-live.d.ts +17 -0
  115. package/dist/classes/pve-live.js +52 -0
  116. package/dist/classes/pxe.d.ts +74 -0
  117. package/dist/classes/pxe.js +410 -0
  118. package/dist/classes/settings.d.ts +52 -0
  119. package/dist/classes/settings.js +185 -0
  120. package/dist/classes/sources_list.d.ts +28 -0
  121. package/dist/classes/sources_list.js +89 -0
  122. package/dist/classes/systemctl.d.ts +47 -0
  123. package/dist/classes/systemctl.js +86 -0
  124. package/dist/classes/tailor.d.ts +50 -0
  125. package/dist/classes/tailor.js +527 -0
  126. package/dist/classes/tools.d.ts +26 -0
  127. package/dist/classes/tools.js +50 -0
  128. package/dist/classes/users.d.ts +28 -0
  129. package/dist/classes/users.js +143 -0
  130. package/dist/classes/utils.d/architecture.d.ts +41 -0
  131. package/dist/classes/utils.d/architecture.js +87 -0
  132. package/dist/classes/utils.d/console-output.d.ts +26 -0
  133. package/dist/classes/utils.d/console-output.js +46 -0
  134. package/dist/classes/utils.d/filesystem.d.ts +53 -0
  135. package/dist/classes/utils.d/filesystem.js +152 -0
  136. package/dist/classes/utils.d/formatters.d.ts +32 -0
  137. package/dist/classes/utils.d/formatters.js +64 -0
  138. package/dist/classes/utils.d/kernel.d.ts +83 -0
  139. package/dist/classes/utils.d/kernel.js +288 -0
  140. package/dist/classes/utils.d/network.d.ts +43 -0
  141. package/dist/classes/utils.d/network.js +133 -0
  142. package/dist/classes/utils.d/package-info.d.ts +55 -0
  143. package/dist/classes/utils.d/package-info.js +137 -0
  144. package/dist/classes/utils.d/snapshot.d.ts +44 -0
  145. package/dist/classes/utils.d/snapshot.js +102 -0
  146. package/dist/classes/utils.d/system.d.ts +63 -0
  147. package/dist/classes/utils.d/system.js +200 -0
  148. package/dist/classes/utils.d/user-interaction.d.ts +39 -0
  149. package/dist/classes/utils.d/user-interaction.js +104 -0
  150. package/dist/classes/utils.d.ts +95 -0
  151. package/dist/classes/utils.js +111 -0
  152. package/dist/classes/xdg.d.ts +45 -0
  153. package/dist/classes/xdg.js +337 -0
  154. package/dist/classes/yolk.d.ts +33 -0
  155. package/dist/classes/yolk.js +114 -0
  156. package/dist/commands/adapt.d.ts +17 -0
  157. package/dist/commands/adapt.js +33 -0
  158. package/dist/commands/analyze.d.ts +26 -0
  159. package/dist/commands/analyze.js +95 -0
  160. package/dist/commands/calamares.d.ts +29 -0
  161. package/dist/commands/calamares.js +112 -0
  162. package/dist/commands/config.d.ts +35 -0
  163. package/dist/commands/config.js +120 -0
  164. package/dist/commands/cuckoo.d.ts +16 -0
  165. package/dist/commands/cuckoo.js +62 -0
  166. package/dist/commands/dad.d.ts +21 -0
  167. package/dist/commands/dad.js +47 -0
  168. package/dist/commands/export/iso.d.ts +19 -0
  169. package/dist/commands/export/iso.js +55 -0
  170. package/dist/commands/export/pkg.d.ts +29 -0
  171. package/dist/commands/export/pkg.js +163 -0
  172. package/dist/commands/export/tarballs.d.ts +27 -0
  173. package/dist/commands/export/tarballs.js +79 -0
  174. package/dist/commands/install.d.ts +38 -0
  175. package/dist/commands/install.js +91 -0
  176. package/dist/commands/kill.d.ts +24 -0
  177. package/dist/commands/kill.js +50 -0
  178. package/dist/commands/love.d.ts +21 -0
  179. package/dist/commands/love.js +73 -0
  180. package/dist/commands/mom.d.ts +16 -0
  181. package/dist/commands/mom.js +30 -0
  182. package/dist/commands/pods.d.ts +22 -0
  183. package/dist/commands/pods.js +92 -0
  184. package/dist/commands/produce.d.ts +35 -0
  185. package/dist/commands/produce.js +221 -0
  186. package/dist/commands/status.d.ts +23 -0
  187. package/dist/commands/status.js +31 -0
  188. package/dist/commands/syncfrom.d.ts +45 -0
  189. package/dist/commands/syncfrom.js +152 -0
  190. package/dist/commands/syncto.d.ts +40 -0
  191. package/dist/commands/syncto.js +175 -0
  192. package/dist/commands/tools/clean.d.ts +18 -0
  193. package/dist/commands/tools/clean.js +37 -0
  194. package/dist/commands/tools/ppa.d.ts +26 -0
  195. package/dist/commands/tools/ppa.js +138 -0
  196. package/dist/commands/tools/skel.d.ts +18 -0
  197. package/dist/commands/tools/skel.js +44 -0
  198. package/dist/commands/tools/stat.d.ts +31 -0
  199. package/dist/commands/tools/stat.js +70 -0
  200. package/dist/commands/tools/yolk.d.ts +24 -0
  201. package/dist/commands/tools/yolk.js +45 -0
  202. package/dist/commands/update.d.ts +51 -0
  203. package/dist/commands/update.js +219 -0
  204. package/dist/commands/wardrobe/get.d.ts +23 -0
  205. package/dist/commands/wardrobe/get.js +52 -0
  206. package/dist/commands/wardrobe/list.d.ts +24 -0
  207. package/dist/commands/wardrobe/list.js +125 -0
  208. package/dist/commands/wardrobe/show.d.ts +25 -0
  209. package/dist/commands/wardrobe/show.js +97 -0
  210. package/dist/commands/wardrobe/wear.d.ts +26 -0
  211. package/dist/commands/wardrobe/wear.js +84 -0
  212. package/dist/index.d.ts +8 -0
  213. package/dist/index.js +8 -0
  214. package/dist/index_old.d.ts +8 -0
  215. package/dist/index_old.js +8 -0
  216. package/dist/interfaces/i-addons.d.ts +12 -0
  217. package/dist/interfaces/i-addons.js +8 -0
  218. package/dist/interfaces/i-analyze.d.ts +17 -0
  219. package/dist/interfaces/i-analyze.js +17 -0
  220. package/dist/interfaces/i-app.d.ts +14 -0
  221. package/dist/interfaces/i-app.js +8 -0
  222. package/dist/interfaces/i-branding.d.ts +36 -0
  223. package/dist/interfaces/i-branding.js +8 -0
  224. package/dist/interfaces/i-calamares-displaymanager.d.ts +17 -0
  225. package/dist/interfaces/i-calamares-displaymanager.js +1 -0
  226. package/dist/interfaces/i-calamares-finished.d.ts +12 -0
  227. package/dist/interfaces/i-calamares-finished.js +1 -0
  228. package/dist/interfaces/i-calamares-packages.d.ts +28 -0
  229. package/dist/interfaces/i-calamares-packages.js +1 -0
  230. package/dist/interfaces/i-calamares-partition.d.ts +40 -0
  231. package/dist/interfaces/i-calamares-partition.js +1 -0
  232. package/dist/interfaces/i-config-tools.d.ts +15 -0
  233. package/dist/interfaces/i-config-tools.js +8 -0
  234. package/dist/interfaces/i-devices.d.ts +20 -0
  235. package/dist/interfaces/i-devices.js +8 -0
  236. package/dist/interfaces/i-distro.d.ts +23 -0
  237. package/dist/interfaces/i-distro.js +8 -0
  238. package/dist/interfaces/i-drive-list.d.ts +33 -0
  239. package/dist/interfaces/i-drive-list.js +8 -0
  240. package/dist/interfaces/i-eggs-config.d.ts +32 -0
  241. package/dist/interfaces/i-eggs-config.js +8 -0
  242. package/dist/interfaces/i-excludes.d.ts +14 -0
  243. package/dist/interfaces/i-excludes.js +8 -0
  244. package/dist/interfaces/i-exec.d.ts +11 -0
  245. package/dist/interfaces/i-exec.js +8 -0
  246. package/dist/interfaces/i-initrd.d.ts +13 -0
  247. package/dist/interfaces/i-initrd.js +8 -0
  248. package/dist/interfaces/i-install.d.ts +16 -0
  249. package/dist/interfaces/i-install.js +8 -0
  250. package/dist/interfaces/i-installer.d.ts +17 -0
  251. package/dist/interfaces/i-installer.js +8 -0
  252. package/dist/interfaces/i-luks-passphrase.d.ts +11 -0
  253. package/dist/interfaces/i-luks-passphrase.js +8 -0
  254. package/dist/interfaces/i-materia.d.ts +36 -0
  255. package/dist/interfaces/i-materia.js +8 -0
  256. package/dist/interfaces/i-net.d.ts +16 -0
  257. package/dist/interfaces/i-net.js +8 -0
  258. package/dist/interfaces/i-os-release.d.ts +5 -0
  259. package/dist/interfaces/i-os-release.js +1 -0
  260. package/dist/interfaces/i-packages.d.ts +16 -0
  261. package/dist/interfaces/i-packages.js +8 -0
  262. package/dist/interfaces/i-partitions.d.ts +16 -0
  263. package/dist/interfaces/i-partitions.js +8 -0
  264. package/dist/interfaces/i-pxe.d.ts +45 -0
  265. package/dist/interfaces/i-pxe.js +1 -0
  266. package/dist/interfaces/i-remix.d.ts +21 -0
  267. package/dist/interfaces/i-remix.js +8 -0
  268. package/dist/interfaces/i-settings.d.ts +33 -0
  269. package/dist/interfaces/i-settings.js +8 -0
  270. package/dist/interfaces/i-user.d.ts +14 -0
  271. package/dist/interfaces/i-user.js +8 -0
  272. package/dist/interfaces/i-workdir.d.ts +14 -0
  273. package/dist/interfaces/i-workdir.js +8 -0
  274. package/dist/interfaces/i-xkb-model.d.ts +24 -0
  275. package/dist/interfaces/i-xkb-model.js +8 -0
  276. package/dist/interfaces/index.d.ts +26 -0
  277. package/dist/interfaces/index.js +8 -0
  278. package/dist/krill/classes/cfs.d.ts +17 -0
  279. package/dist/krill/classes/cfs.js +39 -0
  280. package/dist/krill/classes/krill_enums.d.ts +37 -0
  281. package/dist/krill/classes/krill_enums.js +41 -0
  282. package/dist/krill/classes/prepare.d/confirm.d.ts +5 -0
  283. package/dist/krill/classes/prepare.d/confirm.js +30 -0
  284. package/dist/krill/classes/prepare.d/keyboard.d.ts +14 -0
  285. package/dist/krill/classes/prepare.d/keyboard.js +62 -0
  286. package/dist/krill/classes/prepare.d/location.d.ts +17 -0
  287. package/dist/krill/classes/prepare.d/location.js +59 -0
  288. package/dist/krill/classes/prepare.d/network.d.ts +14 -0
  289. package/dist/krill/classes/prepare.d/network.js +68 -0
  290. package/dist/krill/classes/prepare.d/partitions.d.ts +14 -0
  291. package/dist/krill/classes/prepare.d/partitions.js +86 -0
  292. package/dist/krill/classes/prepare.d/summary.d.ts +15 -0
  293. package/dist/krill/classes/prepare.d/summary.js +69 -0
  294. package/dist/krill/classes/prepare.d/users.d.ts +6 -0
  295. package/dist/krill/classes/prepare.d/users.js +63 -0
  296. package/dist/krill/classes/prepare.d/welcome.d.ts +6 -0
  297. package/dist/krill/classes/prepare.d/welcome.js +30 -0
  298. package/dist/krill/classes/prepare.d.ts +89 -0
  299. package/dist/krill/classes/prepare.js +314 -0
  300. package/dist/krill/classes/sequence.d/add_user.d.ts +20 -0
  301. package/dist/krill/classes/sequence.d/add_user.js +66 -0
  302. package/dist/krill/classes/sequence.d/bootloader.d.ts +14 -0
  303. package/dist/krill/classes/sequence.d/bootloader.js +95 -0
  304. package/dist/krill/classes/sequence.d/bootloader_config.d.ts +14 -0
  305. package/dist/krill/classes/sequence.d/bootloader_config.js +165 -0
  306. package/dist/krill/classes/sequence.d/change_password.d.ts +15 -0
  307. package/dist/krill/classes/sequence.d/change_password.js +18 -0
  308. package/dist/krill/classes/sequence.d/del_live_user.d.ts +14 -0
  309. package/dist/krill/classes/sequence.d/del_live_user.js +39 -0
  310. package/dist/krill/classes/sequence.d/fstab.d.ts +14 -0
  311. package/dist/krill/classes/sequence.d/fstab.js +189 -0
  312. package/dist/krill/classes/sequence.d/grubcfg.d.ts +17 -0
  313. package/dist/krill/classes/sequence.d/grubcfg.js +33 -0
  314. package/dist/krill/classes/sequence.d/hostname.d.ts +13 -0
  315. package/dist/krill/classes/sequence.d/hostname.js +50 -0
  316. package/dist/krill/classes/sequence.d/initramfs.d.ts +13 -0
  317. package/dist/krill/classes/sequence.d/initramfs.js +54 -0
  318. package/dist/krill/classes/sequence.d/initramfs_cfg.d.ts +14 -0
  319. package/dist/krill/classes/sequence.d/initramfs_cfg.js +35 -0
  320. package/dist/krill/classes/sequence.d/locale.d.ts +13 -0
  321. package/dist/krill/classes/sequence.d/locale.js +91 -0
  322. package/dist/krill/classes/sequence.d/locale_cfg.d.ts +10 -0
  323. package/dist/krill/classes/sequence.d/locale_cfg.js +58 -0
  324. package/dist/krill/classes/sequence.d/m_keyboard.d.ts +14 -0
  325. package/dist/krill/classes/sequence.d/m_keyboard.js +58 -0
  326. package/dist/krill/classes/sequence.d/machine_id.d.ts +15 -0
  327. package/dist/krill/classes/sequence.d/machine_id.js +33 -0
  328. package/dist/krill/classes/sequence.d/mkfs.d.ts +15 -0
  329. package/dist/krill/classes/sequence.d/mkfs.js +72 -0
  330. package/dist/krill/classes/sequence.d/mount_fs.d.ts +17 -0
  331. package/dist/krill/classes/sequence.d/mount_fs.js +68 -0
  332. package/dist/krill/classes/sequence.d/mount_vfs.d.ts +17 -0
  333. package/dist/krill/classes/sequence.d/mount_vfs.js +40 -0
  334. package/dist/krill/classes/sequence.d/network_cfg.d.ts +19 -0
  335. package/dist/krill/classes/sequence.d/network_cfg.js +73 -0
  336. package/dist/krill/classes/sequence.d/packages.d.ts +14 -0
  337. package/dist/krill/classes/sequence.d/packages.js +111 -0
  338. package/dist/krill/classes/sequence.d/partition.d/bios_luks.d.ts +17 -0
  339. package/dist/krill/classes/sequence.d/partition.d/bios_luks.js +73 -0
  340. package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +17 -0
  341. package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +36 -0
  342. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.d.ts +17 -0
  343. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.js +78 -0
  344. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.d.ts +10 -0
  345. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +32 -0
  346. package/dist/krill/classes/sequence.d/partition.d.ts +14 -0
  347. package/dist/krill/classes/sequence.d/partition.js +84 -0
  348. package/dist/krill/classes/sequence.d/remove_installer_link.d.ts +13 -0
  349. package/dist/krill/classes/sequence.d/remove_installer_link.js +35 -0
  350. package/dist/krill/classes/sequence.d/umount.d.ts +14 -0
  351. package/dist/krill/classes/sequence.d/umount.js +28 -0
  352. package/dist/krill/classes/sequence.d/unpackfs.d.ts +13 -0
  353. package/dist/krill/classes/sequence.d/unpackfs.js +20 -0
  354. package/dist/krill/classes/sequence.d.ts +133 -0
  355. package/dist/krill/classes/sequence.js +396 -0
  356. package/dist/krill/components/finished.d.ts +16 -0
  357. package/dist/krill/components/finished.js +56 -0
  358. package/dist/krill/components/information.d.ts +8 -0
  359. package/dist/krill/components/information.js +162 -0
  360. package/dist/krill/components/install.d.ts +15 -0
  361. package/dist/krill/components/install.js +60 -0
  362. package/dist/krill/components/keyboard.d.ts +16 -0
  363. package/dist/krill/components/keyboard.js +54 -0
  364. package/dist/krill/components/location.d.ts +16 -0
  365. package/dist/krill/components/location.js +59 -0
  366. package/dist/krill/components/network.d.ts +19 -0
  367. package/dist/krill/components/network.js +65 -0
  368. package/dist/krill/components/partitions.d.ts +18 -0
  369. package/dist/krill/components/partitions.js +89 -0
  370. package/dist/krill/components/steps.d.ts +13 -0
  371. package/dist/krill/components/steps.js +148 -0
  372. package/dist/krill/components/summary.d.ts +25 -0
  373. package/dist/krill/components/summary.js +77 -0
  374. package/dist/krill/components/title.d.ts +11 -0
  375. package/dist/krill/components/title.js +35 -0
  376. package/dist/krill/components/users.d.ts +24 -0
  377. package/dist/krill/components/users.js +80 -0
  378. package/dist/krill/components/welcome.d.ts +13 -0
  379. package/dist/krill/components/welcome.js +63 -0
  380. package/dist/krill/interfaces/i_krill.d.ts +44 -0
  381. package/dist/krill/interfaces/i_krill.js +8 -0
  382. package/dist/krill/interfaces/i_krill_config.d.ts +35 -0
  383. package/dist/krill/interfaces/i_krill_config.js +8 -0
  384. package/dist/krill/lib/get_address.d.ts +8 -0
  385. package/dist/krill/lib/get_address.js +23 -0
  386. package/dist/krill/lib/get_dns.d.ts +8 -0
  387. package/dist/krill/lib/get_dns.js +23 -0
  388. package/dist/krill/lib/get_domain.d.ts +8 -0
  389. package/dist/krill/lib/get_domain.js +23 -0
  390. package/dist/krill/lib/get_gateway.d.ts +8 -0
  391. package/dist/krill/lib/get_gateway.js +23 -0
  392. package/dist/krill/lib/get_hostname.d.ts +8 -0
  393. package/dist/krill/lib/get_hostname.js +23 -0
  394. package/dist/krill/lib/get_luks_passphrase.d.ts +8 -0
  395. package/dist/krill/lib/get_luks_passphrase.js +40 -0
  396. package/dist/krill/lib/get_netmask.d.ts +8 -0
  397. package/dist/krill/lib/get_netmask.js +23 -0
  398. package/dist/krill/lib/get_password.d.ts +8 -0
  399. package/dist/krill/lib/get_password.js +36 -0
  400. package/dist/krill/lib/get_userfullname.d.ts +8 -0
  401. package/dist/krill/lib/get_userfullname.js +23 -0
  402. package/dist/krill/lib/get_username.d.ts +8 -0
  403. package/dist/krill/lib/get_username.js +23 -0
  404. package/dist/krill/lib/select_address_type.d.ts +8 -0
  405. package/dist/krill/lib/select_address_type.js +24 -0
  406. package/dist/krill/lib/select_filesystem_type.d.ts +8 -0
  407. package/dist/krill/lib/select_filesystem_type.js +39 -0
  408. package/dist/krill/lib/select_installation_device.d.ts +8 -0
  409. package/dist/krill/lib/select_installation_device.js +40 -0
  410. package/dist/krill/lib/select_installation_mode.d.ts +9 -0
  411. package/dist/krill/lib/select_installation_mode.js +25 -0
  412. package/dist/krill/lib/select_interface.d.ts +8 -0
  413. package/dist/krill/lib/select_interface.js +24 -0
  414. package/dist/krill/lib/select_keyboard_layout.d.ts +11 -0
  415. package/dist/krill/lib/select_keyboard_layout.js +36 -0
  416. package/dist/krill/lib/select_keyboard_model.d.ts +11 -0
  417. package/dist/krill/lib/select_keyboard_model.js +34 -0
  418. package/dist/krill/lib/select_keyboard_option.d.ts +11 -0
  419. package/dist/krill/lib/select_keyboard_option.js +34 -0
  420. package/dist/krill/lib/select_keyboard_variant.d.ts +11 -0
  421. package/dist/krill/lib/select_keyboard_variant.js +35 -0
  422. package/dist/krill/lib/select_languages.d.ts +8 -0
  423. package/dist/krill/lib/select_languages.js +28 -0
  424. package/dist/krill/lib/select_regions.d.ts +8 -0
  425. package/dist/krill/lib/select_regions.js +24 -0
  426. package/dist/krill/lib/select_replaced_partition.d.ts +8 -0
  427. package/dist/krill/lib/select_replaced_partition.js +31 -0
  428. package/dist/krill/lib/select_user_swap_choice.d.ts +9 -0
  429. package/dist/krill/lib/select_user_swap_choice.js +35 -0
  430. package/dist/krill/lib/select_zones.d.ts +8 -0
  431. package/dist/krill/lib/select_zones.js +518 -0
  432. package/dist/lib/kill_me_softly.d.ts +11 -0
  433. package/dist/lib/kill_me_softly.js +61 -0
  434. package/dist/lib/utils.d.ts +42 -0
  435. package/dist/lib/utils.js +87 -0
  436. package/dist/penguins-eggs_10.1.1-0_amd64.deb +0 -0
  437. package/dist/penguins-eggs_10.1.1-0_amd64.deb.sha256 +1 -0
  438. package/package.json +25 -23
  439. package/scripts/_eggs +6 -12
  440. package/scripts/eggs.bash +1 -2
@@ -108,10 +108,13 @@
108
108
  family: debian
109
109
  ids:
110
110
  - oracular # Ubuntu oracular 24.10
111
+ - plucky # Ubuntu 25.04
112
+ # others
111
113
  - abuntu # Abuntu
112
114
  - devel # Rhino
113
115
  - wilma # Linuxmint 22
114
116
  - xia # Linuxmint 22.1
117
+ - nexalinux # Nexa LInux
115
118
 
116
119
  - id:
117
120
  #
@@ -10,6 +10,7 @@ defaultGroups:
10
10
  - video
11
11
  - plugdev
12
12
  - netdev
13
+ # www-data
13
14
  # lpadmin
14
15
  # scanner
15
16
  # bluetooth
@@ -13,6 +13,7 @@ defaultGroups:
13
13
  must_exist: false
14
14
  system: true
15
15
  - sudo
16
+ # www-data
16
17
  passwordRequirements:
17
18
  minLength: 1
18
19
  maxLength: -1
@@ -0,0 +1,32 @@
1
+ /**
2
+ * ./src/classes/bleach.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ /**
9
+ * Bleach:
10
+ */
11
+ export default class Bleach {
12
+ /**
13
+ * clean
14
+ * @param verbose
15
+ */
16
+ clean(verbose?: boolean): Promise<void>;
17
+ /**
18
+ * cleanHistory
19
+ * @param verbose
20
+ */
21
+ private cleanHistory;
22
+ /**
23
+ * cleanJournal
24
+ * @param verbose
25
+ */
26
+ private cleanJournal;
27
+ /**
28
+ * cleanSystemCache
29
+ * @param verbose
30
+ */
31
+ private cleanSystemCache;
32
+ }
@@ -0,0 +1,135 @@
1
+ /**
2
+ * ./src/classes/bleach.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import fs from 'node:fs';
9
+ // libraries
10
+ import { exec } from '../lib/utils.js';
11
+ import Distro from './distro.js';
12
+ import Utils from './utils.js';
13
+ /**
14
+ * Bleach:
15
+ */
16
+ export default class Bleach {
17
+ /**
18
+ * clean
19
+ * @param verbose
20
+ */
21
+ async clean(verbose = false) {
22
+ let echo = { capture: false, echo: false, ignore: true };
23
+ if (verbose) {
24
+ echo = { capture: false, echo: true, ignore: true };
25
+ Utils.warning('cleaning the system');
26
+ }
27
+ const distro = new Distro();
28
+ if (distro.familyId === 'alpine') {
29
+ await exec('apk cache clean', echo);
30
+ await exec('apk cache purge', echo);
31
+ }
32
+ else if (distro.familyId === 'archlinux') {
33
+ await exec('yes | sudo pacman -Scc', Utils.setEcho(true));
34
+ }
35
+ else if (distro.familyId === 'debian') {
36
+ await exec('apt-get clean', echo);
37
+ await exec('apt-get autoclean', echo);
38
+ await exec(`rm /var/lib/apt/lists/lock -rf`, echo);
39
+ }
40
+ else if (distro.familyId === 'fedora' || distro.familyId === 'openmamba') {
41
+ await exec(`dnf remove $(dnf repoquery --installonly --latest-limit=-1 -q)`);
42
+ await exec(`dnf clean all`, echo);
43
+ }
44
+ else if (distro.familyId === 'opensuse') {
45
+ await exec(`zypper clean`, echo);
46
+ }
47
+ else if (distro.familyId === 'voidlinux') {
48
+ await exec(`xbps-remove -O`, echo);
49
+ }
50
+ await this.cleanHistory(verbose);
51
+ await this.cleanJournal(verbose);
52
+ await this.cleanSystemCache(verbose);
53
+ }
54
+ /**
55
+ * cleanHistory
56
+ * @param verbose
57
+ */
58
+ async cleanHistory(verbose = false) {
59
+ if (verbose) {
60
+ Utils.warning('cleaning bash history');
61
+ }
62
+ const dest = '/root/.bash_history';
63
+ if (fs.existsSync(dest)) {
64
+ await rm(dest, verbose);
65
+ }
66
+ }
67
+ /**
68
+ * cleanJournal
69
+ * @param verbose
70
+ */
71
+ async cleanJournal(verbose = false) {
72
+ let echo = { capture: false, echo: false, ignore: true };
73
+ if (verbose) {
74
+ echo = { capture: false, echo: true, ignore: true };
75
+ Utils.warning('cleaning journald');
76
+ }
77
+ if (Utils.isSystemd()) {
78
+ try {
79
+ await exec('journalctl --rotate', echo);
80
+ await exec('journalctl --vacuum-time=1s', echo);
81
+ }
82
+ catch (error) {
83
+ Utils.error(error);
84
+ }
85
+ }
86
+ else {
87
+ // Truncate logs, remove archived logs.
88
+ await exec('find /var/log -name "*gz" -print0 | xargs -0r rm -f', echo);
89
+ await exec('find /var/log/ -type f -exec truncate -s 0 {} \\;', echo);
90
+ }
91
+ }
92
+ /**
93
+ * cleanSystemCache
94
+ * @param verbose
95
+ */
96
+ async cleanSystemCache(verbose = false) {
97
+ let echo = { capture: false, echo: false, ignore: true };
98
+ if (verbose) {
99
+ echo = { capture: false, echo: true, ignore: true };
100
+ Utils.warning('cleaning system cache');
101
+ }
102
+ // Clear PageCache only.
103
+ await exec('sync; echo 1 > /proc/sys/vm/drop_caches', echo);
104
+ // Clear dentries and inodes.
105
+ await exec('sync; echo 2 > /proc/sys/vm/drop_caches', echo);
106
+ // Clear PageCache, dentries and inodes.
107
+ await exec('sync; echo 3 > /proc/sys/vm/drop_caches', echo);
108
+ }
109
+ }
110
+ /**
111
+ *
112
+ * @param dest
113
+ */
114
+ async function rm(dest = '', verbose = false) {
115
+ let echo = { capture: false, echo: false, ignore: true };
116
+ if (verbose) {
117
+ echo = { capture: false, echo: true, ignore: true };
118
+ }
119
+ if (fs.existsSync(dest)) {
120
+ await exec(`rm ${dest} -rf`, echo);
121
+ }
122
+ else {
123
+ console.log(`non esiste ${dest}`);
124
+ }
125
+ }
126
+ async function rmdir(dest = '', verbose = false) {
127
+ let echo = { capture: false, echo: false, ignore: true };
128
+ if (verbose) {
129
+ echo = { capture: false, echo: true, ignore: true };
130
+ }
131
+ const result = fs.readdirSync(dest);
132
+ if (result.length > 0) {
133
+ await exec(`rm ${dest} -rf`, echo);
134
+ }
135
+ }
@@ -0,0 +1,52 @@
1
+ /**
2
+ * ./src/lib/cli-autologin.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ /**
9
+ * CliAutologin
10
+ */
11
+ export default class CliAutologin {
12
+ /**
13
+ * add
14
+ * @param distro
15
+ * @param version
16
+ * @param user
17
+ * @param userPasswd
18
+ * @param rootPasswd
19
+ * @param chroot
20
+ */
21
+ add(distro: string, version: string, user: string, userPasswd: string, rootPasswd: string, chroot?: string): Promise<void>;
22
+ /**
23
+ *
24
+ * @param distro
25
+ * @param version
26
+ * @param user
27
+ * @param userPasswd
28
+ * @param rootPasswd
29
+ * @param chroot
30
+ */
31
+ addIssue(distro: string, version: string, user: string, userPasswd: string, rootPasswd: string, chroot?: string): Promise<void>;
32
+ /**
33
+ *
34
+ * @param distro
35
+ * @param version
36
+ * @param user
37
+ * @param userPasswd
38
+ * @param rootPasswd
39
+ * @param chroot
40
+ */
41
+ addMotd(distro: string, version: string, user: string, userPasswd: string, rootPasswd: string, chroot?: string): Promise<void>;
42
+ /**
43
+ * remove
44
+ * @param chroot
45
+ */
46
+ remove(chroot?: string): Promise<void>;
47
+ /**
48
+ *
49
+ * @param path
50
+ */
51
+ private msgRemove;
52
+ }
@@ -0,0 +1,247 @@
1
+ /**
2
+ * ./src/lib/cli-autologin.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import chalk from 'chalk';
9
+ import { execSync } from 'node:child_process';
10
+ import fs from 'node:fs';
11
+ import path from 'node:path';
12
+ import shx from 'shelljs';
13
+ // libraries
14
+ import { exec } from '../lib/utils.js';
15
+ import Pacman from './pacman.js';
16
+ import Utils from './utils.js';
17
+ const startMessage = 'eggs-start-message';
18
+ const stopMessage = 'eggs-stop-message';
19
+ /*
20
+ * Comando per avviare ubiquity:
21
+ * sudo --preserve-env DBUS_SESSION_BUS_ADDRESS, XDG_RUNTIME sh -c 'calamares'
22
+ */
23
+ /**
24
+ * CliAutologin
25
+ */
26
+ export default class CliAutologin {
27
+ /**
28
+ * add
29
+ * @param distro
30
+ * @param version
31
+ * @param user
32
+ * @param userPasswd
33
+ * @param rootPasswd
34
+ * @param chroot
35
+ */
36
+ async add(distro, version, user, userPasswd, rootPasswd, chroot = '/') {
37
+ if (Utils.isSystemd()) {
38
+ /**
39
+ * systemd
40
+ */
41
+ Utils.warning("creating CLI autologin systemd");
42
+ const fileOverride = `${chroot}/etc/systemd/system/getty@.service.d/override.conf`;
43
+ const dirOverride = path.dirname(fileOverride);
44
+ if (fs.existsSync(dirOverride)) {
45
+ shx.exec(`rm ${dirOverride} -rf`);
46
+ }
47
+ shx.exec(`mkdir ${dirOverride}`);
48
+ let content = '';
49
+ content += '[Service]' + '\n';
50
+ content += 'ExecStart=' + '\n';
51
+ content += 'ExecStart=-/sbin/agetty --noclear --autologin ' + user + ' %I $TERM' + '\n';
52
+ fs.writeFileSync(fileOverride, content);
53
+ shx.exec(`chmod +x ${fileOverride}`);
54
+ await this.addIssue(distro, version, user, userPasswd, rootPasswd, chroot);
55
+ await this.addMotd(distro, version, user, userPasswd, rootPasswd, chroot);
56
+ }
57
+ else if (Utils.isOpenRc()) {
58
+ /**
59
+ * openrc
60
+ */
61
+ Utils.warning("creating CLI autologin openrc");
62
+ const inittab = chroot + '/etc/inittab';
63
+ let content = '';
64
+ const search = `tty1::respawn:/sbin/getty 38400 tty1`;
65
+ const replace = `tty1::respawn:/sbin/getty -L 38400 tty1 -n -l /bin/autologin`;
66
+ const lines = fs.readFileSync(inittab, 'utf8').split('\n');
67
+ for (let i = 0; i < lines.length; i++) {
68
+ if (lines[i].includes(search)) {
69
+ lines[i] = replace;
70
+ }
71
+ content += lines[i] + '\n';
72
+ }
73
+ fs.writeFileSync(inittab, content, 'utf-8');
74
+ const autologin = chroot + '/bin/autologin';
75
+ content = '#!/bin/sh' + '\n';
76
+ content += `/bin/login -f ${user}` + '\n';
77
+ fs.writeFileSync(autologin, content, 'utf-8');
78
+ execSync(`chmod +x ${autologin}`);
79
+ await this.addIssue(distro, version, user, userPasswd, rootPasswd, chroot);
80
+ await this.addMotd(distro, version, user, userPasswd, rootPasswd, chroot);
81
+ }
82
+ else if (Utils.isSysvinit()) {
83
+ /**
84
+ * sysvinit
85
+ */
86
+ Utils.warning("creating CLI autologin sysvinit");
87
+ const inittab = chroot + '/etc/inittab';
88
+ const search = '1:2345:respawn:/sbin/getty';
89
+ const replace = `1:2345:respawn:/sbin/getty --autologin ${user} 38400 tty1`;
90
+ let content = '';
91
+ const lines = fs.readFileSync(inittab, 'utf8').split('\n');
92
+ for (let i = 0; i < lines.length; i++) {
93
+ if (lines[i].includes(search)) {
94
+ lines[i] = replace;
95
+ }
96
+ content += lines[i] + '\n';
97
+ }
98
+ fs.writeFileSync(inittab, content, 'utf-8');
99
+ await this.addMotd(distro, version, user, userPasswd, rootPasswd, chroot);
100
+ await this.addIssue(distro, version, user, userPasswd, rootPasswd, chroot);
101
+ }
102
+ }
103
+ /**
104
+ *
105
+ * @param distro
106
+ * @param version
107
+ * @param user
108
+ * @param userPasswd
109
+ * @param rootPasswd
110
+ * @param chroot
111
+ */
112
+ async addIssue(distro, version, user, userPasswd, rootPasswd, chroot = '/') {
113
+ const fileIssue = `${chroot}/etc/issue`;
114
+ if (fs.existsSync(fileIssue)) {
115
+ if (!fs.lstatSync(fileIssue).isSymbolicLink()) {
116
+ this.msgRemove(fileIssue);
117
+ let content = fs.readFileSync(fileIssue, 'utf8');
118
+ content += startMessage + '\n';
119
+ content += `This is a ${distro}/${version} system created by Penguins' eggs.\n`;
120
+ content += 'You can login with user: ' + chalk.bold(user) + ' and password: ' + chalk.bold(userPasswd) + ', root password: ' + chalk.bold(rootPasswd) + '\n';
121
+ content += stopMessage + '\n';
122
+ fs.writeFileSync(fileIssue, content);
123
+ }
124
+ }
125
+ }
126
+ /**
127
+ *
128
+ * @param distro
129
+ * @param version
130
+ * @param user
131
+ * @param userPasswd
132
+ * @param rootPasswd
133
+ * @param chroot
134
+ */
135
+ async addMotd(distro, version, user, userPasswd, rootPasswd, chroot = '/') {
136
+ const fileMotd = `${chroot}/etc/motd`;
137
+ let installer = 'sudo eggs install';
138
+ if (Pacman.calamaresExists()) {
139
+ if (Pacman.packageIsInstalled('plasma-desktop')) {
140
+ installer = 'startplasma-wayland to run GUI and launch calamares';
141
+ }
142
+ else if (Pacman.packageIsInstalled('xfce4')) {
143
+ installer = 'startxfce4 to run GUI and launch calamares installer';
144
+ }
145
+ }
146
+ if (!fs.existsSync(fileMotd)) {
147
+ await exec(`touch ${fileMotd}`);
148
+ }
149
+ this.msgRemove(fileMotd);
150
+ let eggsMotd = fs.readFileSync(fileMotd, 'utf8');
151
+ eggsMotd += startMessage + '\n';
152
+ eggsMotd += Utils.flag() + '\n';
153
+ eggsMotd += 'You are logged as: ' + chalk.bold(user) + ' your password is: ' + chalk.bold(userPasswd) + ', root password: ' + chalk.bold(rootPasswd) + '\n\n';
154
+ eggsMotd += 'install : ' + chalk.bold(installer) + '\n';
155
+ eggsMotd += ' --unattended : ' + chalk.bold('sudo eggs install --unattended') + '\n';
156
+ eggsMotd += ' --chroot : ' + chalk.bold('sudo eggs install --chroot') + '\n';
157
+ eggsMotd += ' --help : ' + chalk.bold('sudo eggs install --help') + '\n';
158
+ eggsMotd += '\n';
159
+ eggsMotd += stopMessage + '\n';
160
+ fs.writeFileSync(fileMotd, eggsMotd);
161
+ }
162
+ /**
163
+ * remove
164
+ * @param chroot
165
+ */
166
+ async remove(chroot = '/') {
167
+ if (Utils.isSystemd()) {
168
+ /**
169
+ * Systemd
170
+ */
171
+ const fileOverride = `${chroot}/etc/systemd/system/getty@.service.d/override.conf`;
172
+ const dirOverride = path.dirname(fileOverride);
173
+ if (fs.existsSync(dirOverride)) {
174
+ shx.exec(`rm ${dirOverride} -rf`);
175
+ }
176
+ this.msgRemove(`${chroot}/etc/motd`);
177
+ this.msgRemove(`${chroot}/etc/issue`);
178
+ }
179
+ else if (Utils.isOpenRc()) {
180
+ /**
181
+ * openrc
182
+ */
183
+ const inittab = chroot + '/etc/inittab';
184
+ const search = 'autologin';
185
+ const replace = `tty1::respawn:/sbin/getty 38400 tty1`;
186
+ let content = '';
187
+ const lines = fs.readFileSync(inittab, 'utf8').split('\n');
188
+ for (let i = 0; i < lines.length; i++) {
189
+ if (lines[i].includes(search)) {
190
+ lines[i] = replace;
191
+ }
192
+ content += lines[i] + '\n';
193
+ }
194
+ fs.writeFileSync(inittab, content, 'utf-8');
195
+ this.msgRemove(`${chroot}/etc/motd`);
196
+ this.msgRemove(`${chroot}/etc/issue`);
197
+ const autologin = `${chroot}/bin/autologin`;
198
+ execSync(`rm -f ${autologin}`);
199
+ }
200
+ else if (Utils.isSysvinit()) {
201
+ /**
202
+ * sysvinit
203
+ */
204
+ const inittab = chroot + '/etc/inittab';
205
+ const search = '--autologin';
206
+ const replace = '1:2345:respawn:/sbin/getty 38400 tty1 ';
207
+ let content = '';
208
+ const lines = fs.readFileSync(inittab, 'utf8').split('\n');
209
+ for (let i = 0; i < lines.length; i++) {
210
+ if (lines[i].includes(search)) {
211
+ lines[i] = replace;
212
+ }
213
+ content += lines[i] + '\n';
214
+ }
215
+ // motd
216
+ fs.writeFileSync(inittab, content, 'utf-8');
217
+ this.msgRemove(`${chroot}/etc/motd`);
218
+ // issue
219
+ this.msgRemove(`${chroot}/etc/issue`);
220
+ } // to add: openrc and runit for Devuan
221
+ }
222
+ /**
223
+ *
224
+ * @param path
225
+ */
226
+ async msgRemove(path) {
227
+ if (fs.existsSync(path)) {
228
+ if (!fs.lstatSync(path).isSymbolicLink()) {
229
+ const rows = fs.readFileSync(path, 'utf8').split('\n');
230
+ let cleaned = '';
231
+ let remove = false;
232
+ for (const row of rows) {
233
+ if (row.includes(startMessage)) {
234
+ remove = true;
235
+ }
236
+ if (!remove && row !== '') {
237
+ cleaned += row + '\n';
238
+ }
239
+ if (row.includes(stopMessage)) {
240
+ remove = false;
241
+ }
242
+ }
243
+ fs.writeFileSync(path, cleaned, 'utf-8');
244
+ }
245
+ }
246
+ }
247
+ }
@@ -0,0 +1,54 @@
1
+ /**
2
+ * ./src/classes/compressors.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ export default class Compressors {
9
+ dest: string;
10
+ isEnabled: {
11
+ error: boolean;
12
+ gzip: boolean;
13
+ lz4: boolean;
14
+ lzma: boolean;
15
+ lzo: boolean;
16
+ xz: boolean;
17
+ zstd: boolean;
18
+ };
19
+ source: string;
20
+ /**
21
+ * fast compression
22
+ * @returns
23
+ */
24
+ fast(): string;
25
+ /**
26
+ * max
27
+ * @returns
28
+ */
29
+ max(): string;
30
+ pendrive(level?: string): string;
31
+ /**
32
+ * populate
33
+ */
34
+ populate(): Promise<void>;
35
+ /**
36
+ * standard
37
+ * @returns
38
+ */
39
+ standard(): string;
40
+ /**
41
+ * check mksquashfs exists
42
+ * @param compressor
43
+ * @returns
44
+ */
45
+ private check;
46
+ /**
47
+ * prepareCheck
48
+ */
49
+ private prepareCheck;
50
+ /**
51
+ * removeCheck
52
+ */
53
+ private removeCheck;
54
+ }
@@ -0,0 +1,109 @@
1
+ /**
2
+ * ./src/classes/compressors.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import shx from 'shelljs';
9
+ export default class Compressors {
10
+ dest = '/tmp/eggs-mksquash-dest';
11
+ isEnabled = {
12
+ error: false,
13
+ gzip: true,
14
+ lz4: false,
15
+ lzma: false,
16
+ lzo: false,
17
+ xz: false,
18
+ zstd: false
19
+ };
20
+ source = '/tmp/eggs-mksquash-test';
21
+ /**
22
+ * fast compression
23
+ * @returns
24
+ */
25
+ fast() {
26
+ let comp = 'gzip';
27
+ if (this.isEnabled.zstd) {
28
+ comp = 'zstd -b 1M -Xcompression-level 3';
29
+ }
30
+ else if (this.isEnabled.lz4) {
31
+ comp = 'lz4';
32
+ }
33
+ return comp;
34
+ }
35
+ /**
36
+ * max
37
+ * @returns
38
+ */
39
+ max() {
40
+ let filter = 'x86';
41
+ if (process.arch === 'arm64') {
42
+ filter = 'arm';
43
+ }
44
+ const options = '-b 1M -no-duplicates -no-recovery -always-use-fragments';
45
+ if (process.arch === 'ia32') {
46
+ // options = '-b 1M'
47
+ }
48
+ const comp = `xz -Xbcj ${filter} ${options}`;
49
+ return comp;
50
+ }
51
+ pendrive(level = '15') {
52
+ let comp = 'gzip';
53
+ if (this.isEnabled.zstd) {
54
+ comp = `zstd -b 1M -Xcompression-level ${level}`;
55
+ }
56
+ else if (this.isEnabled.lz4) {
57
+ comp = 'lz4';
58
+ }
59
+ return comp;
60
+ }
61
+ /**
62
+ * populate
63
+ */
64
+ async populate() {
65
+ await this.prepareCheck();
66
+ this.isEnabled.error = await this.check('error');
67
+ this.isEnabled.lzma = await this.check('lzma');
68
+ this.isEnabled.lzo = await this.check('lzo');
69
+ this.isEnabled.lz4 = await this.check('lz4');
70
+ this.isEnabled.xz = await this.check('xz');
71
+ this.isEnabled.zstd = await this.check('zstd');
72
+ await this.removeCheck();
73
+ }
74
+ /**
75
+ * standard
76
+ * @returns
77
+ */
78
+ standard() {
79
+ const comp = 'xz -b 1M';
80
+ return comp;
81
+ }
82
+ /**
83
+ * check mksquashfs exists
84
+ * @param compressor
85
+ * @returns
86
+ */
87
+ async check(compressor) {
88
+ let result = false;
89
+ const { stderr } = shx.exec('mksquashfs ' + this.source + ' ' + this.dest + ' -comp ' + compressor + ' -no-xattrs -ef ' + this.dest, { silent: true });
90
+ if (stderr === '') {
91
+ result = true;
92
+ }
93
+ return result;
94
+ }
95
+ /**
96
+ * prepareCheck
97
+ */
98
+ async prepareCheck() {
99
+ shx.exec('rm -rf ' + this.source, { silent: true });
100
+ shx.exec('mkdir ' + this.source, { silent: true });
101
+ }
102
+ /**
103
+ * removeCheck
104
+ */
105
+ async removeCheck() {
106
+ shx.exec('rm -rf ' + this.source, { silent: true });
107
+ shx.exec('rm -f ' + this.dest, { silent: true });
108
+ }
109
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * ./src/classes/daddy.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import Settings from '../classes/settings.js';
9
+ import { IEggsConfig } from '../interfaces/i-eggs-config.js';
10
+ export default class Daddy {
11
+ settings: Settings;
12
+ /**
13
+ * editConfif
14
+ * @param c
15
+ * @returns
16
+ */
17
+ editConfig(c: IEggsConfig): Promise<string>;
18
+ /**
19
+ *
20
+ * @param reset
21
+ * @param isCustom
22
+ * @param fileCustom
23
+ * @param verbose
24
+ */
25
+ helpMe(reset?: boolean, isCustom?: boolean, fileCustom?: string, verbose?: boolean): Promise<void>;
26
+ }