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
@@ -0,0 +1,293 @@
1
+ /**
2
+ * ./src/classes/ovary.d/produce.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 mustache from 'mustache';
10
+ // packages
11
+ import fs from 'node:fs';
12
+ import shx from 'shelljs';
13
+ import path from 'path';
14
+ // libraries
15
+ import { exec } from '../../lib/utils.js';
16
+ import Bleach from './../bleach.js';
17
+ import { displaymanager } from './../incubation/fisherman-helper/displaymanager.js';
18
+ import Incubator from './../incubation/incubator.js';
19
+ import Pacman from './../pacman.js';
20
+ import Diversions from './../diversions.js';
21
+ // classes
22
+ import Utils from './../utils.js';
23
+ import Repo from './../yolk.js';
24
+ // _dirname
25
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
26
+ /**
27
+ * produce
28
+ * @param clone
29
+ * @param cryptedclone
30
+ * @param scriptOnly
31
+ * @param yolkRenew
32
+ * @param release
33
+ * @param myAddons
34
+ * @param nointeractive
35
+ * @param noicons
36
+ * @param unsecure
37
+ * @param verbose
38
+ */
39
+ export async function produce(kernel = '', clone = false, cryptedclone = false, scriptOnly = false, yolkRenew = false, release = false, myAddons, myLinks, excludes, nointeractive = false, noicons = false, unsecure = false, verbose = false) {
40
+ this.verbose = verbose;
41
+ this.echo = Utils.setEcho(verbose);
42
+ if (this.verbose) {
43
+ this.toNull = ' > /dev/null 2>&1';
44
+ }
45
+ this.kernel = kernel;
46
+ this.clone = clone;
47
+ this.cryptedclone = cryptedclone;
48
+ const luksName = 'luks-volume';
49
+ const luksFile = `/tmp/${luksName}`;
50
+ /**
51
+ * define kernel
52
+ */
53
+ if (this.kernel === '') {
54
+ if (this.familyId === 'alpine') {
55
+ // to do
56
+ }
57
+ else if (this.familyId === 'archlinux') {
58
+ const moduleDirs = fs.readdirSync('/usr/lib/modules');
59
+ this.kernel = moduleDirs[0];
60
+ /**
61
+ * no need more
62
+ */
63
+ if (Diversions.isManjaroBased(this.distroId)) {
64
+ // this.kernel += '-MANJARO'
65
+ }
66
+ }
67
+ else { // debian, fedora, openmamba, opensuse, voidlinux
68
+ let vmlinuz = path.basename(Utils.vmlinuz());
69
+ this.kernel = vmlinuz.substring(vmlinuz.indexOf('-') + 1);
70
+ }
71
+ }
72
+ /**
73
+ * define this.vmlinuz
74
+ */
75
+ this.vmlinuz = Utils.vmlinuz();
76
+ /**
77
+ * define this.initrd
78
+ */
79
+ this.initrd = Utils.initrdImg(this.kernel);
80
+ /**
81
+ * yolk
82
+ */
83
+ if (this.familyId === 'debian' && Utils.uefiArch() === 'amd64') {
84
+ const yolk = new Repo();
85
+ if (!yolk.exists()) {
86
+ Utils.warning('creating yolk');
87
+ await yolk.create(verbose);
88
+ }
89
+ else if (yolkRenew) {
90
+ Utils.warning('refreshing yolk');
91
+ await yolk.erase();
92
+ await yolk.create(verbose);
93
+ }
94
+ else {
95
+ Utils.warning('using preesixent yolk');
96
+ }
97
+ }
98
+ if (!fs.existsSync(this.settings.config.snapshot_dir)) {
99
+ shx.mkdir('-p', this.settings.config.snapshot_dir);
100
+ }
101
+ if (Utils.isLive()) {
102
+ console.log(chalk.red('>>> eggs: This is a live system! An egg cannot be produced from an egg!'));
103
+ }
104
+ else {
105
+ await this.liveCreateStructure();
106
+ // Carica calamares solo se le icone sono accettate
107
+ if (!noicons && // se VOGLIO le icone
108
+ !nointeractive &&
109
+ this.settings.distro.isCalamaresAvailable &&
110
+ Pacman.isInstalledGui() &&
111
+ this.settings.config.force_installer &&
112
+ !Pacman.calamaresExists()) {
113
+ console.log('Installing ' + chalk.bgGray('calamares') + ' due force_installer=yes.');
114
+ await Pacman.calamaresInstall(verbose);
115
+ const bleach = new Bleach();
116
+ await bleach.clean(verbose);
117
+ }
118
+ if (cryptedclone) {
119
+ /**
120
+ * cryptedclone
121
+ */
122
+ console.log("eggs will SAVE users and users' data ENCRYPTED");
123
+ }
124
+ else if (this.clone) {
125
+ /**
126
+ * clone
127
+ */
128
+ this.settings.config.user_opt = 'live'; // patch for humans
129
+ this.settings.config.user_opt_passwd = 'evolution';
130
+ this.settings.config.root_passwd = 'evolution';
131
+ Utils.warning("eggs will SAVE users and users' data UNCRYPTED on the live");
132
+ }
133
+ else {
134
+ /**
135
+ * normal
136
+ */
137
+ Utils.warning("eggs will REMOVE users and users' data from live");
138
+ }
139
+ /**
140
+ * exclude.list
141
+ */
142
+ if (!excludes.static && !fs.existsSync('/etc/penguins-eggs/exclude.list')) {
143
+ const excludeListTemplateDir = '/etc/penguins-eggs.d/exclude.list.d/';
144
+ const excludeListTemplate = excludeListTemplateDir + 'master.list';
145
+ if (!fs.existsSync(excludeListTemplate)) {
146
+ Utils.warning('Cannot find: ' + excludeListTemplate);
147
+ process.exit(1);
148
+ }
149
+ let excludeUsr = '';
150
+ let excludeVar = '';
151
+ let excludeHomes = '';
152
+ let excludeHome = '';
153
+ if (excludes.usr) {
154
+ excludeUsr = fs.readFileSync(`${excludeListTemplateDir}usr.list`, 'utf8');
155
+ }
156
+ if (excludes.var) {
157
+ excludeVar = fs.readFileSync(`${excludeListTemplateDir}var.list`, 'utf8');
158
+ }
159
+ if (excludes.homes) {
160
+ excludeHomes = fs.readFileSync(`${excludeListTemplateDir}homes.list`, 'utf8');
161
+ }
162
+ if (excludes.home) {
163
+ excludeHome = `home/${await Utils.getPrimaryUser()}/*`;
164
+ }
165
+ const view = {
166
+ home_list: excludeHome,
167
+ homes_list: excludeHomes,
168
+ usr_list: excludeUsr,
169
+ var_list: excludeVar
170
+ };
171
+ const template = fs.readFileSync(excludeListTemplate, 'utf8');
172
+ fs.writeFileSync(this.settings.config.snapshot_excludes, mustache.render(template, view));
173
+ }
174
+ /**
175
+ * NOTE: reCreate = false
176
+ *
177
+ * reCreate = false is just for develop
178
+ * put reCreate = true in release
179
+ */
180
+ const reCreate = true;
181
+ let mksquashfsCmd = '';
182
+ if (reCreate) {
183
+ // start pre-clone
184
+ /**
185
+ * installer
186
+ */
187
+ this.incubator = new Incubator(this.settings.remix, this.settings.distro, this.settings.config.user_opt, this.theme, this.clone, verbose);
188
+ await this.incubator.config(release);
189
+ await this.syslinux(this.theme);
190
+ await this.kernelCopy();
191
+ /**
192
+ * differents initrd for different families
193
+ */
194
+ if (this.familyId === 'alpine') {
195
+ await this.initrdAlpine();
196
+ }
197
+ else if (this.familyId === 'archlinux') {
198
+ await this.initrdArch();
199
+ }
200
+ else if (this.familyId === 'debian') {
201
+ await this.initrdDebian();
202
+ }
203
+ else if (this.familyId === 'fedora' ||
204
+ this.familyId === 'openmamba' ||
205
+ this.familyId === 'opensuse' ||
206
+ this.familyId === 'voidlinux') {
207
+ await this.initrdDracut();
208
+ }
209
+ if (this.settings.config.make_efi) {
210
+ await this.makeEfi(this.theme);
211
+ }
212
+ await this.bindLiveFs();
213
+ if (!this.clone) {
214
+ /**
215
+ * ANCHE per cryptedclone
216
+ */
217
+ await this.usersRemove();
218
+ await this.userCreateLive();
219
+ if (Pacman.isInstalledGui()) {
220
+ await this.createXdgAutostart(this.settings.config.theme, myAddons, myLinks, noicons);
221
+ /**
222
+ * GUI installed but NOT Desktop Manager: just create motd and issue
223
+ */
224
+ if (displaymanager().length > 0) {
225
+ this.cliAutologin.addIssue(this.settings.distro.distroId, this.settings.distro.codenameId, this.settings.config.user_opt, this.settings.config.user_opt_passwd, this.settings.config.root_passwd, this.settings.work_dir.merged);
226
+ this.cliAutologin.addMotd(this.settings.distro.distroId, this.settings.distro.codenameId, this.settings.config.user_opt, this.settings.config.user_opt_passwd, this.settings.config.root_passwd, this.settings.work_dir.merged);
227
+ }
228
+ }
229
+ else {
230
+ this.cliAutologin.add(this.settings.distro.distroId, this.settings.distro.codenameId, this.settings.config.user_opt, this.settings.config.user_opt_passwd, this.settings.config.root_passwd, this.settings.work_dir.merged);
231
+ }
232
+ }
233
+ await this.editLiveFs(clone, cryptedclone);
234
+ mksquashfsCmd = await this.makeSquashfs(scriptOnly, unsecure);
235
+ await this.uBindLiveFs(); // Lo smonto prima della fase di backup
236
+ }
237
+ if (cryptedclone) {
238
+ let synctoCmd = `eggs syncto -f ${luksFile}`;
239
+ if (excludes.home) {
240
+ synctoCmd += ' --excludes'; // from Marco, usa home.list
241
+ }
242
+ await exec(synctoCmd, Utils.setEcho(true));
243
+ Utils.warning(`moving ${luksFile} in ${this.nest}iso/live`);
244
+ await exec(`mv ${luksFile} ${this.nest}iso/live`, this.echo);
245
+ }
246
+ const mkIsofsCmd = (await this.xorrisoCommand(clone, cryptedclone)).replaceAll(/\s\s+/g, ' ');
247
+ this.makeDotDisk(this.volid, mksquashfsCmd, mkIsofsCmd);
248
+ /**
249
+ * AntiX/MX LINUX
250
+ */
251
+ if (fs.existsSync('/etc/antix-version')) {
252
+ let uname = (await exec('uname -r', { capture: true })).data;
253
+ uname = uname.replaceAll('\n', '');
254
+ let content = '';
255
+ content = '#!/usr/bin/env bash';
256
+ content += 'mkdir /live/bin -p\n';
257
+ content += '## \n';
258
+ content += '# cp /usr/lib/penguins-eggs/scripts/non-live-cmdline /live/bin -p\n';
259
+ content += '# chmod +x /live/bin/non-live-cmdline\n';
260
+ content += '## \n';
261
+ content += 'mkdir /live/boot-dev/antiX -p\n';
262
+ content += 'ln -s /run/live/medium/live/filesystem.squashfs /live/boot-dev/antiX/linuxfs\n';
263
+ content += `ln -s /run/live/medium/live/initrd.img-${uname} /live/boot-dev/antiX/initrd.gz\n`;
264
+ content += `ln -s /run/live/medium/live/vmlinuz-${uname} /live/boot-dev/antiX/vmlinuz\n`;
265
+ content += `# md5sum /live/boot-dev/antiX/linuxfs > /live/boot-dev/antiX/linuxfs.md5\n`;
266
+ content += `# md5sum /live/boot-dev/antiX/initrd.gz > /live/boot-dev/antiX/initrd.gz.md5\n`;
267
+ content += `# md5sum /live/boot-dev/antiX/vmlinuz > /live/boot-dev/antiX/vmlinuz.md5\n`;
268
+ content += `# /live/aufs -> /run/live/rootfs/filesystem.squashfs\n`;
269
+ content += 'ln -s /run/live/rootfs/filesystem.squashfs /live/aufs\n';
270
+ content += `# use: minstall -no-media-check\n`;
271
+ content += 'minstall --no-media-check\n';
272
+ const file = `${this.settings.iso_work}antix-mx-installer`;
273
+ fs.writeFileSync(file, content);
274
+ await exec(`chmod +x ${file}`);
275
+ }
276
+ /**
277
+ * patch to emulate miso/archiso on archilinux family
278
+ */
279
+ if (this.familyId === 'archlinux') {
280
+ let pathName = `arch/x86_64/airootfs`;
281
+ let hashCmd = 'sha512sum';
282
+ let hashExt = '.sha512';
283
+ if (Diversions.isManjaroBased(this.settings.distro.distroId)) {
284
+ pathName = `manjaro/x86_64/livefs`;
285
+ hashCmd = `md5sum`;
286
+ hashExt = '.md5';
287
+ }
288
+ await exec(`mkdir ${this.settings.iso_work}${pathName}/x86_64 -p`, this.echo);
289
+ fs.linkSync(`${this.settings.iso_work}live/filesystem.squashfs`, `${this.settings.iso_work}${pathName}.sfs`);
290
+ }
291
+ await this.makeIso(mkIsofsCmd, scriptOnly);
292
+ }
293
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * ./src/classes/ovary.d/initrd-arch.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
+ *
10
+ * @param cmd
11
+ * @param echo
12
+ */
13
+ export default function rexec(cmd: string, verbose?: boolean): Promise<string>;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * ./src/classes/ovary.d/initrd-arch.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
+ // packages
9
+ import path from 'node:path';
10
+ import chalk from 'chalk';
11
+ // classes
12
+ import { exec } from '../../lib/utils.js';
13
+ import Utils from '../utils.js';
14
+ // _dirname
15
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
16
+ /**
17
+ *
18
+ * @param cmd
19
+ * @param echo
20
+ */
21
+ export default async function rexec(cmd, verbose = false) {
22
+ if (verbose) {
23
+ console.log(`Ovary: rexec(${cmd})`);
24
+ }
25
+ const echo = Utils.setEcho(verbose);
26
+ /**
27
+ * skip umount errors
28
+ */
29
+ const check = await exec(cmd, echo);
30
+ if (!cmd.startsWith('umount') && check.code !== 0) {
31
+ console.log(`eggs >>> error on command: ` + chalk.cyan(cmd) + ', code: ' + chalk.cyan(check.code));
32
+ }
33
+ return cmd;
34
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * ./src/classes/ovary.d/produce.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 Ovary from './../ovary.js';
9
+ /**
10
+ * syslinux: da syspath
11
+ */
12
+ export declare function syslinux(this: Ovary, theme?: string): Promise<void>;
@@ -0,0 +1,79 @@
1
+ /**
2
+ * ./src/classes/ovary.d/produce.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 mustache from 'mustache';
9
+ // packages
10
+ import fs from 'node:fs';
11
+ import path from 'node:path';
12
+ // backup
13
+ // interfaces
14
+ // libraries
15
+ import { exec } from '../../lib/utils.js';
16
+ import Diversions from './../diversions.js';
17
+ import Utils from './../utils.js';
18
+ // _dirname
19
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
20
+ /**
21
+ * syslinux: da syspath
22
+ */
23
+ export async function syslinux(theme = 'eggs') {
24
+ let syspath = path.resolve(__dirname, `../../../syslinux`);
25
+ await exec(`cp ${syspath}/chain.c32 ${this.settings.iso_work}/isolinux/`, this.echo);
26
+ await exec(`cp ${syspath}/isohdpfx.bin ${this.settings.iso_work}/isolinux/`, this.echo);
27
+ // just fo x64 arch
28
+ await exec(`cp ${syspath}/isolinux.bin ${this.settings.iso_work}/isolinux/`, this.echo);
29
+ await exec(`cp ${syspath}/ldlinux.c32 ${this.settings.iso_work}/isolinux/`, this.echo);
30
+ await exec(`cp ${syspath}/libcom32.c32 ${this.settings.iso_work}/isolinux/`, this.echo);
31
+ await exec(`cp ${syspath}/libutil.c32 ${this.settings.iso_work}/isolinux/`, this.echo);
32
+ await exec(`cp ${syspath}/vesamenu.c32 ${this.settings.iso_work}/isolinux/`, this.echo);
33
+ const isolinuxThemeDest = this.settings.iso_work + 'isolinux/isolinux.theme.cfg';
34
+ let isolinuxThemeSrc = path.resolve(__dirname, `../../../addons/${theme}/theme/livecd/isolinux.theme.cfg`);
35
+ if (this.theme.includes('/')) {
36
+ isolinuxThemeSrc = `${theme}/theme/livecd/isolinux.theme.cfg`;
37
+ }
38
+ if (!fs.existsSync(isolinuxThemeSrc)) {
39
+ Utils.warning('Cannot find: ' + isolinuxThemeSrc);
40
+ process.exit();
41
+ }
42
+ fs.copyFileSync(isolinuxThemeSrc, isolinuxThemeDest);
43
+ /**
44
+ * isolinux.cfg from isolinux.main.cfg
45
+ */
46
+ const isolinuxDest = `${this.settings.iso_work}/isolinux/isolinux.cfg`;
47
+ this.settings.iso_work + 'isolinux/isolinux.cfg';
48
+ let isolinuxTemplate = `${theme}/theme/livecd/isolinux.main.cfg`;
49
+ if (!fs.existsSync(isolinuxTemplate)) {
50
+ isolinuxTemplate = path.resolve(__dirname, '../../../addons/eggs/theme/livecd/isolinux.main.cfg');
51
+ }
52
+ if (!fs.existsSync(isolinuxTemplate)) {
53
+ Utils.warning('Cannot find: ' + isolinuxTemplate);
54
+ process.exit();
55
+ }
56
+ const kernel_parameters = Diversions.kernelParameters(this.familyId, this.volid);
57
+ const template = fs.readFileSync(isolinuxTemplate, 'utf8');
58
+ const view = {
59
+ fullname: this.settings.remix.fullname.toUpperCase(),
60
+ initrdImg: `/live/${path.basename(this.initrd)}`,
61
+ kernel: this.kernel,
62
+ kernel_parameters,
63
+ vmlinuz: `/live/${path.basename(this.vmlinuz)}`
64
+ };
65
+ fs.writeFileSync(isolinuxDest, mustache.render(template, view));
66
+ /**
67
+ * splash
68
+ */
69
+ const splashDest = `${this.settings.iso_work}/isolinux/splash.png`;
70
+ let splashSrc = path.resolve(__dirname, `../../../addons/${theme}/theme/livecd/splash.png`);
71
+ if (this.theme.includes('/')) {
72
+ splashSrc = path.resolve(`${theme}/theme/livecd/splash.png`);
73
+ }
74
+ if (!fs.existsSync(splashSrc)) {
75
+ Utils.warning('Cannot find: ' + splashSrc);
76
+ process.exit();
77
+ }
78
+ fs.copyFileSync(splashSrc, splashDest);
79
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * ./src/classes/ovary.d/create-user-live.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 Ovary from '../ovary.js';
9
+ /**
10
+ * list degli utenti: grep -E 1[0-9]{3} /etc/passwd | sed s/:/\ / | awk '{print $1}'
11
+ * create la home per user_opt
12
+ * @param verbose
13
+ */
14
+ export declare function userCreateLive(this: Ovary): Promise<void>;
@@ -0,0 +1,93 @@
1
+ /**
2
+ * ./src/classes/ovary.d/create-user-live.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
+ // packages
9
+ import fs from 'fs';
10
+ import path from 'node:path';
11
+ import yaml from 'js-yaml';
12
+ // functions
13
+ import rexec from './rexec.js';
14
+ import Utils from '../utils.js';
15
+ // _dirname
16
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
17
+ /**
18
+ * list degli utenti: grep -E 1[0-9]{3} /etc/passwd | sed s/:/\ / | awk '{print $1}'
19
+ * create la home per user_opt
20
+ * @param verbose
21
+ */
22
+ export async function userCreateLive() {
23
+ if (this.verbose) {
24
+ console.log('Ovary: userCreateLive');
25
+ }
26
+ const cmds = [];
27
+ cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' rm /home/' + this.settings.config.user_opt + ' -rf', this.verbose));
28
+ cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' mkdir /home/' + this.settings.config.user_opt, this.verbose));
29
+ // Create user using useradd
30
+ cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' useradd ' + this.settings.config.user_opt + ' --home-dir /home/' + this.settings.config.user_opt + ' --shell /bin/bash ', this.verbose));
31
+ // live password
32
+ cmds.push(await rexec('echo ' + this.settings.config.user_opt + ':' + this.settings.config.user_opt_passwd + ' | chroot ' + this.settings.work_dir.merged + ' chpasswd', this.verbose));
33
+ // root password
34
+ cmds.push(await rexec(' echo root:' + this.settings.config.root_passwd + ' | chroot ' + this.settings.work_dir.merged + ' chpasswd', this.verbose));
35
+ // Alpine naked don't have /etc/skel
36
+ if (fs.existsSync('/etc/skel')) {
37
+ cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' cp /etc/skel/. /home/' + this.settings.config.user_opt + ' -R', this.verbose));
38
+ }
39
+ // da problemi con il mount sshfs
40
+ cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' chown ' + this.settings.config.user_opt + ':users' + ' /home/' + this.settings.config.user_opt + ' -R', this.verbose));
41
+ /**
42
+ *
43
+ */
44
+ switch (this.familyId) {
45
+ case 'debian': {
46
+ cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG sudo ${this.settings.config.user_opt}`, this.verbose));
47
+ break;
48
+ }
49
+ case 'alpine': {
50
+ cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG cdrom ${this.settings.config.user_opt}`, this.verbose));
51
+ cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG games ${this.settings.config.user_opt}`, this.verbose));
52
+ cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG input ${this.settings.config.user_opt}`, this.verbose));
53
+ cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG users ${this.settings.config.user_opt}`, this.verbose));
54
+ cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG video ${this.settings.config.user_opt}`, this.verbose));
55
+ cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG wheel ${this.settings.config.user_opt}`, this.verbose));
56
+ break;
57
+ }
58
+ case 'archlinux': {
59
+ cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} gpasswd -a ${this.settings.config.user_opt} wheel`, this.verbose));
60
+ // check or create group: autologin
61
+ cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} getent group autologin || chroot ${this.settings.work_dir.merged} groupadd autologin`, this.verbose));
62
+ cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} gpasswd -a ${this.settings.config.user_opt} autologin`, this.verbose));
63
+ break;
64
+ }
65
+ case 'fedora': {
66
+ cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG wheel ${this.settings.config.user_opt}`, this.verbose));
67
+ break;
68
+ }
69
+ case 'openmamba': {
70
+ cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG sysadmin ${this.settings.config.user_opt}`, this.verbose));
71
+ cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG autologin ${this.settings.config.user_opt}`, this.verbose));
72
+ break;
73
+ }
74
+ // No default
75
+ }
76
+ /**
77
+ * look to calamares/modules/users.yml for groups
78
+ */
79
+ let usersConf = '/etc/calamares/modules/users.conf';
80
+ if (!fs.existsSync(usersConf)) {
81
+ usersConf = '/etc/penguins-eggs.d/krill/modules/users.conf';
82
+ }
83
+ if (fs.existsSync(usersConf)) {
84
+ const o = yaml.load(fs.readFileSync(usersConf, 'utf8'));
85
+ for (const group of o.defaultGroups) {
86
+ cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG ${group} ${this.settings.config.user_opt}`, this.verbose));
87
+ }
88
+ }
89
+ else {
90
+ console.log(`il file ${usersConf} non esiste!`);
91
+ await Utils.pressKeyToExit();
92
+ }
93
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * ./src/classes/ovary.d/users-remove.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 Ovary from './../ovary.js';
9
+ export declare function usersRemove(this: Ovary): Promise<void>;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * ./src/classes/ovary.d/users-remove.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
+ // packages
9
+ import path from 'node:path';
10
+ // backup
11
+ // interfaces
12
+ // libraries
13
+ import { exec } from '../../lib/utils.js';
14
+ import rexec from './rexec.js';
15
+ import Diversions from './../diversions.js';
16
+ // _dirname
17
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
18
+ //async cleanUsersAccounts() {
19
+ export async function usersRemove() {
20
+ if (this.verbose) {
21
+ console.log('Ovary: cleanUsersAccounts');
22
+ }
23
+ /**
24
+ * delete all user in chroot
25
+ */
26
+ const cmds = [];
27
+ const cmd = `chroot ${this.settings.work_dir.merged} getent passwd {1000..60000} |awk -F: '{print $1}'`;
28
+ const result = await exec(cmd, {
29
+ capture: true,
30
+ echo: this.verbose,
31
+ ignore: false
32
+ });
33
+ const users = result.data.split('\n');
34
+ let deluser = Diversions.deluser(this.familyId);
35
+ for (let i = 0; i < users.length - 1; i++) {
36
+ cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} ${deluser} ${users[i]}`, this.verbose));
37
+ }
38
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * ./src/classes/xorriso-command.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 Ovary from '../ovary.js';
9
+ /**
10
+ *
11
+ * @param cryptedclone
12
+ * @returns cmd 4 mkiso
13
+ */
14
+ export declare function xorrisoCommand(this: Ovary, clone?: boolean, cryptedclone?: boolean): Promise<string>;