penguins-eggs 10.0.28 → 10.0.30

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 (361) 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 +92 -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 +15 -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 +82 -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 +48 -0
  276. package/dist/krill/modules/m-keyboard.d.ts +14 -0
  277. package/dist/krill/modules/m-keyboard.js +79 -0
  278. package/dist/krill/modules/m-timezone.d.ts +14 -0
  279. package/dist/krill/modules/m-timezone.js +22 -0
  280. package/dist/krill/modules/machine-id.d.ts +15 -0
  281. package/dist/krill/modules/machine-id.js +30 -0
  282. package/dist/krill/modules/mkfs.d.ts +13 -0
  283. package/dist/krill/modules/mkfs.js +48 -0
  284. package/dist/krill/modules/mount-fs.d.ts +17 -0
  285. package/dist/krill/modules/mount-fs.js +60 -0
  286. package/dist/krill/modules/mount-vfs.d.ts +17 -0
  287. package/dist/krill/modules/mount-vfs.js +40 -0
  288. package/dist/krill/modules/network-cfg.d.ts +19 -0
  289. package/dist/krill/modules/network-cfg.js +64 -0
  290. package/dist/krill/modules/packages.d.ts +14 -0
  291. package/dist/krill/modules/packages.js +111 -0
  292. package/dist/krill/modules/partition.d.ts +20 -0
  293. package/dist/krill/modules/partition.js +324 -0
  294. package/dist/krill/modules/remove-installer-link.d.ts +13 -0
  295. package/dist/krill/modules/remove-installer-link.js +35 -0
  296. package/dist/krill/modules/umount.d.ts +14 -0
  297. package/dist/krill/modules/umount.js +27 -0
  298. package/dist/krill/modules/unpackfs.d.ts +13 -0
  299. package/dist/krill/modules/unpackfs.js +19 -0
  300. package/dist/krill/prepare.d.ts +78 -0
  301. package/dist/krill/prepare.js +626 -0
  302. package/dist/krill/sequence.d.ts +159 -0
  303. package/dist/krill/sequence.js +687 -0
  304. package/dist/lib/get_address.d.ts +8 -0
  305. package/dist/lib/get_address.js +23 -0
  306. package/dist/lib/get_dns.d.ts +8 -0
  307. package/dist/lib/get_dns.js +23 -0
  308. package/dist/lib/get_domain.d.ts +8 -0
  309. package/dist/lib/get_domain.js +23 -0
  310. package/dist/lib/get_gateway.d.ts +8 -0
  311. package/dist/lib/get_gateway.js +23 -0
  312. package/dist/lib/get_hostname.d.ts +8 -0
  313. package/dist/lib/get_hostname.js +23 -0
  314. package/dist/lib/get_netmask.d.ts +8 -0
  315. package/dist/lib/get_netmask.js +23 -0
  316. package/dist/lib/get_password.d.ts +8 -0
  317. package/dist/lib/get_password.js +36 -0
  318. package/dist/lib/get_userfullname.d.ts +8 -0
  319. package/dist/lib/get_userfullname.js +23 -0
  320. package/dist/lib/get_username.d.ts +8 -0
  321. package/dist/lib/get_username.js +23 -0
  322. package/dist/lib/kill_me_softly.d.ts +11 -0
  323. package/dist/lib/kill_me_softly.js +61 -0
  324. package/dist/lib/select_address_type.d.ts +8 -0
  325. package/dist/lib/select_address_type.js +24 -0
  326. package/dist/lib/select_filesystem_type.d.ts +8 -0
  327. package/dist/lib/select_filesystem_type.js +45 -0
  328. package/dist/lib/select_installation_device.d.ts +8 -0
  329. package/dist/lib/select_installation_device.js +30 -0
  330. package/dist/lib/select_installation_mode.d.ts +8 -0
  331. package/dist/lib/select_installation_mode.js +24 -0
  332. package/dist/lib/select_interface.d.ts +8 -0
  333. package/dist/lib/select_interface.js +24 -0
  334. package/dist/lib/select_keyboard_layout.d.ts +11 -0
  335. package/dist/lib/select_keyboard_layout.js +36 -0
  336. package/dist/lib/select_keyboard_model.d.ts +11 -0
  337. package/dist/lib/select_keyboard_model.js +34 -0
  338. package/dist/lib/select_keyboard_option.d.ts +11 -0
  339. package/dist/lib/select_keyboard_option.js +34 -0
  340. package/dist/lib/select_keyboard_variant.d.ts +11 -0
  341. package/dist/lib/select_keyboard_variant.js +35 -0
  342. package/dist/lib/select_languages.d.ts +8 -0
  343. package/dist/lib/select_languages.js +28 -0
  344. package/dist/lib/select_regions.d.ts +8 -0
  345. package/dist/lib/select_regions.js +24 -0
  346. package/dist/lib/select_user_swap_choice.d.ts +8 -0
  347. package/dist/lib/select_user_swap_choice.js +34 -0
  348. package/dist/lib/select_zones.d.ts +8 -0
  349. package/dist/lib/select_zones.js +518 -0
  350. package/dist/lib/utils.d.ts +34 -0
  351. package/dist/lib/utils.js +79 -0
  352. package/manpages/doc/man/eggs.1.gz +0 -0
  353. package/manpages/doc/man/eggs.html +21 -5
  354. package/mkinitfs/README.md +9 -0
  355. package/package.json +4 -4
  356. package/scripts/_eggs +9 -2
  357. package/scripts/eggs.bash +2 -1
  358. package/addons/eggs/ichoice/applications/eggs-ichoice.desktop +0 -23
  359. package/addons/eggs/ichoice/bin/eggs-ichoice.sh +0 -44
  360. package/scripts/love +0 -25
  361. /package/{addons/eggs/adapt/bin/adapt → scripts/adapt.sh} +0 -0
