penguins-eggs 25.7.10 → 25.7.22

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 (438) hide show
  1. package/.oclif.manifest.json +1 -1
  2. package/README.md +62 -48
  3. package/README.pdf +5870 -18
  4. package/conf/distros/alpine/calamares/calamares-modules/machineid-openrc/machineid-openrc.sh +4 -0
  5. package/conf/distros/alpine/calamares/calamares-modules/machineid-openrc/module.yml +8 -0
  6. package/conf/distros/alpine/calamares/modules/removeuser.yml +1 -1
  7. package/conf/distros/alpine/calamares/modules/services-openrc.yml +56 -0
  8. package/conf/distros/alpine/calamares/modules/users.yml +3 -2
  9. package/conf/distros/alpine/calamares/settings.yml +9 -11
  10. package/conf/distros/buster/calamares/settings.yml +0 -4
  11. package/conf/distros/fedora/calamares/calamares-modules/bootloaderspecification/bootloaderspecification.sh +37 -0
  12. package/conf/distros/fedora/calamares/calamares-modules/bootloaderspecification/module.yml +8 -0
  13. package/conf/distros/fedora/calamares/modules/dracut.yml +14 -0
  14. package/conf/distros/fedora/calamares/modules/removeuser.yml +1 -1
  15. package/conf/distros/fedora/calamares/settings.yml +1 -0
  16. package/conf/distros/jessie/krill/settings.yml +1 -1
  17. package/conf/distros/opensuse/calamares/calamares-modules/bootloaderspecification/bootloaderspecification.sh +37 -0
  18. package/conf/distros/opensuse/calamares/calamares-modules/bootloaderspecification/module.yml +8 -0
  19. package/conf/distros/opensuse/calamares/modules/dracut.yml +14 -0
  20. package/conf/distros/opensuse/calamares/settings.yml +2 -1
  21. package/conf/distros/stretch/krill/settings.yml +1 -1
  22. package/dist/classes/bleach.d.ts +1 -1
  23. package/dist/classes/bleach.js +1 -1
  24. package/dist/classes/cli-autologin.d.ts +1 -1
  25. package/dist/classes/cli-autologin.js +1 -1
  26. package/dist/classes/compressors.d.ts +1 -1
  27. package/dist/classes/compressors.js +1 -1
  28. package/dist/classes/daddy.d.ts +1 -1
  29. package/dist/classes/daddy.js +1 -1
  30. package/dist/classes/distro.d.ts +3 -27
  31. package/dist/classes/distro.js +322 -352
  32. package/dist/classes/diversions.d.ts +1 -1
  33. package/dist/classes/diversions.js +1 -1
  34. package/dist/classes/incubation/branding.d.ts +1 -1
  35. package/dist/classes/incubation/branding.js +1 -1
  36. package/dist/classes/incubation/fisherman-helper/displaymanager.d.ts +1 -1
  37. package/dist/classes/incubation/fisherman-helper/displaymanager.js +1 -1
  38. package/dist/classes/incubation/fisherman-helper/packages.d.ts +1 -1
  39. package/dist/classes/incubation/fisherman-helper/packages.js +1 -1
  40. package/dist/classes/incubation/fisherman-helper/settings.d.ts +1 -1
  41. package/dist/classes/incubation/fisherman-helper/settings.js +1 -1
  42. package/dist/classes/incubation/fisherman.d.ts +4 -0
  43. package/dist/classes/incubation/fisherman.js +9 -1
  44. package/dist/classes/incubation/incubator.d/alpine.d.ts +1 -1
  45. package/dist/classes/incubation/incubator.d/alpine.js +3 -3
  46. package/dist/classes/incubation/incubator.d/bionic.d.ts +1 -1
  47. package/dist/classes/incubation/incubator.d/bionic.js +1 -1
  48. package/dist/classes/incubation/incubator.d/buster.d.ts +1 -1
  49. package/dist/classes/incubation/incubator.d/buster.js +2 -2
  50. package/dist/classes/incubation/incubator.d/fedora.d.ts +1 -1
  51. package/dist/classes/incubation/incubator.d/fedora.js +6 -5
  52. package/dist/classes/incubation/incubator.d/jessie.d.ts +1 -1
  53. package/dist/classes/incubation/incubator.d/jessie.js +1 -1
  54. package/dist/classes/incubation/incubator.d/noble.d.ts +1 -1
  55. package/dist/classes/incubation/incubator.d/noble.js +1 -1
  56. package/dist/classes/incubation/incubator.d/openmamba.d.ts +1 -1
  57. package/dist/classes/incubation/incubator.d/openmamba.js +2 -2
  58. package/dist/classes/incubation/incubator.d/opensuse.d.ts +1 -1
  59. package/dist/classes/incubation/incubator.d/opensuse.js +3 -4
  60. package/dist/classes/incubation/incubator.d/rolling.d.ts +1 -1
  61. package/dist/classes/incubation/incubator.d/rolling.js +2 -2
  62. package/dist/classes/incubation/incubator.d.ts +1 -1
  63. package/dist/classes/incubation/incubator.js +110 -101
  64. package/dist/classes/incubation/installer.d.ts +1 -1
  65. package/dist/classes/incubation/installer.js +1 -1
  66. package/dist/classes/keyboards.d.ts +1 -1
  67. package/dist/classes/keyboards.js +1 -1
  68. package/dist/classes/locales.d.ts +1 -1
  69. package/dist/classes/locales.js +1 -1
  70. package/dist/classes/network.d.ts +1 -1
  71. package/dist/classes/network.js +1 -1
  72. package/dist/classes/ovary.d/bind-live-fs.d.ts +1 -1
  73. package/dist/classes/ovary.d/bind-live-fs.js +13 -5
  74. package/dist/classes/ovary.d/bind-vfs.d.ts +1 -1
  75. package/dist/classes/ovary.d/bind-vfs.js +1 -1
  76. package/dist/classes/ovary.d/create-xdg-autostart.d.ts +1 -1
  77. package/dist/classes/ovary.d/create-xdg-autostart.js +1 -1
  78. package/dist/classes/ovary.d/edit-live-fs.d.ts +1 -1
  79. package/dist/classes/ovary.d/edit-live-fs.js +1 -1
  80. package/dist/classes/ovary.d/fertilization.d.ts +1 -1
  81. package/dist/classes/ovary.d/fertilization.js +1 -1
  82. package/dist/classes/ovary.d/finished.d.ts +1 -1
  83. package/dist/classes/ovary.d/finished.js +6 -3
  84. package/dist/classes/ovary.d/initrd.d.ts +1 -1
  85. package/dist/classes/ovary.d/initrd.js +1 -1
  86. package/dist/classes/ovary.d/kernel-copy.d.ts +1 -1
  87. package/dist/classes/ovary.d/kernel-copy.js +1 -1
  88. package/dist/classes/ovary.d/live-create-structure.d.ts +1 -1
  89. package/dist/classes/ovary.d/live-create-structure.js +1 -1
  90. package/dist/classes/ovary.d/make-dot-disk.d.ts +1 -1
  91. package/dist/classes/ovary.d/make-dot-disk.js +1 -1
  92. package/dist/classes/ovary.d/make-efi.d.ts +1 -1
  93. package/dist/classes/ovary.d/make-efi.js +1 -1
  94. package/dist/classes/ovary.d/make-iso.d.ts +1 -1
  95. package/dist/classes/ovary.d/make-iso.js +1 -1
  96. package/dist/classes/ovary.d/make-squashfs.d.ts +1 -1
  97. package/dist/classes/ovary.d/make-squashfs.js +1 -1
  98. package/dist/classes/ovary.d/merged.d.ts +1 -1
  99. package/dist/classes/ovary.d/merged.js +6 -6
  100. package/dist/classes/ovary.d/produce.d.ts +1 -1
  101. package/dist/classes/ovary.d/produce.js +18 -1
  102. package/dist/classes/ovary.d/rexec.d.ts +1 -1
  103. package/dist/classes/ovary.d/rexec.js +1 -1
  104. package/dist/classes/ovary.d/syslinux.d.ts +1 -1
  105. package/dist/classes/ovary.d/syslinux.js +1 -1
  106. package/dist/classes/ovary.d/user-create-live.d.ts +1 -1
  107. package/dist/classes/ovary.d/user-create-live.js +3 -3
  108. package/dist/classes/ovary.d/users-remove.d.ts +1 -1
  109. package/dist/classes/ovary.d/users-remove.js +1 -1
  110. package/dist/classes/ovary.d/xorriso-command.d.ts +1 -1
  111. package/dist/classes/ovary.d/xorriso-command.js +1 -1
  112. package/dist/classes/ovary.d.ts +1 -1
  113. package/dist/classes/ovary.js +1 -1
  114. package/dist/classes/pacman.d/aldos.d.ts +1 -1
  115. package/dist/classes/pacman.d/aldos.js +1 -1
  116. package/dist/classes/pacman.d/alpine.d.ts +1 -1
  117. package/dist/classes/pacman.d/alpine.js +1 -1
  118. package/dist/classes/pacman.d/archlinux.d.ts +1 -1
  119. package/dist/classes/pacman.d/archlinux.js +1 -1
  120. package/dist/classes/pacman.d/debian.d.ts +1 -1
  121. package/dist/classes/pacman.d/debian.js +1 -1
  122. package/dist/classes/pacman.d/fedora.d.ts +1 -1
  123. package/dist/classes/pacman.d/fedora.js +1 -1
  124. package/dist/classes/pacman.d/openmamba.d.ts +1 -1
  125. package/dist/classes/pacman.d/openmamba.js +1 -1
  126. package/dist/classes/pacman.d/opensuse.d.ts +1 -1
  127. package/dist/classes/pacman.d/opensuse.js +1 -1
  128. package/dist/classes/pacman.d/voidlinux.d.ts +1 -1
  129. package/dist/classes/pacman.d/voidlinux.js +1 -1
  130. package/dist/classes/pacman.d.ts +1 -1
  131. package/dist/classes/pacman.js +1 -1
  132. package/dist/classes/pve-live.d.ts +1 -1
  133. package/dist/classes/pve-live.js +1 -1
  134. package/dist/classes/pxe.d.ts +1 -1
  135. package/dist/classes/pxe.js +1 -1
  136. package/dist/classes/settings.d.ts +1 -1
  137. package/dist/classes/settings.js +1 -1
  138. package/dist/classes/sources_list.d.ts +1 -1
  139. package/dist/classes/sources_list.js +1 -1
  140. package/dist/classes/tailor.d.ts +1 -1
  141. package/dist/classes/tailor.js +1 -1
  142. package/dist/classes/tools.d.ts +1 -1
  143. package/dist/classes/tools.js +1 -1
  144. package/dist/classes/users.d.ts +1 -1
  145. package/dist/classes/users.js +1 -1
  146. package/dist/classes/utils.d/kernel.d.ts +16 -12
  147. package/dist/classes/utils.d/kernel.js +98 -18
  148. package/dist/classes/utils.d.ts +309 -78
  149. package/dist/classes/utils.js +913 -89
  150. package/dist/classes/xdg.d.ts +1 -1
  151. package/dist/classes/xdg.js +1 -1
  152. package/dist/classes/yolk.d.ts +1 -1
  153. package/dist/classes/yolk.js +1 -1
  154. package/dist/commands/adapt.d.ts +1 -1
  155. package/dist/commands/adapt.js +1 -1
  156. package/dist/commands/analyze.d.ts +1 -1
  157. package/dist/commands/analyze.js +1 -1
  158. package/dist/commands/calamares.d.ts +1 -1
  159. package/dist/commands/calamares.js +1 -1
  160. package/dist/commands/config.d.ts +1 -1
  161. package/dist/commands/config.js +1 -1
  162. package/dist/commands/cuckoo.d.ts +1 -1
  163. package/dist/commands/cuckoo.js +1 -1
  164. package/dist/commands/dad.d.ts +1 -1
  165. package/dist/commands/dad.js +1 -1
  166. package/dist/commands/export/iso.d.ts +1 -1
  167. package/dist/commands/export/iso.js +1 -1
  168. package/dist/commands/export/pkg.d.ts +1 -1
  169. package/dist/commands/export/pkg.js +1 -1
  170. package/dist/commands/export/tarballs.d.ts +1 -1
  171. package/dist/commands/export/tarballs.js +2 -2
  172. package/dist/commands/install.d.ts +1 -1
  173. package/dist/commands/install.js +1 -1
  174. package/dist/commands/kill.d.ts +1 -1
  175. package/dist/commands/kill.js +1 -1
  176. package/dist/commands/love.d.ts +1 -1
  177. package/dist/commands/love.js +1 -1
  178. package/dist/commands/mom.d.ts +1 -1
  179. package/dist/commands/mom.js +1 -1
  180. package/dist/commands/pods.d.ts +1 -1
  181. package/dist/commands/pods.js +1 -1
  182. package/dist/commands/produce.d.ts +1 -1
  183. package/dist/commands/produce.js +1 -1
  184. package/dist/commands/status.d.ts +1 -1
  185. package/dist/commands/status.js +1 -1
  186. package/dist/commands/syncfrom.d.ts +1 -1
  187. package/dist/commands/syncfrom.js +1 -1
  188. package/dist/commands/syncto.d.ts +1 -1
  189. package/dist/commands/syncto.js +1 -1
  190. package/dist/commands/tools/clean.d.ts +1 -1
  191. package/dist/commands/tools/clean.js +1 -1
  192. package/dist/commands/tools/ppa.d.ts +1 -1
  193. package/dist/commands/tools/ppa.js +1 -1
  194. package/dist/commands/tools/skel.d.ts +1 -1
  195. package/dist/commands/tools/skel.js +1 -1
  196. package/dist/commands/tools/stat.d.ts +1 -1
  197. package/dist/commands/tools/stat.js +1 -1
  198. package/dist/commands/tools/yolk.d.ts +1 -1
  199. package/dist/commands/tools/yolk.js +1 -1
  200. package/dist/commands/update.d.ts +1 -1
  201. package/dist/commands/update.js +1 -1
  202. package/dist/commands/wardrobe/get.d.ts +1 -1
  203. package/dist/commands/wardrobe/get.js +1 -1
  204. package/dist/commands/wardrobe/list.d.ts +1 -1
  205. package/dist/commands/wardrobe/list.js +1 -1
  206. package/dist/commands/wardrobe/show.d.ts +1 -1
  207. package/dist/commands/wardrobe/show.js +1 -1
  208. package/dist/commands/wardrobe/wear.d.ts +1 -1
  209. package/dist/commands/wardrobe/wear.js +1 -1
  210. package/dist/index.d.ts +1 -1
  211. package/dist/index.js +1 -1
  212. package/dist/interfaces/i-addons.d.ts +1 -1
  213. package/dist/interfaces/i-addons.js +1 -1
  214. package/dist/interfaces/i-analyze.d.ts +1 -1
  215. package/dist/interfaces/i-analyze.js +1 -1
  216. package/dist/interfaces/i-app.d.ts +1 -1
  217. package/dist/interfaces/i-app.js +1 -1
  218. package/dist/interfaces/i-branding.d.ts +1 -1
  219. package/dist/interfaces/i-branding.js +1 -1
  220. package/dist/interfaces/i-calamares-displaymanager.d.ts +1 -1
  221. package/dist/interfaces/i-calamares-finished.d.ts +1 -1
  222. package/dist/interfaces/i-calamares-packages.d.ts +1 -1
  223. package/dist/interfaces/i-calamares-partition.d.ts +1 -1
  224. package/dist/interfaces/i-config-tools.d.ts +1 -1
  225. package/dist/interfaces/i-config-tools.js +1 -1
  226. package/dist/interfaces/i-devices.d.ts +1 -1
  227. package/dist/interfaces/i-devices.js +1 -1
  228. package/dist/interfaces/i-distro.d.ts +1 -1
  229. package/dist/interfaces/i-distro.js +1 -1
  230. package/dist/interfaces/i-drive-list.d.ts +1 -1
  231. package/dist/interfaces/i-drive-list.js +1 -1
  232. package/dist/interfaces/i-eggs-config.d.ts +1 -1
  233. package/dist/interfaces/i-eggs-config.js +1 -1
  234. package/dist/interfaces/i-excludes.d.ts +1 -1
  235. package/dist/interfaces/i-excludes.js +1 -1
  236. package/dist/interfaces/i-exec.d.ts +1 -1
  237. package/dist/interfaces/i-exec.js +1 -1
  238. package/dist/interfaces/i-initrd.d.ts +1 -1
  239. package/dist/interfaces/i-initrd.js +1 -1
  240. package/dist/interfaces/i-install.d.ts +1 -1
  241. package/dist/interfaces/i-install.js +1 -1
  242. package/dist/interfaces/i-installer.d.ts +1 -1
  243. package/dist/interfaces/i-installer.js +1 -1
  244. package/dist/interfaces/i-luks-passphrase.d.ts +1 -1
  245. package/dist/interfaces/i-luks-passphrase.js +1 -1
  246. package/dist/interfaces/i-materia.d.ts +1 -1
  247. package/dist/interfaces/i-materia.js +1 -1
  248. package/dist/interfaces/i-net.d.ts +1 -1
  249. package/dist/interfaces/i-net.js +1 -1
  250. package/dist/interfaces/i-packages.d.ts +1 -1
  251. package/dist/interfaces/i-packages.js +1 -1
  252. package/dist/interfaces/i-partitions.d.ts +1 -1
  253. package/dist/interfaces/i-partitions.js +1 -1
  254. package/dist/interfaces/i-remix.d.ts +1 -1
  255. package/dist/interfaces/i-remix.js +1 -1
  256. package/dist/interfaces/i-settings.d.ts +1 -1
  257. package/dist/interfaces/i-settings.js +1 -1
  258. package/dist/interfaces/i-user.d.ts +1 -1
  259. package/dist/interfaces/i-user.js +1 -1
  260. package/dist/interfaces/i-workdir.d.ts +1 -1
  261. package/dist/interfaces/i-workdir.js +1 -1
  262. package/dist/interfaces/i-xkb-model.d.ts +1 -1
  263. package/dist/interfaces/i-xkb-model.js +1 -1
  264. package/dist/interfaces/index.d.ts +1 -1
  265. package/dist/interfaces/index.js +1 -1
  266. package/dist/krill/classes/cfs.d.ts +1 -1
  267. package/dist/krill/classes/cfs.js +1 -1
  268. package/dist/krill/classes/krill_enums.d.ts +1 -1
  269. package/dist/krill/classes/krill_enums.js +1 -1
  270. package/dist/krill/classes/prepare.d/keyboard.d.ts +1 -1
  271. package/dist/krill/classes/prepare.d/keyboard.js +1 -1
  272. package/dist/krill/classes/prepare.d/location.d.ts +1 -1
  273. package/dist/krill/classes/prepare.d/location.js +1 -1
  274. package/dist/krill/classes/prepare.d/network.d.ts +1 -1
  275. package/dist/krill/classes/prepare.d/network.js +1 -1
  276. package/dist/krill/classes/prepare.d/partitions.d.ts +1 -1
  277. package/dist/krill/classes/prepare.d/partitions.js +1 -1
  278. package/dist/krill/classes/prepare.d/summary.d.ts +1 -1
  279. package/dist/krill/classes/prepare.d/summary.js +1 -1
  280. package/dist/krill/classes/prepare.d/users.js +1 -1
  281. package/dist/krill/classes/prepare.d/welcome.js +1 -1
  282. package/dist/krill/classes/prepare.d.ts +1 -1
  283. package/dist/krill/classes/prepare.js +1 -1
  284. package/dist/krill/classes/sequence.d/add_user.d.ts +1 -1
  285. package/dist/krill/classes/sequence.d/add_user.js +2 -2
  286. package/dist/krill/classes/sequence.d/bootloader.d.ts +1 -1
  287. package/dist/krill/classes/sequence.d/bootloader.js +1 -1
  288. package/dist/krill/classes/sequence.d/bootloader_config.d.ts +1 -1
  289. package/dist/krill/classes/sequence.d/bootloader_config.js +1 -1
  290. package/dist/krill/classes/sequence.d/change_password.d.ts +1 -1
  291. package/dist/krill/classes/sequence.d/change_password.js +2 -2
  292. package/dist/krill/classes/sequence.d/del_live_user.d.ts +1 -1
  293. package/dist/krill/classes/sequence.d/del_live_user.js +1 -1
  294. package/dist/krill/classes/sequence.d/fstab.d.ts +1 -1
  295. package/dist/krill/classes/sequence.d/fstab.js +1 -1
  296. package/dist/krill/classes/sequence.d/grubcfg.d.ts +1 -1
  297. package/dist/krill/classes/sequence.d/grubcfg.js +1 -1
  298. package/dist/krill/classes/sequence.d/hostname.d.ts +1 -1
  299. package/dist/krill/classes/sequence.d/hostname.js +1 -1
  300. package/dist/krill/classes/sequence.d/initramfs.d.ts +1 -1
  301. package/dist/krill/classes/sequence.d/initramfs.js +1 -1
  302. package/dist/krill/classes/sequence.d/initramfs_cfg.d.ts +1 -1
  303. package/dist/krill/classes/sequence.d/initramfs_cfg.js +1 -1
  304. package/dist/krill/classes/sequence.d/locale.d.ts +1 -1
  305. package/dist/krill/classes/sequence.d/locale.js +1 -1
  306. package/dist/krill/classes/sequence.d/locale_cfg.d.ts +1 -1
  307. package/dist/krill/classes/sequence.d/locale_cfg.js +1 -1
  308. package/dist/krill/classes/sequence.d/m_keyboard.d.ts +1 -1
  309. package/dist/krill/classes/sequence.d/m_keyboard.js +1 -1
  310. package/dist/krill/classes/sequence.d/mkfs.d.ts +1 -1
  311. package/dist/krill/classes/sequence.d/mkfs.js +1 -1
  312. package/dist/krill/classes/sequence.d/mount_fs.d.ts +1 -1
  313. package/dist/krill/classes/sequence.d/mount_fs.js +1 -1
  314. package/dist/krill/classes/sequence.d/mount_vfs.d.ts +1 -1
  315. package/dist/krill/classes/sequence.d/mount_vfs.js +1 -1
  316. package/dist/krill/classes/sequence.d/network_cfg.d.ts +1 -1
  317. package/dist/krill/classes/sequence.d/network_cfg.js +1 -1
  318. package/dist/krill/classes/sequence.d/packages.d.ts +1 -1
  319. package/dist/krill/classes/sequence.d/packages.js +1 -1
  320. package/dist/krill/classes/sequence.d/partition.d/bios_luks.d.ts +1 -1
  321. package/dist/krill/classes/sequence.d/partition.d/bios_luks.js +1 -1
  322. package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +1 -1
  323. package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +1 -1
  324. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.d.ts +1 -1
  325. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.js +1 -1
  326. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.d.ts +1 -1
  327. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +1 -1
  328. package/dist/krill/classes/sequence.d/partition.d.ts +1 -1
  329. package/dist/krill/classes/sequence.d/partition.js +1 -1
  330. package/dist/krill/classes/sequence.d/remove_installer_link.d.ts +1 -1
  331. package/dist/krill/classes/sequence.d/remove_installer_link.js +1 -1
  332. package/dist/krill/classes/sequence.d/umount.d.ts +1 -1
  333. package/dist/krill/classes/sequence.d/umount.js +1 -1
  334. package/dist/krill/classes/sequence.d/unpackfs.d.ts +1 -1
  335. package/dist/krill/classes/sequence.d/unpackfs.js +1 -1
  336. package/dist/krill/classes/sequence.d.ts +1 -1
  337. package/dist/krill/classes/sequence.js +1 -1
  338. package/dist/krill/components/finished.d.ts +1 -1
  339. package/dist/krill/components/finished.js +1 -1
  340. package/dist/krill/components/information.d.ts +1 -1
  341. package/dist/krill/components/information.js +1 -1
  342. package/dist/krill/components/install.d.ts +1 -1
  343. package/dist/krill/components/install.js +1 -1
  344. package/dist/krill/components/keyboard.d.ts +1 -1
  345. package/dist/krill/components/keyboard.js +1 -1
  346. package/dist/krill/components/location.d.ts +1 -1
  347. package/dist/krill/components/location.js +1 -1
  348. package/dist/krill/components/network.d.ts +1 -1
  349. package/dist/krill/components/network.js +1 -1
  350. package/dist/krill/components/partitions.d.ts +1 -1
  351. package/dist/krill/components/partitions.js +1 -1
  352. package/dist/krill/components/steps.d.ts +1 -1
  353. package/dist/krill/components/steps.js +1 -1
  354. package/dist/krill/components/summary.d.ts +1 -1
  355. package/dist/krill/components/summary.js +1 -1
  356. package/dist/krill/components/title.d.ts +1 -1
  357. package/dist/krill/components/title.js +1 -1
  358. package/dist/krill/components/users.d.ts +1 -1
  359. package/dist/krill/components/users.js +1 -1
  360. package/dist/krill/components/welcome.d.ts +1 -1
  361. package/dist/krill/components/welcome.js +1 -1
  362. package/dist/krill/interfaces/i_krill.d.ts +1 -1
  363. package/dist/krill/interfaces/i_krill.js +1 -1
  364. package/dist/krill/interfaces/i_krill_config.d.ts +1 -1
  365. package/dist/krill/interfaces/i_krill_config.js +1 -1
  366. package/dist/krill/lib/get_address.d.ts +1 -1
  367. package/dist/krill/lib/get_address.js +1 -1
  368. package/dist/krill/lib/get_dns.d.ts +1 -1
  369. package/dist/krill/lib/get_dns.js +1 -1
  370. package/dist/krill/lib/get_domain.d.ts +1 -1
  371. package/dist/krill/lib/get_domain.js +1 -1
  372. package/dist/krill/lib/get_gateway.d.ts +1 -1
  373. package/dist/krill/lib/get_gateway.js +1 -1
  374. package/dist/krill/lib/get_hostname.d.ts +1 -1
  375. package/dist/krill/lib/get_hostname.js +1 -1
  376. package/dist/krill/lib/get_luks_passphrase.d.ts +1 -1
  377. package/dist/krill/lib/get_luks_passphrase.js +1 -1
  378. package/dist/krill/lib/get_netmask.d.ts +1 -1
  379. package/dist/krill/lib/get_netmask.js +1 -1
  380. package/dist/krill/lib/get_password.d.ts +1 -1
  381. package/dist/krill/lib/get_password.js +1 -1
  382. package/dist/krill/lib/get_userfullname.d.ts +1 -1
  383. package/dist/krill/lib/get_userfullname.js +1 -1
  384. package/dist/krill/lib/get_username.d.ts +1 -1
  385. package/dist/krill/lib/get_username.js +1 -1
  386. package/dist/krill/lib/select_address_type.d.ts +1 -1
  387. package/dist/krill/lib/select_address_type.js +1 -1
  388. package/dist/krill/lib/select_filesystem_type.d.ts +1 -1
  389. package/dist/krill/lib/select_filesystem_type.js +1 -1
  390. package/dist/krill/lib/select_installation_device.d.ts +1 -1
  391. package/dist/krill/lib/select_installation_device.js +1 -1
  392. package/dist/krill/lib/select_installation_mode.d.ts +1 -1
  393. package/dist/krill/lib/select_installation_mode.js +1 -1
  394. package/dist/krill/lib/select_interface.d.ts +1 -1
  395. package/dist/krill/lib/select_interface.js +1 -1
  396. package/dist/krill/lib/select_keyboard_layout.d.ts +1 -1
  397. package/dist/krill/lib/select_keyboard_layout.js +1 -1
  398. package/dist/krill/lib/select_keyboard_model.d.ts +1 -1
  399. package/dist/krill/lib/select_keyboard_model.js +1 -1
  400. package/dist/krill/lib/select_keyboard_option.d.ts +1 -1
  401. package/dist/krill/lib/select_keyboard_option.js +1 -1
  402. package/dist/krill/lib/select_keyboard_variant.d.ts +1 -1
  403. package/dist/krill/lib/select_keyboard_variant.js +1 -1
  404. package/dist/krill/lib/select_languages.d.ts +1 -1
  405. package/dist/krill/lib/select_languages.js +1 -1
  406. package/dist/krill/lib/select_regions.d.ts +1 -1
  407. package/dist/krill/lib/select_regions.js +1 -1
  408. package/dist/krill/lib/select_replaced_partition.d.ts +1 -1
  409. package/dist/krill/lib/select_replaced_partition.js +1 -1
  410. package/dist/krill/lib/select_user_swap_choice.d.ts +1 -1
  411. package/dist/krill/lib/select_user_swap_choice.js +1 -1
  412. package/dist/krill/lib/select_zones.d.ts +1 -1
  413. package/dist/krill/lib/select_zones.js +1 -1
  414. package/dist/lib/kill_me_softly.d.ts +1 -1
  415. package/dist/lib/kill_me_softly.js +1 -1
  416. package/dist/lib/utils.d.ts +1 -1
  417. package/dist/lib/utils.js +1 -1
  418. package/package.json +7 -7
  419. package/conf/distros/alpine/calamares/modules/machineid.yml +0 -17
  420. package/dist/classes/utils.d/architecture.d.ts +0 -41
  421. package/dist/classes/utils.d/architecture.js +0 -87
  422. package/dist/classes/utils.d/console-output.d.ts +0 -26
  423. package/dist/classes/utils.d/console-output.js +0 -46
  424. package/dist/classes/utils.d/filesystem.d.ts +0 -53
  425. package/dist/classes/utils.d/filesystem.js +0 -154
  426. package/dist/classes/utils.d/formatters.d.ts +0 -32
  427. package/dist/classes/utils.d/formatters.js +0 -64
  428. package/dist/classes/utils.d/network.d.ts +0 -43
  429. package/dist/classes/utils.d/network.js +0 -133
  430. package/dist/classes/utils.d/package-info.d.ts +0 -55
  431. package/dist/classes/utils.d/package-info.js +0 -137
  432. package/dist/classes/utils.d/snapshot.d.ts +0 -44
  433. package/dist/classes/utils.d/snapshot.js +0 -102
  434. package/dist/classes/utils.d/system.d.ts +0 -63
  435. package/dist/classes/utils.d/system.js +0 -200
  436. package/dist/classes/utils.d/user-interaction.d.ts +0 -39
  437. package/dist/classes/utils.d/user-interaction.js +0 -104
  438. package/dist/penguins-eggs_25.7.10-1-linux-x64.tar.gz +0 -0
