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,114 @@
1
+ /**
2
+ * ./src/classes/yolk.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 yaml from 'js-yaml';
9
+ import fs from 'node:fs';
10
+ import shx from 'shelljs';
11
+ import { exec } from '../lib/utils.js';
12
+ import Bleach from './bleach.js';
13
+ import Pacman from './pacman.js';
14
+ import Utils from './utils.js';
15
+ /**
16
+ *
17
+ */
18
+ export default class Yolk {
19
+ echo = {};
20
+ verbose = false;
21
+ yolkDir = '/var/local/yolk';
22
+ /**
23
+ *
24
+ */
25
+ async create(verbose = false) {
26
+ this.verbose = verbose;
27
+ this.echo = Utils.setEcho(verbose);
28
+ if (Utils.uefiArch() !== 'amd64') {
29
+ Utils.warning(`yolk is not used on ${Utils.uefiArch()} architecture`);
30
+ return;
31
+ }
32
+ Utils.warning(`Creating yolk on ${this.yolkDir}`);
33
+ Utils.warning('Updating system');
34
+ if (!Pacman.commandIsInstalled('dpkg-scanpackages')) {
35
+ Utils.warning(`I cannot find the command dpkg-scanpackages`);
36
+ process.exit(0);
37
+ }
38
+ let cmd = '';
39
+ try {
40
+ cmd = 'apt-get update --yes';
41
+ await exec(cmd, this.echo);
42
+ }
43
+ catch (error) {
44
+ console.log(error);
45
+ await Utils.pressKeyToExit(cmd);
46
+ process.exit(0);
47
+ }
48
+ if (this.exists()) {
49
+ await this.erase();
50
+ }
51
+ else {
52
+ await exec(`mkdir ${this.yolkDir} -p`, this.echo);
53
+ await exec(`chown _apt:root ${this.yolkDir} -R`, this.echo);
54
+ }
55
+ const yolk_yaml = '/etc/penguins-eggs.d/yolk.yaml';
56
+ const yolk = yaml.load(fs.readFileSync(yolk_yaml, 'utf8'));
57
+ process.chdir(this.yolkDir);
58
+ Utils.warning(`Downloading packages and its dependencies`);
59
+ for (const pkg of yolk.packages) {
60
+ Utils.warning(`- ${pkg}`);
61
+ cmd = `apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances ${pkg} | grep "^\\w" | sort -u`;
62
+ let depends = pkg + '\n';
63
+ depends += (await exec(cmd, { capture: true, echo: false })).data;
64
+ await this.installDeps(depends.split('\n'));
65
+ }
66
+ // create Package.gz
67
+ cmd = 'dpkg-scanpackages -h md5,sha1,sha256 . | gzip -c > Packages.gz';
68
+ Utils.warning(cmd);
69
+ await exec(cmd, { capture: true, echo: false });
70
+ // Create Release date: Sat, 14 Aug 2021 07:42:00 UTC
71
+ const now = shx.exec('date -R -u').stdout.trim();
72
+ const content = `Archive: stable\nComponent: yolk\nOrigin: penguins-eggs\nArchitecture: ${Utils.uefiArch()} \nDate: ${now}\n`;
73
+ Utils.warning('Writing Release');
74
+ fs.writeFileSync('Release', content);
75
+ // Cleaning
76
+ Utils.warning('Cleaning apt cache');
77
+ const bleach = new Bleach();
78
+ await bleach.clean(verbose);
79
+ }
80
+ /**
81
+ * Svuota la repo yolk
82
+ */
83
+ async erase() {
84
+ await exec(`rm ${this.yolkDir}/*`, this.echo);
85
+ }
86
+ /**
87
+ * Check if yoil exists and it's a repo
88
+ */
89
+ exists() {
90
+ const check = `${this.yolkDir}/Packages.gz`;
91
+ return fs.existsSync(check);
92
+ }
93
+ /**
94
+ * if depends are not Installed
95
+ * download depends
96
+ * @param depends
97
+ */
98
+ async installDeps(depends) {
99
+ // select for downloads only packages NOT already installed
100
+ const toDownloads = [];
101
+ for (const depend of depends) {
102
+ // if (depend !== '' && !Pacman.packageIsInstalled(depend)) {
103
+ toDownloads.push(depend);
104
+ // }
105
+ }
106
+ // now we go to downloads them
107
+ for (const toDownload of toDownloads) {
108
+ process.chdir(this.yolkDir);
109
+ const cmd = `apt-get download ${toDownload}`;
110
+ // Utils.warning(`- ${cmd}`)
111
+ await exec(cmd, this.echo);
112
+ }
113
+ }
114
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * ./src/commands/adapt.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 { Command } from '@oclif/core';
9
+ export default class Adapt extends Command {
10
+ static description: string;
11
+ static examples: string[];
12
+ static flags: {
13
+ help: import("@oclif/core/interfaces").BooleanFlag<void>;
14
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
+ };
16
+ run(): Promise<void>;
17
+ }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * ./src/commands/adapt.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 { Command, Flags } from '@oclif/core';
9
+ import Utils from '../classes/utils.js';
10
+ import { exec } from '../lib/utils.js';
11
+ export default class Adapt extends Command {
12
+ static description = 'adapt monitor resolution for VM only';
13
+ static examples = ['eggs adapt'];
14
+ static flags = {
15
+ help: Flags.help({ char: 'h' }),
16
+ verbose: Flags.boolean({ char: 'v' })
17
+ };
18
+ async run() {
19
+ const { args, flags } = await this.parse(Adapt);
20
+ let verbose = false;
21
+ if (flags.verbose) {
22
+ verbose = true;
23
+ }
24
+ const echo = Utils.setEcho(verbose);
25
+ // const {args, flags} = this.parse(Adjust)
26
+ Utils.titles(this.id + ' ' + this.argv);
27
+ Utils.warning('Adapt monitor resolutions to the size of window in virtual machines');
28
+ await exec('xrandr --output Virtual-0 --auto', echo);
29
+ await exec('xrandr --output Virtual-1 --auto', echo);
30
+ await exec('xrandr --output Virtual-2 --auto', echo);
31
+ await exec('xrandr --output Virtual-3 --auto', echo);
32
+ }
33
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * ./src/commands/analyze.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 { Command } from '@oclif/core';
9
+ import Users from '../classes/users.js';
10
+ import { IWorkDir } from '../interfaces/i-workdir.js';
11
+ export default class Analyze extends Command {
12
+ static description: string;
13
+ static examples: string[];
14
+ static flags: {
15
+ help: import("@oclif/core/interfaces").BooleanFlag<void>;
16
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
17
+ };
18
+ config_file: string;
19
+ snapshot_dir: string;
20
+ work_dir: IWorkDir;
21
+ /**
22
+ * fill
23
+ */
24
+ fill(): Promise<Users[]>;
25
+ run(): Promise<void>;
26
+ }
@@ -0,0 +1,95 @@
1
+ /**
2
+ * ./src/commands/analyze.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 { Command, Flags } from '@oclif/core';
9
+ import fs, { constants } from 'node:fs';
10
+ import { access } from 'node:fs/promises';
11
+ import si from 'systeminformation';
12
+ import Users from '../classes/users.js';
13
+ import Utils from '../classes/utils.js';
14
+ export default class Analyze extends Command {
15
+ static description = 'analyze for syncto';
16
+ static examples = ['sudo eggs analyze'];
17
+ static flags = {
18
+ help: Flags.help({ char: 'h' }),
19
+ verbose: Flags.boolean({ char: 'v', description: 'verbose' })
20
+ };
21
+ config_file = '/etc/penguins-eggs.d/eggs.yaml';
22
+ snapshot_dir = '';
23
+ work_dir = {};
24
+ /**
25
+ * fill
26
+ */
27
+ async fill() {
28
+ try {
29
+ const usersArray = [];
30
+ await access('/etc/passwd', constants.R_OK | constants.W_OK);
31
+ const passwd = fs.readFileSync('/etc/passwd', 'utf8').split('\n');
32
+ for (const element of passwd) {
33
+ const line = element.split(':');
34
+ const users = new Users(line[0], line[1], line[2], line[3], line[4], line[5], line[6]);
35
+ await users.getValues();
36
+ if (users.password !== undefined) {
37
+ usersArray.push(users);
38
+ }
39
+ }
40
+ return usersArray;
41
+ }
42
+ catch {
43
+ console.error("can't read /etc/passwd");
44
+ process.exit(1);
45
+ }
46
+ }
47
+ async run() {
48
+ Utils.titles(this.id + ' ' + this.argv);
49
+ const { flags } = await this.parse(Analyze);
50
+ let verbose = false;
51
+ if (flags.verbose) {
52
+ verbose = true;
53
+ }
54
+ Utils.warning('eggs will analyze your system, and get users data');
55
+ const echo = Utils.setEcho(verbose);
56
+ let totalSize = 0;
57
+ if (Utils.isRoot(this.id)) {
58
+ const audio = await si.audio();
59
+ const bios = await si.bios();
60
+ const blockDevices = await si.blockDevices();
61
+ const chassis = await si.chassis();
62
+ const cpu = await si.cpu();
63
+ const diskLayout = await si.diskLayout();
64
+ const mem = await si.mem();
65
+ const usb = await si.usb();
66
+ console.log(`chassis: ${chassis.manufacturer} model: ${chassis.manufacturer}`);
67
+ console.log(`bios vendor: ${bios.vendor} version: ${bios.version} revision: ${bios.revision}`);
68
+ console.log(`processor: ${cpu.brand} core: ${cpu.cores} `);
69
+ if (diskLayout[0].device !== undefined) {
70
+ console.log(`disk0: ${diskLayout[0].device}`);
71
+ }
72
+ if (diskLayout[1] !== undefined) {
73
+ console.log(`disk1: ${diskLayout[1].device}`);
74
+ }
75
+ if (diskLayout[2] !== undefined) {
76
+ console.log(`disk1: ${diskLayout[2].device}`);
77
+ }
78
+ // console.log(`name: ${blockDevices[0].name} fs: ${blockDevices[0].fsType}`)
79
+ // console.log(`name: ${blockDevices[1].name} fs: ${blockDevices[1].fsType}`)
80
+ // console.log(`name: ${blockDevices[2].name} fs: ${blockDevices[2].fsType}`)
81
+ // console.log(`name: ${blockDevices[3].name} fs: ${blockDevices[3].fsType}`)
82
+ // console.log(`usb: ${usb[0].name}`)
83
+ const users = await this.fill();
84
+ for (let i = 0; i < users.length; i++)
85
+ if (users[i].saveIt) {
86
+ console.log(`user: ${users[i].login} \thome: ${users[i].home.padEnd(16)} \tsize: ${Utils.formatBytes(users[i].size)} \tBytes: ${users[i].size} `);
87
+ totalSize += users[i].size;
88
+ }
89
+ console.log(`Total\t\t\t\t\tSize: ${Utils.formatBytes(totalSize)} \tBytes: ${totalSize}`);
90
+ }
91
+ else {
92
+ Utils.useRoot(this.id);
93
+ }
94
+ }
95
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * ./src/commands/calamares.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 { Command } from '@oclif/core';
9
+ import Incubator from '../classes/incubation/incubator.js';
10
+ import Settings from '../classes/settings.js';
11
+ import { IRemix } from '../interfaces/index.js';
12
+ export default class Calamares extends Command {
13
+ static description: string;
14
+ static examples: string[];
15
+ static flags: {
16
+ help: import("@oclif/core/interfaces").BooleanFlag<void>;
17
+ install: import("@oclif/core/interfaces").BooleanFlag<boolean>;
18
+ nointeractive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
19
+ policies: import("@oclif/core/interfaces").BooleanFlag<boolean>;
20
+ release: import("@oclif/core/interfaces").BooleanFlag<boolean>;
21
+ remove: import("@oclif/core/interfaces").BooleanFlag<boolean>;
22
+ theme: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
23
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
24
+ };
25
+ incubator: Incubator;
26
+ remix: IRemix;
27
+ settings: Settings;
28
+ run(): Promise<void>;
29
+ }
@@ -0,0 +1,112 @@
1
+ /**
2
+ * ./src/commands/calamares.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 { Command, Flags } from '@oclif/core';
9
+ import fs from 'node:fs';
10
+ import path from 'node:path';
11
+ import Incubator from '../classes/incubation/incubator.js';
12
+ import Pacman from '../classes/pacman.js';
13
+ import Settings from '../classes/settings.js';
14
+ import Utils from '../classes/utils.js';
15
+ export default class Calamares extends Command {
16
+ static description = 'configure calamares or install or configure it';
17
+ static examples = ['sudo eggs calamares', 'sudo eggs calamares --install', 'sudo eggs calamares --install --theme=/path/to/theme', 'sudo eggs calamares --remove'];
18
+ static flags = {
19
+ help: Flags.help({ char: 'h' }),
20
+ install: Flags.boolean({ char: 'i', description: 'install calamares and its dependencies' }),
21
+ nointeractive: Flags.boolean({ char: 'n', description: 'no user interaction' }),
22
+ policies: Flags.boolean({ char: 'p', description: 'configure calamares policies' }),
23
+ release: Flags.boolean({ char: 'r', description: 'release: remove calamares and all its dependencies after the installation' }),
24
+ remove: Flags.boolean({ description: 'remove calamares and its dependencies' }),
25
+ theme: Flags.string({ description: 'theme/branding for eggs and calamares' }),
26
+ verbose: Flags.boolean({ char: 'v' })
27
+ };
28
+ incubator = {};
29
+ remix = {};
30
+ settings = {};
31
+ async run() {
32
+ Utils.titles(this.id + ' ' + this.argv);
33
+ this.settings = new Settings();
34
+ const { flags } = await this.parse(Calamares);
35
+ const { verbose } = flags;
36
+ const { remove } = flags;
37
+ const { install } = flags;
38
+ const { release } = flags;
39
+ const { nointeractive } = flags;
40
+ let { policies } = flags;
41
+ let theme = 'eggs';
42
+ if (flags.theme !== undefined) {
43
+ theme = flags.theme;
44
+ if (theme.includes('/')) {
45
+ if (theme.endsWith('/')) {
46
+ theme = theme.slice(0, Math.max(0, theme.length - 1));
47
+ }
48
+ }
49
+ else {
50
+ const wpath = `/home/${await Utils.getPrimaryUser()}/.wardrobe/vendors/`;
51
+ theme = wpath + flags.theme;
52
+ }
53
+ theme = path.resolve(theme);
54
+ if (!fs.existsSync(theme + '/theme')) {
55
+ console.log('Cannot find theme: ' + theme);
56
+ process.exit();
57
+ }
58
+ }
59
+ console.log(`theme: ${theme}`);
60
+ let installer = 'krill';
61
+ if (Pacman.calamaresExists()) {
62
+ installer = 'calamares';
63
+ }
64
+ if (Utils.isRoot(this.id)) {
65
+ if (!nointeractive || (await Utils.customConfirm('Select yes to continue...'))) {
66
+ if (remove) {
67
+ if (Pacman.calamaresExists()) {
68
+ await Pacman.calamaresRemove();
69
+ if (await this.settings.load()) {
70
+ this.settings.config.force_installer = false;
71
+ this.settings.save(this.settings.config);
72
+ installer = "krill";
73
+ }
74
+ }
75
+ process.exit();
76
+ }
77
+ /**
78
+ * Install
79
+ */
80
+ if (install) {
81
+ Utils.warning('installing package calamares');
82
+ await Pacman.calamaresInstall();
83
+ if (await this.settings.load()) {
84
+ this.settings.config.force_installer = true;
85
+ this.settings.save(this.settings.config);
86
+ policies = true;
87
+ installer = "calamares";
88
+ }
89
+ }
90
+ }
91
+ /**
92
+ * policies
93
+ */
94
+ if (policies) {
95
+ Utils.warning('configuring calamares policies');
96
+ await Pacman.calamaresPolicies();
97
+ }
98
+ /**
99
+ * configure
100
+ */
101
+ if (await this.settings.load()) {
102
+ await this.settings.loadRemix(theme);
103
+ const isClone = false;
104
+ this.incubator = new Incubator(this.settings.remix, this.settings.distro, this.settings.config.user_opt, theme, isClone, verbose);
105
+ await this.incubator.config(release);
106
+ }
107
+ }
108
+ else {
109
+ Utils.useRoot(this.id);
110
+ }
111
+ }
112
+ }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * ./src/commands/config.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 { Command } from '@oclif/core';
9
+ import { IInstall } from '../interfaces/index.js';
10
+ /**
11
+ *
12
+ */
13
+ export default class Config extends Command {
14
+ static description: string;
15
+ static examples: string[];
16
+ static flags: {
17
+ clean: import("@oclif/core/interfaces").BooleanFlag<boolean>;
18
+ help: import("@oclif/core/interfaces").BooleanFlag<void>;
19
+ nointeractive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
20
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
21
+ };
22
+ /**
23
+ *
24
+ * @param i
25
+ * @param verbose
26
+ */
27
+ static install(i: IInstall, nointeractive?: boolean, verbose?: boolean): Promise<void>;
28
+ /**
29
+ *
30
+ *
31
+ * @param verbose
32
+ */
33
+ static thatWeNeed(nointeractive?: boolean, verbose?: boolean, cryptedclone?: boolean): Promise<IInstall>;
34
+ run(): Promise<void>;
35
+ }
@@ -0,0 +1,120 @@
1
+ /**
2
+ * ./src/commands/config.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 { Command, Flags } from '@oclif/core';
9
+ import Bleach from '../classes/bleach.js';
10
+ import Pacman from '../classes/pacman.js';
11
+ import Utils from '../classes/utils.js';
12
+ import { exec } from '../lib/utils.js';
13
+ /**
14
+ *
15
+ */
16
+ export default class Config extends Command {
17
+ static description = 'Configure eggs to run it';
18
+ static examples = ['sudo eggs config', 'sudo eggs config --clean', 'sudo eggs config --clean --nointeractive'];
19
+ static flags = {
20
+ clean: Flags.boolean({ char: 'c', description: 'remove old configuration before to create new one' }),
21
+ help: Flags.help({ char: 'h' }),
22
+ nointeractive: Flags.boolean({ char: 'n', description: 'no user interaction' }),
23
+ verbose: Flags.boolean({ char: 'v', description: 'verbose' })
24
+ };
25
+ /**
26
+ *
27
+ * @param i
28
+ * @param verbose
29
+ */
30
+ static async install(i, nointeractive = false, verbose = false) {
31
+ const echo = Utils.setEcho(verbose);
32
+ Utils.warning("sudo eggs config");
33
+ if (i.configurationInstall) {
34
+ Utils.warning('- creating configuration...');
35
+ await Pacman.configurationInstall(verbose);
36
+ }
37
+ if (i.configurationRefresh) {
38
+ Utils.warning('- refreshing configuration for new machine...');
39
+ await Pacman.configurationMachineNew(verbose);
40
+ }
41
+ if (i.distroTemplate) {
42
+ Utils.warning('- copying distro templates...');
43
+ await Pacman.distroTemplateInstall(verbose);
44
+ }
45
+ if (i.needUpdate && !nointeractive && Pacman.distro().familyId === 'debian') {
46
+ Utils.warning('- updating system...');
47
+ await exec('apt-get update --yes', echo);
48
+ }
49
+ if (i.calamares) {
50
+ let message = "- You are on a graphic system, is suggested\n";
51
+ message += " to install the GUI installer calamares.\n";
52
+ message += ' just type: "sudo eggs calamares --install"';
53
+ Utils.warning(message);
54
+ }
55
+ if (i.addEfi && Pacman.distro().familyId === 'debian') {
56
+ Utils.warning('- installing UEFI support');
57
+ await exec('apt-get install grub-efi-' + Utils.uefiArch() + '-bin --yes', echo);
58
+ }
59
+ if (i.needUpdate && !nointeractive) {
60
+ Utils.warning('cleaning the system...');
61
+ if (Pacman.distro().familyId === 'debian') {
62
+ const bleach = new Bleach();
63
+ await bleach.clean(verbose);
64
+ }
65
+ }
66
+ }
67
+ /**
68
+ *
69
+ *
70
+ * @param verbose
71
+ */
72
+ static async thatWeNeed(nointeractive = false, verbose = false, cryptedclone = false) {
73
+ const i = {};
74
+ i.distroTemplate = !Pacman.distroTemplateCheck();
75
+ i.addEfi = !Pacman.isUefi();
76
+ i.calamares = false;
77
+ if (!cryptedclone &&
78
+ !Pacman.calamaresExists() &&
79
+ Pacman.isInstalledGui() &&
80
+ Pacman.isCalamaresAvailable()) {
81
+ i.calamares = true;
82
+ }
83
+ i.configurationInstall = !Pacman.configurationCheck();
84
+ if (!i.configurationInstall) {
85
+ i.configurationRefresh = !Pacman.configurationMachineNew();
86
+ }
87
+ return i;
88
+ }
89
+ async run() {
90
+ const { flags } = await this.parse(Config);
91
+ const { nointeractive } = flags;
92
+ const { verbose } = flags;
93
+ if (!nointeractive) {
94
+ Utils.titles(this.id + ' ' + this.argv);
95
+ }
96
+ if (Utils.isRoot(this.id)) {
97
+ if (flags.clean) {
98
+ Utils.warning('removing old configurations');
99
+ await exec('rm /etc/penguins-eggs.d -rf');
100
+ }
101
+ /**
102
+ * Se stiamo utilizzando eggs da sorgenti
103
+ * Aggiungo autocomplete e manPage
104
+ */
105
+ if (Utils.isSources()) {
106
+ Utils.warning('creating autocomplete...');
107
+ await Pacman.autocompleteInstall(verbose);
108
+ Utils.warning('creating eggs man page...');
109
+ await Pacman.manPageInstall(verbose);
110
+ }
111
+ const i = await Config.thatWeNeed(nointeractive, verbose);
112
+ if (i.needUpdate || i.configurationInstall || i.configurationRefresh || i.distroTemplate) {
113
+ await Config.install(i, nointeractive, verbose);
114
+ }
115
+ }
116
+ else {
117
+ Utils.useRoot(this.id);
118
+ }
119
+ }
120
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * ./src/commands/cuckoo.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 { Command } from '@oclif/core';
9
+ export default class Cuckoo extends Command {
10
+ static description: string;
11
+ static examples: string[];
12
+ static flags: {
13
+ help: import("@oclif/core/interfaces").BooleanFlag<void>;
14
+ };
15
+ run(): Promise<void>;
16
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * ./src/commands/cuckoo.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 { Command, Flags } from '@oclif/core';
9
+ import network from '../classes/network.js';
10
+ import Pxe from '../classes/pxe.js';
11
+ import Settings from '../classes/settings.js';
12
+ import Utils from '../classes/utils.js';
13
+ export default class Cuckoo extends Command {
14
+ static description = 'PXE start with proxy-dhcp';
15
+ static examples = ['sudo eggs cuckoo'];
16
+ static flags = {
17
+ help: Flags.help({ char: 'h' })
18
+ };
19
+ async run() {
20
+ const { args, flags } = await this.parse(Cuckoo);
21
+ Utils.titles(this.id + ' ' + this.argv);
22
+ if (Utils.isRoot()) {
23
+ const settings = new Settings();
24
+ settings.load();
25
+ const nest = settings.config.snapshot_mnt;
26
+ const pxeRoot = nest + 'pxe';
27
+ const pxe = new Pxe(nest, pxeRoot);
28
+ await pxe.fertilization();
29
+ await pxe.build();
30
+ const n = new network();
31
+ /**
32
+ * service proxy-dhcp
33
+ */
34
+ const dhcpOptions = {
35
+ bios_filename: 'lpxelinux.0',
36
+ efi32_filename: 'ipxe32.efi',
37
+ efi64_filename: 'ipxe.efi',
38
+ host: n.address,
39
+ subnet: n.cidr,
40
+ tftpserver: n.address
41
+ };
42
+ pxe.dhcpStart(dhcpOptions);
43
+ /**
44
+ * service tftp
45
+ */
46
+ const tftpOptions = {
47
+ denyPUT: true,
48
+ host: n.address,
49
+ port: 69,
50
+ root: pxeRoot
51
+ };
52
+ await pxe.tftpStart(tftpOptions);
53
+ /**
54
+ * service http
55
+ */
56
+ await pxe.httpStart();
57
+ }
58
+ else {
59
+ Utils.useRoot(this.id);
60
+ }
61
+ }
62
+ }