penguins-eggs 10.0.28 → 10.0.31

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 (359) hide show
  1. package/.oclif.manifest.json +1500 -2
  2. package/README.md +760 -0
  3. package/addons/README.md +0 -2
  4. package/addons/eggs/adapt/applications/eggs-adapt.desktop +1 -1
  5. package/addons/eggs/theme/livecd/isolinux.main.alpine.cfg +43 -0
  6. package/addons/eggs/theme/livecd/{isolinux.main.cfg → isolinux.main.original.cfg} +1 -1
  7. package/conf/distros/alpine/README.md +1 -1
  8. package/conf/distros/alpine/calamares/calamares-modules/bootloader-config/bootloader-config.sh +40 -0
  9. package/conf/distros/alpine/calamares/calamares-modules/bootloader-config/module.yml +9 -0
  10. package/conf/distros/alpine/calamares/calamares-modules/cleanup/cleanup.sh +13 -0
  11. package/conf/distros/alpine/calamares/calamares-modules/cleanup/module.yml +9 -0
  12. package/conf/distros/alpine/calamares/modules/bootloader.yml +57 -0
  13. package/conf/distros/alpine/calamares/modules/displaymanager.yml +23 -0
  14. package/conf/distros/alpine/calamares/modules/finished.yml +5 -0
  15. package/conf/distros/alpine/calamares/modules/fstab.yml +12 -0
  16. package/conf/distros/alpine/calamares/modules/locale.yml +98 -0
  17. package/conf/distros/alpine/calamares/modules/luksopenswaphookcfg.yml +5 -0
  18. package/conf/distros/alpine/calamares/modules/machineid.yml +17 -0
  19. package/conf/distros/alpine/calamares/modules/mount.yml +56 -0
  20. package/conf/distros/alpine/calamares/modules/packages.yml +6 -0
  21. package/conf/distros/alpine/calamares/modules/partition.yml +242 -0
  22. package/conf/distros/alpine/calamares/modules/removeuser.yml +15 -0
  23. package/conf/distros/alpine/calamares/modules/unpackfs.yml +6 -0
  24. package/conf/distros/alpine/calamares/modules/users.yml +18 -0
  25. package/conf/distros/alpine/calamares/modules/welcome.yml +19 -0
  26. package/conf/distros/alpine/calamares/settings.yml +57 -0
  27. package/conf/love.yaml +8 -0
  28. package/dist/classes/bleach.d.ts +32 -0
  29. package/dist/classes/bleach.js +136 -0
  30. package/dist/classes/cfs.d.ts +17 -0
  31. package/dist/classes/cfs.js +39 -0
  32. package/dist/classes/cli-autologin.d.ts +52 -0
  33. package/dist/classes/cli-autologin.js +230 -0
  34. package/dist/classes/compressors.d.ts +54 -0
  35. package/dist/classes/compressors.js +109 -0
  36. package/dist/classes/daddy.d.ts +26 -0
  37. package/dist/classes/daddy.js +161 -0
  38. package/dist/classes/distro.d.ts +36 -0
  39. package/dist/classes/distro.js +346 -0
  40. package/dist/classes/families/alpine.d.ts +55 -0
  41. package/dist/classes/families/alpine.js +163 -0
  42. package/dist/classes/families/archlinux.d.ts +61 -0
  43. package/dist/classes/families/archlinux.js +140 -0
  44. package/dist/classes/families/debian.d.ts +65 -0
  45. package/dist/classes/families/debian.js +138 -0
  46. package/dist/classes/families/fedora.d.ts +52 -0
  47. package/dist/classes/families/fedora.js +100 -0
  48. package/dist/classes/families/mockup.d.ts +60 -0
  49. package/dist/classes/families/mockup.js +79 -0
  50. package/dist/classes/families/opensuse.d.ts +52 -0
  51. package/dist/classes/families/opensuse.js +104 -0
  52. package/dist/classes/incubation/branding.d.ts +17 -0
  53. package/dist/classes/incubation/branding.js +89 -0
  54. package/dist/classes/incubation/distros/alpine.d.ts +32 -0
  55. package/dist/classes/incubation/distros/alpine.js +80 -0
  56. package/dist/classes/incubation/distros/bionic.d.ts +32 -0
  57. package/dist/classes/incubation/distros/bionic.js +83 -0
  58. package/dist/classes/incubation/distros/buster.d.ts +32 -0
  59. package/dist/classes/incubation/distros/buster.js +85 -0
  60. package/dist/classes/incubation/distros/jessie.d.ts +31 -0
  61. package/dist/classes/incubation/distros/jessie.js +44 -0
  62. package/dist/classes/incubation/distros/noble.d.ts +32 -0
  63. package/dist/classes/incubation/distros/noble.js +85 -0
  64. package/dist/classes/incubation/distros/rolling.d.ts +32 -0
  65. package/dist/classes/incubation/distros/rolling.js +82 -0
  66. package/dist/classes/incubation/fisherman-helper/displaymanager.d.ts +11 -0
  67. package/dist/classes/incubation/fisherman-helper/displaymanager.js +39 -0
  68. package/dist/classes/incubation/fisherman-helper/packages.d.ts +20 -0
  69. package/dist/classes/incubation/fisherman-helper/packages.js +72 -0
  70. package/dist/classes/incubation/fisherman-helper/settings.d.ts +15 -0
  71. package/dist/classes/incubation/fisherman-helper/settings.js +83 -0
  72. package/dist/classes/incubation/fisherman.d.ts +77 -0
  73. package/dist/classes/incubation/fisherman.js +251 -0
  74. package/dist/classes/incubation/incubator.d.ts +40 -0
  75. package/dist/classes/incubation/incubator.js +328 -0
  76. package/dist/classes/incubation/installer.d.ts +13 -0
  77. package/dist/classes/incubation/installer.js +64 -0
  78. package/dist/classes/keyboards.d.ts +50 -0
  79. package/dist/classes/keyboards.js +287 -0
  80. package/dist/classes/locales.d.ts +21 -0
  81. package/dist/classes/locales.js +80 -0
  82. package/dist/classes/n8.d.ts +18 -0
  83. package/dist/classes/n8.js +36 -0
  84. package/dist/classes/network.d.ts +37 -0
  85. package/dist/classes/network.js +98 -0
  86. package/dist/classes/ovary.d.ts +214 -0
  87. package/dist/classes/ovary.js +1872 -0
  88. package/dist/classes/pacman.d.ts +149 -0
  89. package/dist/classes/pacman.js +703 -0
  90. package/dist/classes/pve-live.d.ts +17 -0
  91. package/dist/classes/pve-live.js +52 -0
  92. package/dist/classes/pxe.d.ts +74 -0
  93. package/dist/classes/pxe.js +410 -0
  94. package/dist/classes/settings.d.ts +53 -0
  95. package/dist/classes/settings.js +185 -0
  96. package/dist/classes/sources_list.d.ts +28 -0
  97. package/dist/classes/sources_list.js +89 -0
  98. package/dist/classes/systemctl.d.ts +47 -0
  99. package/dist/classes/systemctl.js +86 -0
  100. package/dist/classes/tailor.d.ts +46 -0
  101. package/dist/classes/tailor.js +587 -0
  102. package/dist/classes/tools.d.ts +30 -0
  103. package/dist/classes/tools.js +54 -0
  104. package/dist/classes/users.d.ts +28 -0
  105. package/dist/classes/users.js +143 -0
  106. package/dist/classes/utils.d.ts +323 -0
  107. package/dist/classes/utils.js +951 -0
  108. package/dist/classes/xdg.d.ts +45 -0
  109. package/dist/classes/xdg.js +329 -0
  110. package/dist/classes/yolk.d.ts +33 -0
  111. package/dist/classes/yolk.js +114 -0
  112. package/dist/commands/adapt.d.ts +17 -0
  113. package/dist/commands/adapt.js +33 -0
  114. package/dist/commands/analyze.d.ts +26 -0
  115. package/dist/commands/analyze.js +95 -0
  116. package/dist/commands/calamares.d.ts +29 -0
  117. package/dist/commands/calamares.js +110 -0
  118. package/dist/commands/config.d.ts +35 -0
  119. package/dist/commands/config.js +192 -0
  120. package/dist/commands/cuckoo.d.ts +16 -0
  121. package/dist/commands/cuckoo.js +62 -0
  122. package/dist/commands/dad.d.ts +20 -0
  123. package/dist/commands/dad.js +46 -0
  124. package/dist/commands/export/deb.d.ts +19 -0
  125. package/dist/commands/export/deb.js +51 -0
  126. package/dist/commands/export/iso.d.ts +19 -0
  127. package/dist/commands/export/iso.js +55 -0
  128. package/dist/commands/install.d.ts +37 -0
  129. package/dist/commands/install.js +88 -0
  130. package/dist/commands/kill.d.ts +24 -0
  131. package/dist/commands/kill.js +50 -0
  132. package/dist/commands/love.d.ts +20 -0
  133. package/dist/commands/love.js +55 -0
  134. package/dist/commands/mom.d.ts +16 -0
  135. package/dist/commands/mom.js +30 -0
  136. package/dist/commands/produce.d.ts +34 -0
  137. package/dist/commands/produce.js +196 -0
  138. package/dist/commands/status.d.ts +23 -0
  139. package/dist/commands/status.js +31 -0
  140. package/dist/commands/syncfrom.d.ts +45 -0
  141. package/dist/commands/syncfrom.js +152 -0
  142. package/dist/commands/syncto.d.ts +40 -0
  143. package/dist/commands/syncto.js +175 -0
  144. package/dist/commands/tools/clean.d.ts +18 -0
  145. package/dist/commands/tools/clean.js +37 -0
  146. package/dist/commands/tools/ppa.d.ts +26 -0
  147. package/dist/commands/tools/ppa.js +138 -0
  148. package/dist/commands/tools/skel.d.ts +18 -0
  149. package/dist/commands/tools/skel.js +44 -0
  150. package/dist/commands/tools/stat.d.ts +31 -0
  151. package/dist/commands/tools/stat.js +70 -0
  152. package/dist/commands/tools/yolk.d.ts +24 -0
  153. package/dist/commands/tools/yolk.js +45 -0
  154. package/dist/commands/update.d.ts +47 -0
  155. package/dist/commands/update.js +140 -0
  156. package/dist/commands/wardrobe/get.d.ts +23 -0
  157. package/dist/commands/wardrobe/get.js +52 -0
  158. package/dist/commands/wardrobe/list.d.ts +24 -0
  159. package/dist/commands/wardrobe/list.js +125 -0
  160. package/dist/commands/wardrobe/show.d.ts +25 -0
  161. package/dist/commands/wardrobe/show.js +97 -0
  162. package/dist/commands/wardrobe/wear.d.ts +26 -0
  163. package/dist/commands/wardrobe/wear.js +81 -0
  164. package/dist/components/finished.d.ts +16 -0
  165. package/dist/components/finished.js +55 -0
  166. package/dist/components/information.d.ts +8 -0
  167. package/dist/components/information.js +153 -0
  168. package/dist/components/install.d.ts +15 -0
  169. package/dist/components/install.js +56 -0
  170. package/dist/components/keyboard.d.ts +16 -0
  171. package/dist/components/keyboard.js +54 -0
  172. package/dist/components/location.d.ts +16 -0
  173. package/dist/components/location.js +59 -0
  174. package/dist/components/network.d.ts +19 -0
  175. package/dist/components/network.js +65 -0
  176. package/dist/components/partitions.d.ts +16 -0
  177. package/dist/components/partitions.js +73 -0
  178. package/dist/components/steps.d.ts +13 -0
  179. package/dist/components/steps.js +148 -0
  180. package/dist/components/summary.d.ts +24 -0
  181. package/dist/components/summary.js +81 -0
  182. package/dist/components/title.d.ts +11 -0
  183. package/dist/components/title.js +35 -0
  184. package/dist/components/users.d.ts +24 -0
  185. package/dist/components/users.js +80 -0
  186. package/dist/components/welcome.d.ts +13 -0
  187. package/dist/components/welcome.js +63 -0
  188. package/dist/index.d.ts +8 -0
  189. package/dist/index.js +8 -0
  190. package/dist/interfaces/i-addons.d.ts +12 -0
  191. package/dist/interfaces/i-addons.js +8 -0
  192. package/dist/interfaces/i-analyze.d.ts +17 -0
  193. package/dist/interfaces/i-analyze.js +17 -0
  194. package/dist/interfaces/i-app.d.ts +14 -0
  195. package/dist/interfaces/i-app.js +8 -0
  196. package/dist/interfaces/i-branding.d.ts +36 -0
  197. package/dist/interfaces/i-branding.js +8 -0
  198. package/dist/interfaces/i-calamares-partition.d.ts +18 -0
  199. package/dist/interfaces/i-calamares-partition.js +8 -0
  200. package/dist/interfaces/i-config-tools.d.ts +18 -0
  201. package/dist/interfaces/i-config-tools.js +8 -0
  202. package/dist/interfaces/i-devices.d.ts +20 -0
  203. package/dist/interfaces/i-devices.js +8 -0
  204. package/dist/interfaces/i-distro.d.ts +27 -0
  205. package/dist/interfaces/i-distro.js +8 -0
  206. package/dist/interfaces/i-drive-list.d.ts +33 -0
  207. package/dist/interfaces/i-drive-list.js +8 -0
  208. package/dist/interfaces/i-eggs-config.d.ts +32 -0
  209. package/dist/interfaces/i-eggs-config.js +8 -0
  210. package/dist/interfaces/i-excludes.d.ts +14 -0
  211. package/dist/interfaces/i-excludes.js +8 -0
  212. package/dist/interfaces/i-exec.d.ts +11 -0
  213. package/dist/interfaces/i-exec.js +8 -0
  214. package/dist/interfaces/i-initrd.d.ts +13 -0
  215. package/dist/interfaces/i-initrd.js +8 -0
  216. package/dist/interfaces/i-install.d.ts +16 -0
  217. package/dist/interfaces/i-install.js +8 -0
  218. package/dist/interfaces/i-installer.d.ts +17 -0
  219. package/dist/interfaces/i-installer.js +8 -0
  220. package/dist/interfaces/i-krill-config.d.ts +33 -0
  221. package/dist/interfaces/i-krill-config.js +8 -0
  222. package/dist/interfaces/i-krill.d.ts +42 -0
  223. package/dist/interfaces/i-krill.js +8 -0
  224. package/dist/interfaces/i-materia.d.ts +41 -0
  225. package/dist/interfaces/i-materia.js +8 -0
  226. package/dist/interfaces/i-net.d.ts +16 -0
  227. package/dist/interfaces/i-net.js +8 -0
  228. package/dist/interfaces/i-packages.d.ts +16 -0
  229. package/dist/interfaces/i-packages.js +8 -0
  230. package/dist/interfaces/i-partitions.d.ts +16 -0
  231. package/dist/interfaces/i-partitions.js +8 -0
  232. package/dist/interfaces/i-pxe.d.ts +45 -0
  233. package/dist/interfaces/i-pxe.js +1 -0
  234. package/dist/interfaces/i-remix.d.ts +21 -0
  235. package/dist/interfaces/i-remix.js +8 -0
  236. package/dist/interfaces/i-settings.d.ts +33 -0
  237. package/dist/interfaces/i-settings.js +8 -0
  238. package/dist/interfaces/i-user.d.ts +14 -0
  239. package/dist/interfaces/i-user.js +8 -0
  240. package/dist/interfaces/i-workdir.d.ts +14 -0
  241. package/dist/interfaces/i-workdir.js +8 -0
  242. package/dist/interfaces/i-xkb-model.d.ts +24 -0
  243. package/dist/interfaces/i-xkb-model.js +8 -0
  244. package/dist/interfaces/index.d.ts +25 -0
  245. package/dist/interfaces/index.js +8 -0
  246. package/dist/krill/modules/add-user.d.ts +20 -0
  247. package/dist/krill/modules/add-user.js +49 -0
  248. package/dist/krill/modules/bootloader-config-alpine.d.ts +14 -0
  249. package/dist/krill/modules/bootloader-config-alpine.js +37 -0
  250. package/dist/krill/modules/bootloader-config-arch.d.ts +14 -0
  251. package/dist/krill/modules/bootloader-config-arch.js +37 -0
  252. package/dist/krill/modules/bootloader-config-debian.d.ts +10 -0
  253. package/dist/krill/modules/bootloader-config-debian.js +50 -0
  254. package/dist/krill/modules/bootloader-config.d.ts +10 -0
  255. package/dist/krill/modules/bootloader-config.js +25 -0
  256. package/dist/krill/modules/bootloader.d.ts +14 -0
  257. package/dist/krill/modules/bootloader.js +30 -0
  258. package/dist/krill/modules/change-password.d.ts +15 -0
  259. package/dist/krill/modules/change-password.js +18 -0
  260. package/dist/krill/modules/del-live-user.d.ts +14 -0
  261. package/dist/krill/modules/del-live-user.js +38 -0
  262. package/dist/krill/modules/fstab.d.ts +14 -0
  263. package/dist/krill/modules/fstab.js +121 -0
  264. package/dist/krill/modules/grubcfg.d.ts +17 -0
  265. package/dist/krill/modules/grubcfg.js +29 -0
  266. package/dist/krill/modules/hostname.d.ts +13 -0
  267. package/dist/krill/modules/hostname.js +50 -0
  268. package/dist/krill/modules/initramfs-cfg.d.ts +14 -0
  269. package/dist/krill/modules/initramfs-cfg.js +25 -0
  270. package/dist/krill/modules/initramfs.d.ts +13 -0
  271. package/dist/krill/modules/initramfs.js +48 -0
  272. package/dist/krill/modules/locale-cfg.d.ts +10 -0
  273. package/dist/krill/modules/locale-cfg.js +61 -0
  274. package/dist/krill/modules/locale.d.ts +13 -0
  275. package/dist/krill/modules/locale.js +91 -0
  276. package/dist/krill/modules/m-keyboard.d.ts +14 -0
  277. package/dist/krill/modules/m-keyboard.js +70 -0
  278. package/dist/krill/modules/machine-id.d.ts +15 -0
  279. package/dist/krill/modules/machine-id.js +30 -0
  280. package/dist/krill/modules/mkfs.d.ts +13 -0
  281. package/dist/krill/modules/mkfs.js +48 -0
  282. package/dist/krill/modules/mount-fs.d.ts +17 -0
  283. package/dist/krill/modules/mount-fs.js +60 -0
  284. package/dist/krill/modules/mount-vfs.d.ts +17 -0
  285. package/dist/krill/modules/mount-vfs.js +40 -0
  286. package/dist/krill/modules/network-cfg.d.ts +19 -0
  287. package/dist/krill/modules/network-cfg.js +64 -0
  288. package/dist/krill/modules/packages.d.ts +14 -0
  289. package/dist/krill/modules/packages.js +111 -0
  290. package/dist/krill/modules/partition.d.ts +20 -0
  291. package/dist/krill/modules/partition.js +324 -0
  292. package/dist/krill/modules/remove-installer-link.d.ts +13 -0
  293. package/dist/krill/modules/remove-installer-link.js +35 -0
  294. package/dist/krill/modules/umount.d.ts +14 -0
  295. package/dist/krill/modules/umount.js +27 -0
  296. package/dist/krill/modules/unpackfs.d.ts +13 -0
  297. package/dist/krill/modules/unpackfs.js +19 -0
  298. package/dist/krill/prepare.d.ts +78 -0
  299. package/dist/krill/prepare.js +624 -0
  300. package/dist/krill/sequence.d.ts +157 -0
  301. package/dist/krill/sequence.js +685 -0
  302. package/dist/lib/get_address.d.ts +8 -0
  303. package/dist/lib/get_address.js +23 -0
  304. package/dist/lib/get_dns.d.ts +8 -0
  305. package/dist/lib/get_dns.js +23 -0
  306. package/dist/lib/get_domain.d.ts +8 -0
  307. package/dist/lib/get_domain.js +23 -0
  308. package/dist/lib/get_gateway.d.ts +8 -0
  309. package/dist/lib/get_gateway.js +23 -0
  310. package/dist/lib/get_hostname.d.ts +8 -0
  311. package/dist/lib/get_hostname.js +23 -0
  312. package/dist/lib/get_netmask.d.ts +8 -0
  313. package/dist/lib/get_netmask.js +23 -0
  314. package/dist/lib/get_password.d.ts +8 -0
  315. package/dist/lib/get_password.js +36 -0
  316. package/dist/lib/get_userfullname.d.ts +8 -0
  317. package/dist/lib/get_userfullname.js +23 -0
  318. package/dist/lib/get_username.d.ts +8 -0
  319. package/dist/lib/get_username.js +23 -0
  320. package/dist/lib/kill_me_softly.d.ts +11 -0
  321. package/dist/lib/kill_me_softly.js +61 -0
  322. package/dist/lib/select_address_type.d.ts +8 -0
  323. package/dist/lib/select_address_type.js +24 -0
  324. package/dist/lib/select_filesystem_type.d.ts +8 -0
  325. package/dist/lib/select_filesystem_type.js +46 -0
  326. package/dist/lib/select_installation_device.d.ts +8 -0
  327. package/dist/lib/select_installation_device.js +30 -0
  328. package/dist/lib/select_installation_mode.d.ts +8 -0
  329. package/dist/lib/select_installation_mode.js +24 -0
  330. package/dist/lib/select_interface.d.ts +8 -0
  331. package/dist/lib/select_interface.js +24 -0
  332. package/dist/lib/select_keyboard_layout.d.ts +11 -0
  333. package/dist/lib/select_keyboard_layout.js +36 -0
  334. package/dist/lib/select_keyboard_model.d.ts +11 -0
  335. package/dist/lib/select_keyboard_model.js +34 -0
  336. package/dist/lib/select_keyboard_option.d.ts +11 -0
  337. package/dist/lib/select_keyboard_option.js +34 -0
  338. package/dist/lib/select_keyboard_variant.d.ts +11 -0
  339. package/dist/lib/select_keyboard_variant.js +35 -0
  340. package/dist/lib/select_languages.d.ts +8 -0
  341. package/dist/lib/select_languages.js +28 -0
  342. package/dist/lib/select_regions.d.ts +8 -0
  343. package/dist/lib/select_regions.js +24 -0
  344. package/dist/lib/select_user_swap_choice.d.ts +8 -0
  345. package/dist/lib/select_user_swap_choice.js +34 -0
  346. package/dist/lib/select_zones.d.ts +8 -0
  347. package/dist/lib/select_zones.js +518 -0
  348. package/dist/lib/utils.d.ts +34 -0
  349. package/dist/lib/utils.js +79 -0
  350. package/manpages/doc/man/eggs.1.gz +0 -0
  351. package/manpages/doc/man/eggs.html +4 -588
  352. package/mkinitfs/README.md +9 -0
  353. package/package.json +4 -4
  354. package/scripts/_eggs +9 -2
  355. package/scripts/eggs.bash +2 -1
  356. package/addons/eggs/ichoice/applications/eggs-ichoice.desktop +0 -23
  357. package/addons/eggs/ichoice/bin/eggs-ichoice.sh +0 -44
  358. package/scripts/love +0 -25
  359. /package/{addons/eggs/adapt/bin/adapt → scripts/adapt.sh} +0 -0