@@ -1,5 +1,5 @@
1
1
  /**
2
- * penguins-eggs - Refactored distros.ts
2
+ * penguins-eggs
3
3
  * class: distro.ts
4
4
  * author: Piero Proietti
5
5
  * email: piero.proietti@gmail.com
@@ -14,256 +14,7 @@ import Diversions from './diversions.js';
14
14
  // _dirname
15
15
  const __dirname = path.dirname(new URL(import.meta.url).pathname);
16
16
  /**
17
- * Default configurations for each family
18
- */
19
- const FAMILY_CONFIGS = {
20
- debian: {
21
- familyId: 'debian',
22
- distroLike: 'Debian',
23
- codenameId: '',
24
- codenameLikeId: '',
25
- liveMediumPath: '/run/live/medium/',
26
- isCalamaresAvailable: true
27
- },
28
- archlinux: {
29
- familyId: 'archlinux',
30
- distroLike: 'Arch',
31
- codenameId: 'rolling',
32
- codenameLikeId: 'rolling',
33
- liveMediumPath: '/run/archiso/bootmnt/',
34
- squashfs: 'arch/x86_64/airootfs.sfs'
35
- },
36
- fedora: {
37
- familyId: 'fedora',
38
- distroLike: 'Fedora',
39
- codenameId: 'rolling',
40
- codenameLikeId: 'fedora',
41
- liveMediumPath: '/run/initramfs/live/'
42
- },
43
- alpine: {
44
- familyId: 'alpine',
45
- distroLike: 'Alpine',
46
- codenameId: 'rolling',
47
- codenameLikeId: 'alpine',
48
- liveMediumPath: '/mnt/'
49
- },
50
- opensuse: {
51
- familyId: 'opensuse',
52
- distroLike: 'Opensuse',
53
- codenameId: 'rolling',
54
- codenameLikeId: 'opensuse',
55
- liveMediumPath: '/run/initramfs/live/',
56
- usrLibPath: '/usr/lib64/'
57
- },
58
- openmamba: {
59
- familyId: 'openmamba',
60
- distroLike: 'openmamba',
61
- codenameId: 'rolling',
62
- codenameLikeId: 'openmamba',
63
- liveMediumPath: '/run/initramfs/live/'
64
- },
65
- voidlinux: {
66
- familyId: 'voidlinux',
67
- distroLike: 'Voidlinux',
68
- codenameId: 'rolling',
69
- codenameLikeId: 'voidlinux',
70
- liveMediumPath: '/run/initramfs/live/'
71
- }
72
- };
73
- /**
74
- * Special codename configurations
75
- */
76
- const CODENAME_CONFIGS = {
77
- // Debian versions
78
- jessie: { distroLike: 'Debian', codenameLikeId: 'jessie', liveMediumPath: '/lib/live/mount/medium/', isCalamaresAvailable: false },
79
- stretch: { distroLike: 'Debian', codenameLikeId: 'stretch', liveMediumPath: '/lib/live/mount/medium/', isCalamaresAvailable: false },
80
- buster: { distroLike: 'Debian', codenameLikeId: 'buster' },
81
- bullseye: { distroLike: 'Debian', codenameLikeId: 'bullseye' },
82
- bookworm: { distroLike: 'Debian', codenameLikeId: 'bookworm' },
83
- trixie: { distroLike: 'Debian', codenameLikeId: 'trixie' },
84
- // Devuan versions
85
- beowulf: { distroLike: 'Devuan', codenameLikeId: 'beowulf' },
86
- chimaera: { distroLike: 'Devuan', codenameLikeId: 'chimaera' },
87
- daedalus: { distroLike: 'Devuan', codenameLikeId: 'daedalus' },
88
- excalibur: { distroLike: 'Devuan', codenameLikeId: 'excalibur' },
89
- // Ubuntu versions
90
- bionic: { distroLike: 'Ubuntu', codenameLikeId: 'bionic', liveMediumPath: '/lib/live/mount/medium/' },
91
- focal: { distroLike: 'Ubuntu', codenameLikeId: 'focal' },
92
- jammy: { distroLike: 'Ubuntu', codenameLikeId: 'jammy' },
93
- noble: { distroLike: 'Ubuntu', codenameLikeId: 'noble' },
94
- devel: { distroLike: 'Ubuntu', codenameLikeId: 'devel' }
95
- };
96
- /**
97
- * Distribution family detector
98
- */
99
- class DistroDetector {
100
- static detectByDistroId(distroId) {
101
- const fedoraDistros = ['Almalinux', 'Fedora', 'Nobara', 'Rocky'];
102
- if (distroId === 'Alpine')
103
- return 'alpine';
104
- if (fedoraDistros.includes(distroId))
105
- return 'fedora';
106
- if (distroId === 'Openmamba')
107
- return 'openmamba';
108
- if (distroId.includes('Opensuse'))
109
- return 'opensuse';
110
- if (distroId === 'Voidlinux')
111
- return 'voidlinux';
112
- return null;
113
- }
114
- static detectByCodename(codenameId) {
115
- if (codenameId === 'rolling' || codenameId === 'n/a')
116
- return 'archlinux';
117
- if (CODENAME_CONFIGS[codenameId])
118
- return 'debian'; // All debian-family codenames
119
- return null;
120
- }
121
- static detectFromDerivatives(distroId, codenameId) {
122
- // Check debian/arch derivatives
123
- const derivativesPath = this.getDerivativesPath('derivatives.yaml');
124
- if (fs.existsSync(derivativesPath)) {
125
- const result = this.searchInDerivatives(derivativesPath, codenameId);
126
- if (result)
127
- return result;
128
- }
129
- // Check fedora derivatives
130
- const fedoraDerivativesPath = this.getDerivativesPath('derivatives_fedora.yaml');
131
- if (fs.existsSync(fedoraDerivativesPath)) {
132
- const result = this.searchInFedoraDerivatives(fedoraDerivativesPath, distroId);
133
- if (result)
134
- return result;
135
- }
136
- return null;
137
- }
138
- static getDerivativesPath(filename) {
139
- const userPath = `/etc/penguins-eggs.d/${filename}`;
140
- const defaultPath = path.resolve(__dirname, `../../conf/${filename}`);
141
- return fs.existsSync(userPath) ? userPath : defaultPath;
142
- }
143
- static searchInDerivatives(filePath, codenameId) {
144
- try {
145
- const content = fs.readFileSync(filePath, 'utf8');
146
- const distros = yaml.load(content);
147
- for (const distro of distros) {
148
- if (distro.ids?.includes(codenameId)) {
149
- return {
150
- familyId: distro.family,
151
- config: {
152
- distroLike: distro.distroLike,
153
- codenameLikeId: distro.id,
154
- familyId: distro.family
155
- }
156
- };
157
- }
158
- }
159
- }
160
- catch (error) {
161
- console.warn(`Warning: Could not read derivatives file ${filePath}:`, error);
162
- }
163
- return null;
164
- }
165
- static searchInFedoraDerivatives(filePath, distroId) {
166
- try {
167
- const content = fs.readFileSync(filePath, 'utf8');
168
- const distros = yaml.load(content);
169
- if (distros.includes(distroId)) {
170
- return {
171
- familyId: 'fedora',
172
- config: {
173
- familyId: 'fedora',
174
- distroLike: 'Fedora',
175
- codenameId: 'rolling',
176
- codenameLikeId: 'fedora',
177
- liveMediumPath: '/run/initramfs/live/'
178
- }
179
- };
180
- }
181
- }
182
- catch (error) {
183
- console.warn(`Warning: Could not read fedora derivatives file ${filePath}:`, error);
184
- }
185
- return null;
186
- }
187
- }
188
- /**
189
- * OS Release parser
190
- */
191
- class OsReleaseParser {
192
- static parseUrls() {
193
- const defaultUrls = {
194
- homeUrl: 'https://penguins-eggs.net',
195
- supportUrl: 'https://penguins-eggs.net',
196
- bugReportUrl: 'https://github.com/pieroproietti/penguins-eggs/issues'
197
- };
198
- const osReleasePath = '/etc/os-release';
199
- if (!fs.existsSync(osReleasePath)) {
200
- return defaultUrls;
201
- }
202
- try {
203
- const data = fs.readFileSync(osReleasePath, 'utf8');
204
- const lines = data.split('\n');
205
- const result = { ...defaultUrls };
206
- for (const line of lines) {
207
- if (line.startsWith('HOME_URL=')) {
208
- result.homeUrl = line.slice('HOME_URL='.length).replaceAll('"', '');
209
- }
210
- else if (line.startsWith('SUPPORT_URL=')) {
211
- result.supportUrl = line.slice('SUPPORT_URL='.length).replaceAll('"', '');
212
- }
213
- else if (line.startsWith('BUG_REPORT_URL=')) {
214
- result.bugReportUrl = line.slice('BUG_REPORT_URL='.length).replaceAll('"', '');
215
- }
216
- }
217
- return result;
218
- }
219
- catch (error) {
220
- console.warn('Warning: Could not parse /etc/os-release:', error);
221
- return defaultUrls;
222
- }
223
- }
224
- }
225
- /**
226
- * Distribution configurator
227
- */
228
- class DistroConfigurator {
229
- static applySpecialConfigurations(config) {
230
- // Apply family-specific configurations
231
- this.applyFamilySpecificConfig(config);
232
- // Apply distro-specific configurations
233
- this.applyDistroSpecificConfig(config);
234
- }
235
- static applyFamilySpecificConfig(config) {
236
- // Debian family: dynamic usrLibPath
237
- if (config.familyId === 'debian') {
238
- config.usrLibPath = '/usr/lib/' + Utils.usrLibPath();
239
- }
240
- // OpenSUSE: specific usrLibPath
241
- if (config.familyId === 'opensuse') {
242
- config.usrLibPath = '/usr/lib64/';
243
- }
244
- }
245
- static applyDistroSpecificConfig(config) {
246
- // Manjaro-based distributions
247
- if (Diversions.isManjaroBased(config.distroId)) {
248
- config.liveMediumPath = '/run/miso/bootmnt/';
249
- config.squashfs = 'manjaro/x86_64/livefs.sfs';
250
- config.codenameId = shell.exec('lsb_release -cs', { silent: true }).stdout.toString().trim();
251
- }
252
- // BigLinux variants
253
- if (config.distroId.includes('Biglinux')) {
254
- config.distroId = 'Biglinux';
255
- }
256
- if (config.distroId.includes('Bigcommunity')) {
257
- config.distroId = 'Bigcommunity';
258
- }
259
- // Debian sid → trixie
260
- if (config.distroId === 'Debian' && config.codenameId === 'sid') {
261
- config.codenameId = 'trixie';
262
- }
263
- }
264
- }
265
- /**
266
- * Main Distro class - Refactored
17
+ * Classe
267
18
  */