@@ -0,0 +1,51 @@
1
+ /**
2
+ * ./src/commands/export/deb.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 Tools from '../../classes/tools.js';
10
+ import Utils from '../../classes/utils.js';
11
+ import { exec } from '../../lib/utils.js';
12
+ export default class ExportDeb extends Command {
13
+ static description = 'export deb/docs/iso to the destination host';
14
+ static examples = ['eggs export deb', 'eggs export deb --clean', 'eggs export deb --all'];
15
+ static flags = {
16
+ all: Flags.boolean({ char: 'a', description: 'export all archs' }),
17
+ clean: Flags.boolean({ char: 'c', description: 'remove old .deb before to copy' }),
18
+ help: Flags.help({ char: 'h' }),
19
+ verbose: Flags.boolean({ char: 'v', description: 'verbose' })
20
+ };
21
+ async run() {
22
+ const { args, flags } = await this.parse(ExportDeb);
23
+ Utils.titles(this.id + ' ' + this.argv);
24
+ const Tu = new Tools();
25
+ Utils.warning(ExportDeb.description);
26
+ await Tu.loadSettings();
27
+ const echo = Utils.setEcho(flags.verbose);
28
+ let arch = Utils.uefiArch();
29
+ if (flags.all) {
30
+ arch = '*';
31
+ }
32
+ arch += '.deb';
33
+ const remoteMountpoint = `/tmp/eggs-${(Math.random() + 1).toString(36).slice(7)}`;
34
+ let cmd = `mkdir ${remoteMountpoint}\n`;
35
+ cmd += `sshfs ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathDeb} ${remoteMountpoint}\n`;
36
+ if (flags.clean) {
37
+ cmd += `rm -f ${remoteMountpoint}/${Tu.config.filterDeb}${arch}\n`;
38
+ }
39
+ cmd += `cp ${Tu.config.localPathDeb}${Tu.config.filterDeb}${arch} ${remoteMountpoint}\n`;
40
+ cmd += 'sync\n';
41
+ cmd += `umount ${remoteMountpoint}\n`;
42
+ cmd += `rm -rf ${remoteMountpoint}\n`;
43
+ if (!flags.verbose) {
44
+ if (flags.clean) {
45
+ console.log(`remove: ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.filterDeb}${arch}`);
46
+ }
47
+ console.log(`copy: ${Tu.config.localPathDeb}${Tu.config.filterDeb}${arch} to ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathDeb}`);
48
+ }
49
+ await exec(cmd, echo);
50
+ }
51
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * ./src/commands/export/iso.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 ExportIso extends Command {
10
+ static description: string;
11
+ static examples: string[];
12
+ static flags: {
13
+ checksum: import("@oclif/core/interfaces").BooleanFlag<boolean>;
14
+ clean: import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
+ help: import("@oclif/core/interfaces").BooleanFlag<void>;
16
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
17
+ };
18
+ run(): Promise<void>;
19
+ }
@@ -0,0 +1,55 @@
1
+ /**
2
+ * ./src/commands/export/iso.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 Tools from '../../classes/tools.js';
10
+ import Utils from '../../classes/utils.js';
11
+ import { exec } from '../../lib/utils.js';
12
+ export default class ExportIso extends Command {
13
+ static description = 'export iso in the destination host';
14
+ static examples = ['eggs export iso', 'eggs export iso --clean'];
15
+ static flags = {
16
+ checksum: Flags.boolean({ char: 'C', description: 'export checksums md5 and sha256' }),
17
+ clean: Flags.boolean({ char: 'c', description: 'delete old ISOs before to copy' }),
18
+ help: Flags.help({ char: 'h' }),
19
+ verbose: Flags.boolean({ char: 'v', description: 'verbose' })
20
+ };
21
+ async run() {
22
+ const { flags } = await this.parse(ExportIso);
23
+ Utils.titles(this.id + ' ' + this.argv);
24
+ Utils.warning(ExportIso.description);
25
+ const Tu = new Tools();
26
+ await Tu.loadSettings();
27
+ const echo = Utils.setEcho(flags.verbose);
28
+ const rmount = `/tmp/eggs-${(Math.random() + 1).toString(36).slice(7)}`;
29
+ let cmd = `rm -f ${rmount}\n`;
30
+ const filters = ['*.iso', '*.md5', '*.sha256'];
31
+ cmd += `mkdir ${rmount}\n`;
32
+ cmd += `sshfs ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathIso} ${rmount}\n`;
33
+ if (flags.clean) {
34
+ cmd += `rm -f ${rmount}/${Tu.snapshot_name}*\n`;
35
+ }
36
+ cmd += `cp ${Tu.snapshot_dir}${Tu.snapshot_name}${filters[0]} ${rmount}\n`;
37
+ if (flags.checksum) {
38
+ cmd += `cp ${Tu.snapshot_dir}${Tu.snapshot_name}${filters[1]} ${rmount}\n`;
39
+ cmd += `cp ${Tu.snapshot_dir}${Tu.snapshot_name}${filters[2]} ${rmount}\n`;
40
+ }
41
+ cmd += 'sync\n';
42
+ cmd += `umount ${rmount}\n`;
43
+ cmd += `rm -f ${rmount}\m`;
44
+ if (!flags.verbose) {
45
+ if (flags.clean) {
46
+ console.log(`remove ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathIso}${Tu.snapshot_name}${filters[0]}`);
47
+ }
48
+ if (flags.checksum) {
49
+ console.log(`export ${Tu.config.localPathIso}/${Tu.snapshot_name}${filters[1]}/${filters[2]} to ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathIso}`);
50
+ }
51
+ console.log(`scp ${Tu.config.localPathIso}/${Tu.snapshot_name}${filters[0]} ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathIso}`);
52
+ }
53
+ await exec(cmd, echo);
54
+ }
55
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * ./src/commands/install.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
+ /**
10
+ * Class Krill
11
+ */
12
+ export default class Install extends Command {
13
+ static aliases: string[];
14
+ static description: string;
15
+ static examples: string[];
16
+ static flags: {
17
+ btrfs: import("@oclif/core/interfaces").BooleanFlag<boolean>;
18
+ chroot: import("@oclif/core/interfaces").BooleanFlag<boolean>;
19
+ crypted: import("@oclif/core/interfaces").BooleanFlag<boolean>;
20
+ domain: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
21
+ halt: import("@oclif/core/interfaces").BooleanFlag<boolean>;
22
+ help: import("@oclif/core/interfaces").BooleanFlag<void>;
23
+ ip: import("@oclif/core/interfaces").BooleanFlag<boolean>;
24
+ nointeractive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
25
+ none: import("@oclif/core/interfaces").BooleanFlag<boolean>;
26
+ pve: import("@oclif/core/interfaces").BooleanFlag<boolean>;
27
+ random: import("@oclif/core/interfaces").BooleanFlag<boolean>;
28
+ small: import("@oclif/core/interfaces").BooleanFlag<boolean>;
29
+ suspend: import("@oclif/core/interfaces").BooleanFlag<boolean>;
30
+ unattended: import("@oclif/core/interfaces").BooleanFlag<boolean>;
31
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
32
+ };
33
+ /**
34
+ * Execute
35
+ */
36
+ run(): Promise<void>;
37
+ }
@@ -0,0 +1,92 @@
1
+ /**
2
+ * ./src/commands/install.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 yaml from 'js-yaml';
10
+ import fs from 'node:fs';
11
+ import https from 'node:https';
12
+ import Utils from '../classes/utils.js';
13
+ import Krill from '../krill/prepare.js';
14
+ const agent = new https.Agent({
15
+ rejectUnauthorized: false
16
+ });
17
+ /**
18
+ * Class Krill
19
+ */
20
+ export default class Install extends Command {
21
+ static aliases = ['krill'];
22
+ static description = 'krill: the CLI system installer - the egg became a penguin!';
23
+ static examples = ['sudo eggs install', 'sudo eggs install --unattended --halt', 'sudo eggs install --chroot'];
24
+ static flags = {
25
+ btrfs: Flags.boolean({ char: 'b', description: 'Format btrfs' }),
26
+ chroot: Flags.boolean({ char: 'c', description: 'chroot before to end' }),
27
+ crypted: Flags.boolean({ char: 'k', description: 'Crypted CLI installation' }),
28
+ domain: Flags.string({ char: 'd', description: 'Domain name, defult: .local' }),
29
+ halt: Flags.boolean({ char: 'H', description: 'Halt the system after installation' }),
30
+ help: Flags.help({ char: 'h' }),
31
+ ip: Flags.boolean({ char: 'i', description: 'hostname as ip, eg: ip-192-168-1-33' }),
32
+ nointeractive: Flags.boolean({ char: 'n', description: 'no user interaction' }),
33
+ none: Flags.boolean({ char: 'N', description: 'Swap none: 256M' }),
34
+ pve: Flags.boolean({ char: 'p', description: 'Proxmox VE install' }),
35
+ random: Flags.boolean({ char: 'r', description: 'Add random to hostname, eg: colibri-ay412dt' }),
36
+ small: Flags.boolean({ char: 's', description: 'Swap small: RAM' }),
37
+ suspend: Flags.boolean({ char: 'S', description: 'Swap suspend: RAM x 2' }),
38
+ unattended: Flags.boolean({ char: 'u', description: 'Unattended installation' }),
39
+ verbose: Flags.boolean({ char: 'v', description: 'Verbose' })
40
+ };
41
+ /**
42
+ * Execute
43
+ */
44
+ async run() {
45
+ Utils.titles(this.id + ' ' + this.argv);
46
+ const { flags } = await this.parse(Install);
47
+ let custom = flags.custom;
48
+ const { unattended } = flags;
49
+ if (unattended) {
50
+ custom = 'us';
51
+ }
52
+ // krillConfig
53
+ let krillConfig = {};
54
+ const content = fs.readFileSync('/etc/penguins-eggs.d/krill.yaml', 'utf8');
55
+ krillConfig = yaml.load(content);
56
+ // nointeractive
57
+ const { nointeractive } = flags;
58
+ // halt
59
+ const { halt } = flags;
60
+ // hostname
61
+ const { ip } = flags;
62
+ const { random } = flags;
63
+ // chroot before to end
64
+ const { chroot } = flags;
65
+ let domain = '';
66
+ if (flags.domain) {
67
+ domain = flags.domain;
68
+ }
69
+ // swap
70
+ const { suspend } = flags;
71
+ const { small } = flags;
72
+ const { none } = flags;
73
+ let { crypted } = flags;
74
+ const { pve } = flags;
75
+ if (pve) {
76
+ crypted = false;
77
+ }
78
+ const { verbose } = flags;
79
+ if (Utils.isRoot()) {
80
+ if (Utils.isLive()) {
81
+ const krill = new Krill(unattended, nointeractive, halt, chroot);
82
+ await krill.prepare(krillConfig, ip, random, domain, suspend, small, none, crypted, pve, flags.btrfs, verbose);
83
+ }
84
+ else {
85
+ Utils.warning('You are in an installed system!');
86
+ }
87
+ }
88
+ else {
89
+ Utils.useRoot(this.id);
90
+ }
91
+ }
92
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * ./src/commands/kill.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
+ /**
10
+ *
11
+ */
12
+ export default class Kill extends Command {
13
+ static description: string;
14
+ static examples: string[];
15
+ static flags: {
16
+ help: import("@oclif/core/interfaces").BooleanFlag<void>;
17
+ isos: import("@oclif/core/interfaces").BooleanFlag<boolean>;
18
+ nointeractive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
19
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
20
+ };
21
+ config_file: string;
22
+ snapshot_dir: string;
23
+ run(): Promise<void>;
24
+ }
@@ -0,0 +1,50 @@
1
+ /**
2
+ * ./src/commands/kill.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 Settings from '../classes/settings.js';
10
+ import Utils from '../classes/utils.js';
11
+ import killMeSoftly from '../lib/kill_me_softly.js';
12
+ /**
13
+ *
14
+ */
15
+ export default class Kill extends Command {
16
+ static description = 'kill the eggs/free the nest';
17
+ static examples = ['sudo eggs kill'];
18
+ static flags = {
19
+ help: Flags.help({ char: 'h' }),
20
+ isos: Flags.boolean({ char: 'i', description: 'erase all ISOs on remote mount' }),
21
+ nointeractive: Flags.boolean({ char: 'n', description: 'no user interaction' }),
22
+ verbose: Flags.boolean({ char: 'v', description: 'verbose' })
23
+ };
24
+ config_file = '/etc/penguins-eggs.d/eggs.yaml';
25
+ snapshot_dir = '';
26
+ async run() {
27
+ Utils.titles(this.id + ' ' + this.argv);
28
+ const { flags } = await this.parse(Kill);
29
+ const { verbose } = flags;
30
+ const { isos } = flags;
31
+ const { nointeractive } = flags;
32
+ const echo = Utils.setEcho(verbose);
33
+ if (Utils.isRoot()) {
34
+ const settings = new Settings();
35
+ await settings.load();
36
+ await settings.listFreeSpace();
37
+ if (Utils.isMountpoint(settings.config.snapshot_mnt)) {
38
+ console.log('==========================================');
39
+ Utils.warning('You are working on a mountpoint');
40
+ console.log('==========================================');
41
+ }
42
+ if (nointeractive || (await Utils.customConfirm())) {
43
+ await killMeSoftly(settings.config.snapshot_dir, settings.config.snapshot_mnt, isos);
44
+ }
45
+ }
46
+ else {
47
+ Utils.useRoot(this.id);
48
+ }
49
+ }
50
+ }
@@ -0,0 +1,20 @@
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
+ /**
10
+ *
11
+ */
12
+ export default class Love extends Command {
13
+ static description: string;
14
+ static examples: string[];
15
+ static flags: {
16
+ help: import("@oclif/core/interfaces").BooleanFlag<void>;
17
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
18
+ };
19
+ run(): Promise<void>;
20
+ }
@@ -0,0 +1,55 @@
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 yaml from 'js-yaml';
10
+ import fs from 'node:fs';
11
+ import path from 'node:path';
12
+ import Utils from '../classes/utils.js';
13
+ import { exec } from '../lib/utils.js';
14
+ // _dirname
15
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
16
+ /**
17
+ *
18
+ */
19
+ export default class Love extends Command {
20
+ static description = 'the simplest way to get an egg!';
21
+ static examples = ['eggs auto'];
22
+ static flags = {
23
+ help: Flags.help({ char: 'h' }),
24
+ verbose: Flags.boolean({ char: 'v' })
25
+ };
26
+ async run() {
27
+ const { args, flags } = await this.parse(Love);
28
+ let verbose = false;
29
+ if (flags.verbose) {
30
+ verbose = true;
31
+ }
32
+ const echo = Utils.setEcho(verbose);
33
+ Utils.titles(this.id + ' ' + this.argv);
34
+ // No sudo!
35
+ if (process.getuid && process.getuid() === 0) {
36
+ Utils.warning(`You must be kind in love, please don't use sudo!`);
37
+ process.exit(0);
38
+ }
39
+ const cmds = yaml.load(fs.readFileSync('/etc/penguins-eggs.d/love.yaml', 'utf8'));
40
+ console.log('The following commands will be executed:');
41
+ console.log();
42
+ for (const cmd of cmds) {
43
+ console.log(`- ${cmd}`);
44
+ }
45
+ console.log();
46
+ if (await Utils.customConfirm()) {
47
+ for (const cmd of cmds) {
48
+ await exec(cmd);
49
+ }
50
+ }
51
+ else {
52
+ console.log('Aborted!');
53
+ }
54
+ }
55
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * ./src/commands/mom.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 Mom 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,30 @@
1
+ /**
2
+ * ./src/commands/mom.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 path from 'node:path';
10
+ import Utils from '../classes/utils.js';
11
+ import { exec } from '../lib/utils.js';
12
+ // _dirname
13
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
14
+ export default class Mom extends Command {
15
+ static description = 'ask help from mommy - TUI helper';
16
+ static examples = ['eggs mom'];
17
+ static flags = {
18
+ help: Flags.help({ char: 'h' })
19
+ };
20
+ async run() {
21
+ Utils.titles(this.id + ' ' + this.argv);
22
+ // No sudo!
23
+ if (process.getuid && process.getuid() === 0) {
24
+ Utils.warning('You must to be kind with your mom! Call her without sudo');
25
+ process.exit(0);
26
+ }
27
+ const cmd = path.resolve(__dirname, '../../scripts/mom.sh');
28
+ await exec(cmd);
29
+ }
30
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * ./src/commands/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 { Command } from '@oclif/core';
9
+ export default class Produce extends Command {
10
+ static description: string;
11
+ static examples: string[];
12
+ static flags: {
13
+ addons: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ basename: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
+ clone: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
+ cryptedclone: import("@oclif/core/interfaces").BooleanFlag<boolean>;
17
+ excludes: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
18
+ help: import("@oclif/core/interfaces").BooleanFlag<void>;
19
+ links: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
20
+ max: import("@oclif/core/interfaces").BooleanFlag<boolean>;
21
+ noicon: import("@oclif/core/interfaces").BooleanFlag<boolean>;
22
+ nointeractive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
23
+ pendrive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
24
+ prefix: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
25
+ release: import("@oclif/core/interfaces").BooleanFlag<boolean>;
26
+ script: import("@oclif/core/interfaces").BooleanFlag<boolean>;
27
+ standard: import("@oclif/core/interfaces").BooleanFlag<boolean>;
28
+ theme: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
29
+ unsecure: import("@oclif/core/interfaces").BooleanFlag<boolean>;
30
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
31
+ yolk: import("@oclif/core/interfaces").BooleanFlag<boolean>;
32
+ };
33
+ run(): Promise<void>;
34
+ }