@@ -0,0 +1,85 @@
1
+ /**
2
+ * ./src/classes/incubation/distros/focal.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 CFS from '../../cfs.js';
9
+ import Fisherman from '../fisherman.js';
10
+ /**
11
+ *
12
+ */
13
+ export class Noble {
14
+ distro;
15
+ installer = {};
16
+ isClone;
17
+ release = false;
18
+ remix;
19
+ theme; // theme comprende il path
20
+ user_opt;
21
+ verbose = false;
22
+ /**
23
+ * @param remix
24
+ * @param distro
25
+ * @param displaymanager
26
+ * @param verbose
27
+ */
28
+ constructor(installer, remix, distro, user_opt, release = false, theme = 'eggs', isClone = false, verbose = false) {
29
+ this.installer = installer;
30
+ this.remix = remix;
31
+ this.distro = distro;
32
+ this.user_opt = user_opt;
33
+ this.verbose = verbose;
34
+ this.release = release;
35
+ this.theme = theme;
36
+ this.isClone = isClone;
37
+ }
38
+ /**
39
+ * locale, partitions, users can come from themes
40
+ */
41
+ async create() {
42
+ const fisherman = new Fisherman(this.distro, this.installer, this.verbose);
43
+ await fisherman.createCalamaresSettings(this.theme, this.isClone);
44
+ await fisherman.buildModule('welcome');
45
+ await fisherman.buildModule('partition', this.theme);
46
+ await fisherman.buildModule('mount');
47
+ await fisherman.moduleUnpackfs();
48
+ await fisherman.buildCalamaresModule('sources-yolk', true);
49
+ await fisherman.buildModule('machineid');
50
+ await fisherman.buildModule('fstab');
51
+ await fisherman.buildModule('locale', this.theme);
52
+ await fisherman.buildModule('keyboard');
53
+ await fisherman.buildModule('localecfg');
54
+ await fisherman.buildModule('luksbootkeyfile');
55
+ await fisherman.buildModule('users', this.theme);
56
+ await fisherman.moduleDisplaymanager();
57
+ await fisherman.buildModule('networkcfg');
58
+ await fisherman.buildModule('hwclock');
59
+ await fisherman.contextualprocess('before_bootloader_mkdirs');
60
+ await fisherman.shellprocess('bug-LP#1829805');
61
+ await fisherman.buildModule('initramfs');
62
+ await fisherman.buildModule('grubcfg');
63
+ await fisherman.contextualprocess('before_bootloader');
64
+ await fisherman.buildModule('bootloader');
65
+ await fisherman.contextualprocess('after_bootloader');
66
+ await fisherman.shellprocess('add386arch');
67
+ await fisherman.modulePackages(this.distro, this.release); //
68
+ await fisherman.moduleRemoveuser(this.user_opt);
69
+ await fisherman.buildCalamaresModule('sources-yolk', false);
70
+ await fisherman.buildCalamaresModule('sources-yolk-undo', false);
71
+ await fisherman.buildCalamaresModule('cleanup', true);
72
+ /**
73
+ * cfs: custom final steps
74
+ */
75
+ const cfs = new CFS();
76
+ const steps = await cfs.steps();
77
+ if (steps.length > 0) {
78
+ for (const step of steps) {
79
+ await fisherman.buildCalamaresModule(step, true, this.theme);
80
+ }
81
+ }
82
+ await fisherman.buildModule('umount');
83
+ await fisherman.buildModule('finished');
84
+ }
85
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * ./src/classes/incubation/distros/rolling.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 { IDistro, IInstaller, IRemix } from '../../../interfaces/index.js';
9
+ /**
10
+ *
11
+ */
12
+ export declare class Rolling {
13
+ distro: IDistro;
14
+ installer: IInstaller;
15
+ isClone: boolean;
16
+ release: boolean;
17
+ remix: IRemix;
18
+ theme: string;
19
+ user_opt: string;
20
+ verbose: boolean;
21
+ /**
22
+ * @param remix
23
+ * @param distro
24
+ * @param displaymanager
25
+ * @param verbose
26
+ */
27
+ constructor(installer: IInstaller, remix: IRemix, distro: IDistro, user_opt: string, release?: boolean, theme?: string, isClone?: boolean, verbose?: boolean);
28
+ /**
29
+ * locale, partitions, users can come from themes
30
+ */
31
+ create(): Promise<void>;
32
+ }
@@ -0,0 +1,82 @@
1
+ /**
2
+ * ./src/classes/incubation/distros/rolling.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 CFS from '../../cfs.js';
9
+ import Fisherman from '../fisherman.js';
10
+ /**
11
+ *
12
+ */
13
+ export class Rolling {
14
+ distro;
15
+ installer = {};
16
+ isClone = false;
17
+ release = false;
18
+ remix;
19
+ theme; // theme comprende il path
20
+ user_opt;
21
+ verbose = false;
22
+ /**
23
+ * @param remix
24
+ * @param distro
25
+ * @param displaymanager
26
+ * @param verbose
27
+ */
28
+ constructor(installer, remix, distro, user_opt, release = false, theme = 'eggs', isClone = false, verbose = false) {
29
+ this.installer = installer;
30
+ this.remix = remix;
31
+ this.distro = distro;
32
+ this.user_opt = user_opt;
33
+ this.verbose = verbose;
34
+ this.release = release;
35
+ this.theme = theme;
36
+ this.isClone = isClone;
37
+ }
38
+ /**
39
+ * locale, partitions, users can come from themes
40
+ */
41
+ async create() {
42
+ const fisherman = new Fisherman(this.distro, this.installer, this.verbose);
43
+ await fisherman.createCalamaresSettings(this.theme, this.isClone);
44
+ await fisherman.buildModule('welcome');
45
+ await fisherman.buildModule('partition', this.theme);
46
+ await fisherman.buildModule('mount');
47
+ await fisherman.moduleUnpackfs();
48
+ // await fisherman.buildCalamaresModule('sources-yolk', true)
49
+ // await fisherman.buildModule('machineid')
50
+ await fisherman.buildModule('fstab');
51
+ await fisherman.buildModule('locale', this.theme);
52
+ await fisherman.buildModule('keyboard');
53
+ await fisherman.buildModule('localecfg');
54
+ await fisherman.buildModule('users', this.theme);
55
+ await fisherman.moduleDisplaymanager();
56
+ await fisherman.buildModule('networkcfg');
57
+ await fisherman.buildModule('hwclock');
58
+ // await fisherman.buildModule('services-systemd')
59
+ // await fisherman.buildCalamaresModule('bootloader-config', true)
60
+ await fisherman.buildModule('grubcf');
61
+ await fisherman.buildModule('bootloader');
62
+ await fisherman.modulePackages(this.distro, this.release);
63
+ await fisherman.buildModule('luksbootkeyfile');
64
+ await fisherman.buildModule('plymouthcfg');
65
+ // await fisherman.buildModule('initramfscfg')
66
+ // await fisherman.buildModule('initramfs')
67
+ await fisherman.moduleRemoveuser(this.user_opt);
68
+ await fisherman.shellprocess('removelink');
69
+ /**
70
+ * cfs: custom final steps
71
+ */
72
+ const cfs = new CFS();
73
+ const steps = await cfs.steps();
74
+ if (steps.length > 0) {
75
+ for (const step of steps) {
76
+ await fisherman.buildCalamaresModule(step, true, this.theme);
77
+ }
78
+ }
79
+ await fisherman.buildModule('umount');
80
+ await fisherman.moduleFinished();
81
+ }
82
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * ./src/classes/incubation/fisherman-helper/displaymanager.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
+ * restituisce displaymanagers in uso
10
+ */
11
+ export declare function displaymanager(): string;
@@ -0,0 +1,39 @@
1
+ /**
2
+ * ./src/classes/incubation/fisherman-helper/displaymanager.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 Pacman from '../../pacman.js';
9
+ /**
10
+ * restituisce displaymanagers in uso
11
+ */
12
+ export function displaymanager() {
13
+ let text = '';
14
+ text += addIfExist('slim');
15
+ text += addIfExist('sddm');
16
+ text += addIfExist('lightdm');
17
+ text += addIfExist('gdm');
18
+ text += addIfExist('gdm3');
19
+ text += addIfExist('mdm');
20
+ text += addIfExist('lxdm');
21
+ text += addIfExist('kdm');
22
+ return text;
23
+ }
24
+ /*
25
+ * @param package2check
26
+ */
27
+ function addIfExist(package2check) {
28
+ let content = '';
29
+ if (Pacman.packageIsInstalled(package2check)) {
30
+ let displayManager = package2check;
31
+ if (package2check === 'gdm3') {
32
+ // gdm3 is treat as gdm
33
+ displayManager = 'gdm';
34
+ }
35
+ content = `- ${displayManager}\n`;
36
+ // text += text === '' ? `- ${displayManager}\n` : ` - ${displayManager}\n`
37
+ }
38
+ return content;
39
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * ./src/classes/incubation/fisherman-helper/packages.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 { IDistro } from '../../../interfaces/index.js';
9
+ /**
10
+ *
11
+ * @param distro
12
+ * @returns yaml-string
13
+ */
14
+ export declare function remove(distro: IDistro): string;
15
+ /**
16
+ *
17
+ * @param distro
18
+ * @returns yaml-string
19
+ */
20
+ export declare function tryInstall(distro: IDistro): string;
@@ -0,0 +1,72 @@
1
+ /**
2
+ * ./src/classes/incubation/fisherman-helper/packages.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 Pacman from '../../pacman.js';
9
+ /**
10
+ *
11
+ * @param distro
12
+ * @returns yaml-string
13
+ */
14
+ export function remove(distro) {
15
+ const packages = ['calamares-eggs', 'calamares-garuda', 'calamares'];
16
+ if (distro.familyId === 'archlinux') {
17
+ packages.push('penguins-eggs');
18
+ }
19
+ if (distro.familyId === 'debian') {
20
+ packages.push('penguins-eggs', 'live-boot', 'live-boot-doc', 'live-boot-initramfs-tools', 'live-tools');
21
+ }
22
+ const installedPackages = [];
23
+ for (const elem of packages) {
24
+ if (Pacman.packageIsInstalled(elem)) {
25
+ installedPackages.push(elem);
26
+ }
27
+ }
28
+ installedPackages.sort();
29
+ let yaml = '';
30
+ for (const elem of installedPackages) {
31
+ yaml += ` - ${elem.trim()}\n`;
32
+ }
33
+ if (yaml !== '') {
34
+ yaml = '- try_remove:\n' + yaml;
35
+ }
36
+ return yaml;
37
+ }
38
+ /**
39
+ *
40
+ * @param distro
41
+ * @returns yaml-string
42
+ */
43
+ export function tryInstall(distro) {
44
+ let yaml = '';
45
+ /**
46
+ * Depending on the distro
47
+ */
48
+ if (distro.distroLike === 'Ubuntu') {
49
+ yaml += ' - language-pack-$LOCALE\n';
50
+ }
51
+ // Da localizzare se presenti
52
+ if (Pacman.packageIsInstalled('hunspell')) {
53
+ yaml += ' - hunspell-$LOCALE\n';
54
+ }
55
+ if (Pacman.packageIsInstalled('libreoffice-base-core')) {
56
+ yaml += ' - libreoffice-l10n-$LOCALE\n';
57
+ yaml += ' - libreoffice-help-$LOCALE\n';
58
+ }
59
+ if (Pacman.packageIsInstalled('firefox-esr')) {
60
+ yaml += ' - firefox-esr-$LOCALE\n';
61
+ }
62
+ if (Pacman.packageIsInstalled('firefox')) {
63
+ yaml += ' - firefox-$LOCALE\n';
64
+ }
65
+ if (Pacman.packageIsInstalled('thunderbird')) {
66
+ yaml += ' - thunderbird-locale-$LOCALE\n';
67
+ }
68
+ if (yaml !== '') {
69
+ yaml = '- try_install:\n' + yaml;
70
+ }
71
+ return yaml;
72
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * ./src/classes/incubation/fisherman-helper/settings.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 src
11
+ * @param dest
12
+ * @param theme
13
+ * @param isClone
14
+ */
15
+ export declare function settings(src: string, dest: string, theme?: string, isClone?: boolean): Promise<void>;
@@ -0,0 +1,83 @@
1
+ /**
2
+ * ./src/classes/incubation/fisherman-helper/settings.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 theme
11
+ * @param isClone
12
+ */
13
+ import yaml from 'js-yaml';
14
+ import fs from 'node:fs';
15
+ import shx from 'shelljs';
16
+ import Utils from '../../utils.js';
17
+ import { installer } from '../installer.js';
18
+ import { displaymanager } from './displaymanager.js';
19
+ /**
20
+ *
21
+ * @param src
22
+ * @param dest
23
+ * @param theme
24
+ * @param isClone
25
+ */
26
+ export async function settings(src, dest, theme = 'eggs', isClone = false) {
27
+ let branding = theme;
28
+ const settingsSrc = src + 'settings.yml';
29
+ if (theme.includes('/')) {
30
+ branding = theme.slice(Math.max(0, theme.lastIndexOf('/') + 1));
31
+ }
32
+ const settingsDest = dest + 'settings.conf';
33
+ shx.cp(settingsSrc, settingsDest);
34
+ let hasSystemd = '# ';
35
+ if (Utils.isSystemd()) {
36
+ hasSystemd = '- ';
37
+ }
38
+ let createUsers = '- ';
39
+ if (isClone) {
40
+ createUsers = '# ';
41
+ }
42
+ let hasDisplaymanager = '# ';
43
+ if (displaymanager() !== '') {
44
+ hasDisplaymanager = '- ';
45
+ }
46
+ shx.sed('-i', '{{hasSystemd}}', hasSystemd, settingsDest);
47
+ shx.sed('-i', '{{hasDisplaymanager}}', hasDisplaymanager, settingsDest);
48
+ shx.sed('-i', '{{branding}}', branding, settingsDest);
49
+ shx.sed('-i', '{{createUsers}}', createUsers, settingsDest);
50
+ /**
51
+ * cfsAppend
52
+ */
53
+ const cfsPath = `${theme}/theme/calamares/cfs.yml`;
54
+ if (fs.existsSync(cfsPath)) {
55
+ cfsAppend(cfsPath);
56
+ }
57
+ }
58
+ /**
59
+ *
60
+ */
61
+ function cfsAppend(cfs) {
62
+ const configRoot = installer().configRoot + 'settings.conf';
63
+ const soContent = fs.readFileSync(configRoot, 'utf8');
64
+ const so = yaml.load(soContent);
65
+ const cfsContent = fs.readFileSync(cfs, 'utf8');
66
+ const cfsSteps = yaml.load(cfsContent);
67
+ const execSteps = so.sequence[1].exec;
68
+ for (const execStep of execSteps) {
69
+ if (execStep.includes('umount')) {
70
+ so.sequence[1].exec.pop(); // OK remove umount
71
+ /**
72
+ * insert cfsStep
73
+ */
74
+ for (const cfsStep of cfsSteps) {
75
+ so.sequence[1].exec.push(cfsStep);
76
+ }
77
+ so.sequence[1].exec.push('end-cfs'); // we will replace with umount
78
+ }
79
+ }
80
+ // ***
81
+ fs.writeFileSync(configRoot, yaml.dump(so), 'utf-8');
82
+ shx.sed('-i', 'end-cfs', 'umount', configRoot);
83
+ }
@@ -0,0 +1,77 @@
1
+ /**
2
+ * ./src/classes/incubation/fisherman.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 { IDistro, IInstaller } from '../../interfaces/index.js';
9
+ export default class Fisherman {
10
+ distro: IDistro;
11
+ installer: IInstaller;
12
+ verbose: boolean;
13
+ constructor(distro: IDistro, installer: IInstaller, verbose?: boolean);
14
+ /**
15
+ *
16
+ * @param name
17
+ * @param isScript
18
+ */
19
+ buildCalamaresModule(name: string, isScript?: boolean, theme?: string): Promise<string>;
20
+ /**
21
+ *
22
+ * @param name
23
+ */
24
+ buildCalamaresPy(name: string): Promise<void>;
25
+ /**
26
+ *
27
+ * @param name
28
+ * @param replaces [['search','replace']]
29
+ */
30
+ buildModule(name: string, vendor?: string): Promise<void>;
31
+ /**
32
+ *
33
+ * @param name
34
+ */
35
+ contextualprocess(name: string): Promise<void>;
36
+ /**
37
+ * write setting
38
+ */
39
+ createCalamaresSettings(theme?: string, isClone?: boolean): Promise<void>;
40
+ /**
41
+ * usa i moduli-ts
42
+ */
43
+ moduleDisplaymanager(): Promise<void>;
44
+ /**
45
+ * Al momento rimane con la vecchia configurazione
46
+ */
47
+ moduleFinished(): Promise<void>;
48
+ /**
49
+ * ====================================================================================
50
+ * M O D U L E S
51
+ * ====================================================================================
52
+ */
53
+ /**
54
+ * usa i moduli-ts
55
+ */
56
+ modulePackages(distro: IDistro, release?: boolean): Promise<void>;
57
+ /**
58
+ * Al momento rimane con la vecchia configurazione
59
+ */
60
+ moduleRemoveuser(username: string): Promise<void>;
61
+ /**
62
+ * Al momento rimane con la vecchia configurazione
63
+ */
64
+ moduleUnpackfs(): Promise<void>;
65
+ /**
66
+ *
67
+ * @param name
68
+ */
69
+ shellprocess(name: string): Promise<void>;
70
+ /**
71
+ *
72
+ * @param module
73
+ * @param type
74
+ * @param path
75
+ */
76
+ show(name: string, type: string, path: string): void;
77
+ }