268
19
  class Distro {
269
20
  bugReportUrl;
@@ -281,124 +32,343 @@ class Distro {
281
32
  syslinuxPath;
282
33
  usrLibPath;
283
34
  /**
284
- * Constructor - Now much cleaner and focused
35
+ * Costruttore
285
36
  */
286
37
  constructor() {
287
- // Initialize with defaults
288
- this.initializeDefaults();
289
- // Get OS information
38
+ // Tutti i default sono per Debian
39
+ this.bugReportUrl = 'https://github.com-pieroproietti/penguins-eggs/issue';
40
+ this.codenameId = '';
41
+ this.codenameLikeId = '';
42
+ this.distroId = '';
43
+ this.distroLike = '';
44
+ this.familyId = 'debian';
45
+ this.homeUrl = 'https://penguins-eggs.net';
46
+ this.isCalamaresAvailable = true;
47
+ this.liveMediumPath = '/run/live/medium/';
48
+ this.releaseId = '';
49
+ this.squashfs = 'live/filesystem.squashfs';
50
+ this.supportUrl = 'https://penguins-eggs.net';
51
+ this.syslinuxPath = path.resolve(__dirname, `../../syslinux`);
52
+ this.usrLibPath = '/usr/lib';
53
+ /**
54
+ * getOsRelease
55
+ */
290
56
  const osInfo = Utils.getOsRelease();
291
57
  this.distroId = osInfo.ID;
292
58
  this.codenameId = osInfo.VERSION_CODENAME;
293
59
  this.releaseId = osInfo.VERSION_ID;
294
- // Configure the distribution
295
- this.configure();
296
- }
297
- /**
298
- * Initialize with default values
299
- */
300
- initializeDefaults() {
301
- const defaultConfig = FAMILY_CONFIGS.debian;
302
- const urls = OsReleaseParser.parseUrls();
303
- Object.assign(this, defaultConfig, urls, {
304
- squashfs: 'live/filesystem.squashfs',
305
- syslinuxPath: path.resolve(__dirname, '../../syslinux'),
306
- usrLibPath: '/usr/lib',
307
- isCalamaresAvailable: true
308
- });
309
- }
310
- /**
311
- * Main configuration logic
312
- */
313
- configure() {
314
- try {
315
- // Step 1: Detect family by distro ID
316
- let familyId = DistroDetector.detectByDistroId(this.distroId);
317
- // Step 2: If not found, detect by codename
318
- if (!familyId) {
319
- familyId = DistroDetector.detectByCodename(this.codenameId);
60
+ if (this.distroId === 'Debian' && this.codenameId === 'sid') {
61
+ this.codenameId = 'trixie';
62
+ }
63
+ if (this.distroId.includes('Biglinux')) {
64
+ this.distroId = "Biglinux";
65
+ }
66
+ if (this.distroId.includes('Bigcommunity')) {
67
+ this.distroId = "Bigcommunity";
68
+ }
69
+ /**
70
+ * Alpine, Fedora, openmamba, opensuse, VoidLinux solo distroId.
71
+ *
72
+ * Debian, Devuan, Ubuntu e derivate ricadono in
73
+ * default e si analizza il codebaseId
74
+ *
75
+ */
76
+ if (this.distroId === 'Aldus') {
77
+ this.familyId = 'aldus';
78
+ this.distroLike = this.distroId;
79
+ this.codenameId = 'rolling'; // viene rimosso dal nome
80
+ this.codenameLikeId = this.familyId; // per krill
81
+ this.liveMediumPath = '/run/initramfs/live/';
82
+ /**
83
+ * Alpine compatible
84
+ */
85
+ }
86
+ else if (this.distroId === 'Alpine') {
87
+ this.familyId = 'alpine';
88
+ this.distroLike = this.distroId;
89
+ this.codenameId = 'rolling'; // viene rimosso dal nome
90
+ this.codenameLikeId = this.familyId; // per krill
91
+ this.liveMediumPath = '/mnt/'; // Qua è deciso da noi
92
+ /**
93
+ * Fedora/RHEL compatible
94
+ */
95
+ //} else if (this.distroId === 'Fedora') {
96
+ }
97
+ else if (this.distroId === 'Almalinux' ||
98
+ this.distroId === 'Fedora' ||
99
+ this.distroId === 'Nobara' ||
100
+ this.distroId === 'Rocky') {
101
+ /**
102
+ * Almalinux temp notes:
103
+ * install nodejs 18
104
+ * curl -fsSL https://rpm.nodesource.com/setup_18.x -o nodesource_setup.sh
105
+ * sudo bash nodesource_setup.sh
106
+ *
107
+ * install shasum
108
+ * sudo dnf install -y perl-Digest-SHA
109
+ */
110
+ this.familyId = 'fedora';
111
+ this.distroLike = 'Fedora';
112
+ this.codenameId = 'rolling'; // viene rimosso dal nome
113
+ this.codenameLikeId = this.familyId; // per krill
114
+ this.liveMediumPath = '/run/initramfs/live/';
115
+ /**
116
+ * openmamba
117
+ */
118
+ }
119
+ else if (this.distroId === 'Openmamba') {
120
+ this.familyId = 'openmamba';
121
+ this.distroLike = 'openmamba';
122
+ this.codenameId = 'rolling'; // viene rimosso dal nome
123
+ this.codenameLikeId = this.familyId; // per krill
124
+ this.liveMediumPath = '/run/initramfs/live/';
125
+ /**
126
+ * opensuse compatible
127
+ */
128
+ }
129
+ else if (this.distroId.includes('Opensuse')) {
130
+ this.familyId = 'opensuse';
131
+ this.distroLike = 'Opensuse'; // this.distroId
132
+ this.codenameId = 'rolling'; // sistemare non
133
+ this.codenameLikeId = this.familyId; // per krill
134
+ this.liveMediumPath = '/run/initramfs/live/'; // check
135
+ /**
136
+ * voidlinux compatible
137
+ */
138
+ }
139
+ else if (this.distroId === 'Voidlinux') {
140
+ this.familyId = 'voidlinux';
141
+ this.distroLike = this.distroId;
142
+ this.codenameId = 'rolling';
143
+ this.codenameLikeId = this.familyId; // per krill
144
+ this.liveMediumPath = '/run/initramfs/live/'; // we must discover
145
+ }
146
+ else {
147
+ /**
148
+ * We must analize codenameId
149
+ */
150
+ /**
151
+ * Arch
152
+ */
153
+ if (this.codenameId === 'rolling' || this.codenameId === 'n/a') {
154
+ this.familyId = 'archlinux';
155
+ this.distroLike = 'Arch';
156
+ this.codenameId = 'rolling';
157
+ this.codenameLikeId = 'rolling';
158
+ this.liveMediumPath = '/run/archiso/bootmnt/';
159
+ this.squashfs = `arch/x86_64/airootfs.sfs`;
160
+ /**
161
+ * Debian jessie
162
+ */
163
+ }
164
+ else if (this.codenameId === 'jessie') {
165
+ this.distroLike = 'Debian';
166
+ this.codenameLikeId = 'jessie';
167
+ this.liveMediumPath = '/lib/live/mount/medium/';
168
+ this.isCalamaresAvailable = false;
169
+ /**
170
+ * Debian stretch
171
+ */
172
+ }
173
+ else if (this.codenameId === 'stretch') {
174
+ this.distroLike = 'Debian';
175
+ this.codenameLikeId = 'stretch';
176
+ this.liveMediumPath = '/lib/live/mount/medium/';
177
+ this.isCalamaresAvailable = false;
178
+ /**
179
+ * Debian buster
180
+ */
181
+ }
182
+ else if (this.codenameId === 'buster') {
183
+ this.distroLike = 'Debian';
184
+ this.codenameLikeId = 'buster';
185
+ /**
186
+ * Debian bullseye
187
+ */
188
+ }
189
+ else if (this.codenameId === 'bullseye') {
190
+ this.distroLike = 'Debian';
191
+ this.codenameLikeId = 'bullseye';
192
+ /**
193
+ * Debian bookworm
194
+ */
195
+ }
196
+ else if (this.codenameId === 'bookworm') {
197
+ this.distroLike = 'Debian';
198
+ this.codenameLikeId = 'bookworm';
199
+ /**
200
+ * Debian trixie
201
+ */
202
+ }
203
+ else if (this.codenameId === 'trixie') {
204
+ this.distroLike = 'Debian';
205
+ this.codenameLikeId = 'trixie';
206
+ /**
207
+ * Devuan beowulf
208
+ */
209
+ }
210
+ else if (this.codenameId === 'beowulf') {
211
+ this.distroLike = 'Devuan';
212
+ this.codenameLikeId = 'beowulf';
213
+ /**
214
+ * Devuan chimaera
215
+ */
216
+ }
217
+ else if (this.codenameId === 'chimaera') {
218
+ this.distroLike = 'Devuan';
219
+ this.codenameLikeId = 'chimaera';
220
+ /**
221
+ * Devuan daedalus
222
+ */
223
+ }
224
+ else if (this.codenameId === 'daedalus') {
225
+ this.distroLike = 'Devuan';
226
+ this.codenameLikeId = 'daedalus';
227
+ /**
228
+ * Devuan excalibur
229
+ */
230
+ }
231
+ else if (this.codenameId === 'excalibur') {
232
+ this.distroLike = 'Devuan';
233
+ this.codenameLikeId = 'excalibur';
234
+ /**
235
+ * Ubuntu bionic
236
+ */
237
+ }
238
+ else if (this.codenameId === 'bionic') {
239
+ this.distroLike = 'Ubuntu';
240
+ this.codenameLikeId = 'bionic';
241
+ this.liveMediumPath = '/lib/live/mount/medium/';
242
+ /**
243
+ * Ubuntu focal
244
+ */
245
+ }
246
+ else if (this.codenameId === 'focal') {
247
+ this.distroLike = 'Ubuntu';
248
+ this.codenameLikeId = 'focal';
249
+ /**
250
+ * Ubuntu jammy
251
+ */
252
+ }
253
+ else if (this.codenameId === 'jammy') {
254
+ this.distroLike = 'Ubuntu';
255
+ this.codenameLikeId = 'jammy';
256
+ /**
257
+ * Ubuntu noble
258
+ */
259
+ }
260
+ else if (this.codenameId === 'noble') {
261
+ this.distroLike = 'Ubuntu';
262
+ this.codenameLikeId = 'noble';
263
+ /**
264
+ * Ubuntu devel
265
+ */
320
266
  }
321
- // Step 3: Apply family configuration
322
- if (familyId && FAMILY_CONFIGS[familyId]) {
323
- this.applyFamilyConfig(familyId);
267
+ else if (this.codenameId === 'devel') {
268
+ this.distroLike = 'Ubuntu';
269
+ this.codenameLikeId = 'devel';
324
270
  }
325
271
  else {
326
- // Step 4: Check derivatives
327
- const derivativeResult = DistroDetector.detectFromDerivatives(this.distroId, this.codenameId);
328
- if (derivativeResult) {
329
- this.applyCustomConfig(derivativeResult.familyId, derivativeResult.config);
272
+ /**
273
+ * derivatives
274
+ */
275
+ let found = false;
276
+ /**
277
+ * derivatives: families archlinux, debian
278
+ */
279
+ let file = path.resolve(__dirname, '../../conf/derivatives.yaml');
280
+ if (fs.existsSync('/etc/penguins-eggs.d/derivatives.yaml')) {
281
+ file = '/etc/penguins-eggs.d/derivatives.yaml';
330
282
  }
331
- else {
332
- this.handleUnknownDistro();
333
- return;
283
+ const content = fs.readFileSync(file, 'utf8');
284
+ const distros = yaml.load(content);
285
+ for (const distro of distros) {
286
+ if (distro.ids !== undefined) {
287
+ for (let n = 0; n < distro.ids.length; n++) {
288
+ if (this.codenameId === distro.ids[n]) {
289
+ found = true;
290
+ this.distroLike = distro.distroLike;
291
+ this.codenameLikeId = distro.id;
292
+ this.familyId = distro.family;
293
+ found = true;
294
+ }
295
+ }
296
+ }
297
+ }
298
+ /**
299
+ * derivatives: family fedora
300
+ */
301
+ if (!found) {
302
+ let file = path.resolve(__dirname, '../../conf/derivatives_fedora.yaml');
303
+ if (fs.existsSync('/etc/penguins-eggs.d/derivatives_fedora.yaml')) {
304
+ file = '/etc/penguins-eggs.d/derivatives_fedora.yaml';
305
+ }
306
+ const content = fs.readFileSync(file, 'utf8');
307
+ const elem = yaml.load(content);
308
+ if (elem.includes(this.distroId)) {
309
+ this.familyId = 'fedora';
310
+ this.distroLike = 'Fedora';
311
+ this.codenameId = 'rolling';
312
+ this.codenameLikeId = this.familyId;
313
+ this.liveMediumPath = '/run/initramfs/live/';
314
+ found = true;
315
+ }
316
+ }
317
+ if (!found) {
318
+ console.log(`This distro ${this.distroId}/${this.codenameId} is not yet recognized!`);
319
+ console.log('');
320
+ console.log('You can edit /usr/lib/penguins-eggs/conf/derivatives.yaml to add it -');
321
+ console.log('after that - run: sudo eggs dad -d to re-configure eggs.');
322
+ console.log('If you can create your new iso, you can contribute to the project');
323
+ console.log('by suggesting your modification.');
324
+ process.exit(0);
334
325
  }
335
326
  }
336
- // Step 5: Apply codename-specific configurations
337
- this.applyCodenameConfig();
338
- // Step 6: Apply special configurations
339
- DistroConfigurator.applySpecialConfigurations(this);
340
327
  }
341
- catch (error) {
342
- console.error('Error during distro configuration:', error);
343
- this.handleUnknownDistro();
328
+ /**
329
+ * Ultimi ritocchi
330
+ */
331
+ /**
332
+ * Debian: /usr/lib/x86_64-linux-gnu
333
+ * /usr/lib/aarch64-linux-gnu
334
+ */
335
+ if (this.familyId === "debian") {
336
+ this.usrLibPath = '/usr/lib/' + Utils.usrLibPath();
344
337
  }
345
- }
346
- /**
347
- * Apply family-based configuration
348
- */
349
- applyFamilyConfig(familyId) {
350
- const config = FAMILY_CONFIGS[familyId];
351
- this.familyId = config.familyId;
352
- this.distroLike = config.distroLike;
353
- if (config.codenameId)
354
- this.codenameId = config.codenameId;
355
- if (config.codenameLikeId)
356
- this.codenameLikeId = config.codenameLikeId;
357
- if (config.liveMediumPath)
358
- this.liveMediumPath = config.liveMediumPath;
359
- if (config.squashfs)
360
- this.squashfs = config.squashfs;
361
- if (config.usrLibPath)
362
- this.usrLibPath = config.usrLibPath;
363
- if (config.isCalamaresAvailable !== undefined)
364
- this.isCalamaresAvailable = config.isCalamaresAvailable;
365
- }
366
- /**
367
- * Apply custom configuration from derivatives
368
- */
369
- applyCustomConfig(familyId, config) {
370
- this.familyId = familyId;
371
- // Apply base family config first
372
- if (FAMILY_CONFIGS[familyId]) {
373
- this.applyFamilyConfig(familyId);
338
+ else if (this.familyId === "opensuse") {
339
+ this.usrLibPath = '/usr/lib64/';
374
340
  }
375
- // Then override with custom config
376
- Object.assign(this, config);
377
- }
378
- /**
379
- * Apply codename-specific configurations
380
- */
381
- applyCodenameConfig() {
382
- const codenameConfig = CODENAME_CONFIGS[this.codenameId];
383
- if (codenameConfig) {
384
- Object.assign(this, codenameConfig);
385
- // Set familyId to debian for debian-family codenames
386
- if (!this.familyId || this.familyId === 'debian') {
387
- this.familyId = 'debian';
341
+ /**
342
+ * Manjarolinux e derivate
343
+ */
344
+ if (Diversions.isManjaroBased(this.distroId)) {
345
+ this.liveMediumPath = '/run/miso/bootmnt/';
346
+ this.squashfs = 'manjaro/x86_64/livefs.sfs';
347
+ this.codenameId = shell.exec(`lsb_release -cs`, { silent: true }).stdout.toString().trim();
348
+ }
349
+ /**
350
+ * lettura os_release per i pulsanti
351
+ */
352
+ const os_release = '/etc/os-release';
353
+ if (fs.existsSync(os_release)) {
354
+ let lines = [];
355
+ if (fs.existsSync(os_release)) {
356
+ const data = fs.readFileSync(os_release, 'utf8');
357
+ lines = data.split('\n');
358
+ }
359
+ // per ogni riga
360
+ for (const line of lines) {
361
+ if (line.startsWith('HOME_URL=')) {
362
+ this.homeUrl = line.slice('HOME_URL='.length).replaceAll('"', '');
363
+ }
364
+ else if (line.startsWith('SUPPORT_URL=')) {
365
+ this.supportUrl = line.slice('SUPPORT_URL='.length).replaceAll('"', '');
366
+ }
367
+ else if (line.startsWith('BUG_REPORT_URL=')) {
368
+ this.bugReportUrl = line.slice('BUG_REPORT_URL='.length).replaceAll('"', '');
369
+ }
388
370
  }
389
371
  }
390
372
  }
391
- /**
392
- * Handle unknown distribution
393
- */
394
- handleUnknownDistro() {
395
- console.log(`This distro ${this.distroId}/${this.codenameId} is not yet recognized!`);
396
- console.log('');
397
- console.log('You can edit /usr/lib/penguins-eggs/conf/derivatives.yaml to add it -');
398
- console.log('after that - run: sudo eggs dad -d to re-configure eggs.');
399
- console.log('If you can create your new iso, you can contribute to the project');
400
- console.log('by suggesting your modification.');
401
- process.exit(0);
402
- }
403
373
  }
404
374
  export default Distro;