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,37 @@
1
+ /**
2
+ * ./src/commands/tools/clean.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 Utils from '../../classes/utils.js';
11
+ export default class Clean extends Command {
12
+ static description = 'clean system log, apt, etc';
13
+ static examples = ['sudo eggs tools clean'];
14
+ static flags = {
15
+ help: Flags.help({ char: 'h' }),
16
+ nointeractive: Flags.boolean({ char: 'n', description: 'no user interaction' }),
17
+ verbose: Flags.boolean({ char: 'v', description: 'verbose' })
18
+ };
19
+ async run() {
20
+ const { flags } = await this.parse(Clean);
21
+ Utils.titles(this.id + ' ' + this.argv);
22
+ let verbose = false;
23
+ if (flags.verbose) {
24
+ verbose = true;
25
+ }
26
+ const { nointeractive } = flags;
27
+ if (Utils.isRoot()) {
28
+ if (nointeractive || (await Utils.customConfirm('Select yes to continue...'))) {
29
+ const bleach = new Bleach();
30
+ bleach.clean(verbose);
31
+ }
32
+ }
33
+ else {
34
+ Utils.useRoot(this.id);
35
+ }
36
+ }
37
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * ./src/commands/tools/ppa.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 Ppa extends Command {
13
+ static description: string;
14
+ static examples: string[];
15
+ static flags: {
16
+ add: import("@oclif/core/interfaces").BooleanFlag<boolean>;
17
+ help: import("@oclif/core/interfaces").BooleanFlag<void>;
18
+ nointeractive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
19
+ remove: import("@oclif/core/interfaces").BooleanFlag<boolean>;
20
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
21
+ };
22
+ /**
23
+ *
24
+ */
25
+ run(): Promise<void>;
26
+ }
@@ -0,0 +1,138 @@
1
+ /**
2
+ * ./src/commands/tools/ppa.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 Distro from '../../classes/distro.js';
11
+ import Utils from '../../classes/utils.js';
12
+ import { exec } from '../../lib/utils.js';
13
+ const fkey = '/etc/apt/trusted.gpg.d/penguins-eggs-key.gpg';
14
+ const flist = '/etc/apt/sources.list.d/penguins-eggs-ppa.list';
15
+ /**
16
+ *
17
+ */
18
+ export default class Ppa extends Command {
19
+ static description = 'add/remove repo';
20
+ static examples = ['sudo eggs tools ppa --add', 'sudo eggs tools ppa --remove'];
21
+ static flags = {
22
+ add: Flags.boolean({ char: 'a', description: 'add penguins-eggs PPA repository' }),
23
+ help: Flags.help({ char: 'h' }),
24
+ nointeractive: Flags.boolean({ char: 'n', description: 'no user interaction' }),
25
+ remove: Flags.boolean({ char: 'r', description: 'remove penguins-eggs PPA repository' }),
26
+ verbose: Flags.boolean({ char: 'v', description: 'verbose' })
27
+ };
28
+ /**
29
+ *
30
+ */
31
+ async run() {
32
+ const { flags } = await this.parse(Ppa);
33
+ Utils.titles(this.id + ' ' + this.argv);
34
+ let verbose = false;
35
+ if (flags.verbose) {
36
+ verbose = true;
37
+ }
38
+ const { nointeractive } = flags;
39
+ if (Utils.isRoot()) {
40
+ const distro = new Distro();
41
+ /**
42
+ * Debian
43
+ */
44
+ if (distro.familyId === 'debian') {
45
+ if (flags.add) {
46
+ Utils.warning(`Are you sure to add ${flist} to your repositories?`);
47
+ if (nointeractive || (await Utils.customConfirm('Select yes to continue...'))) {
48
+ await debianAdd();
49
+ }
50
+ }
51
+ else if (flags.remove) {
52
+ Utils.warning(`Are you sure to remove ${flist} to your repositories?`);
53
+ if (nointeractive || (await Utils.customConfirm('Select yes to continue...'))) {
54
+ await debianRemove();
55
+ }
56
+ }
57
+ /**
58
+ * archlinux
59
+ */
60
+ }
61
+ if (distro.familyId === 'archlinux') {
62
+ if (flags.add) {
63
+ if (distro.distroId !== 'ManjaroLinux') {
64
+ Utils.warning(`Are you sure to add chaotic-aur to your repositories?`);
65
+ if (await Utils.customConfirm('Select yes to continue...')) {
66
+ await archAdd();
67
+ }
68
+ }
69
+ }
70
+ else if (flags.remove) {
71
+ await archRemove();
72
+ }
73
+ }
74
+ else {
75
+ /**
76
+ * Others
77
+ */
78
+ Utils.warning(`Distro> ${distro.distroId}/${distro.codenameId}, cannot use this command here!`);
79
+ }
80
+ }
81
+ }
82
+ }
83
+ /**
84
+ * archAdd
85
+ */
86
+ async function archAdd() {
87
+ const path = '/var/cache/pacman/pkg/';
88
+ const keyring = 'chaotic-keyring.pkg.tar.zst';
89
+ const mirrorlist = 'chaotic-mirrorlist.pkg.tar.zst';
90
+ const echo = Utils.setEcho(true);
91
+ if (fs.existsSync(path + keyring) && fs.existsSync(path + mirrorlist)) {
92
+ console.log('repository chaotic-aur, already present!');
93
+ await archRemove();
94
+ process.exit();
95
+ }
96
+ await exec('pacman-key --recv-key FBA220DFC880C036 --keyserver keyserver.ubuntu.com', echo);
97
+ await exec('pacman-key --lsign-key FBA220DFC880C036', echo);
98
+ await exec("pacman -U 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'", echo);
99
+ // Append to /etc/pacman.conf
100
+ const chaoticAppend = '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist\n\n';
101
+ fs.appendFileSync('/etc/pacman.conf', chaoticAppend);
102
+ }
103
+ /**
104
+ * archRemove
105
+ */
106
+ async function archRemove() {
107
+ const path = '/var/cache/pacman/pkg/';
108
+ const keyring = 'chaotic-keyring.pkg.tar.zst';
109
+ const mirrorlist = 'chaotic-mirrorlist.pkg.tar.zst';
110
+ const echo = Utils.setEcho(true);
111
+ if (fs.existsSync(path + keyring) && fs.existsSync(path + mirrorlist)) {
112
+ console.log('to remove chaotic-aur:\n');
113
+ console.log(`sudo rm ${path}${keyring}`);
114
+ console.log(`sudo rm ${path}${mirrorlist}`);
115
+ console.log(`sudo nano /etc/pacman.conf`);
116
+ console.log(`remove at the end:`);
117
+ console.log(`[chaotic-aur]`);
118
+ console.log(`Include = /etc/pacman.d/chaotic-mirrorlist`);
119
+ }
120
+ }
121
+ /**
122
+ * debianAdd
123
+ */
124
+ async function debianAdd() {
125
+ await exec(`curl -sS https://pieroproietti.github.io/penguins-eggs-ppa/KEY.gpg| gpg --dearmor | sudo tee ${fkey} > /dev/null`);
126
+ const content = `deb [signed-by=${fkey}] https://pieroproietti.github.io/penguins-eggs-ppa ./\n`;
127
+ fs.writeFileSync(flist, content);
128
+ await exec('apt-get update');
129
+ }
130
+ /**
131
+ * debianRemove
132
+ */
133
+ async function debianRemove() {
134
+ await exec('rm -f /etc/apt/trusted.gpg.d/penguins-eggs*');
135
+ await exec('rm -f /etc/apt/sources.list.d/penguins-eggs*');
136
+ await exec('rm -f /usr/share/keyrings/penguins-eggs*');
137
+ await exec('apt-get update');
138
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * ./src/commands/tools/skel.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 Skel extends Command {
10
+ static description: string;
11
+ static examples: string[];
12
+ static flags: {
13
+ help: import("@oclif/core/interfaces").BooleanFlag<void>;
14
+ user: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
+ };
17
+ run(): Promise<void>;
18
+ }
@@ -0,0 +1,44 @@
1
+ /**
2
+ * ./src/commands/tools/skel.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 Utils from '../../classes/utils.js';
11
+ import Xdg from '../../classes/xdg.js';
12
+ export default class Skel extends Command {
13
+ static description = 'update skel from home configuration';
14
+ static examples = ['sudo eggs tools skel', 'sudo eggs tools skel --user user-to-be-copied'];
15
+ static flags = {
16
+ help: Flags.help({ char: 'h' }),
17
+ user: Flags.string({ char: 'u', description: 'user to be used' }),
18
+ verbose: Flags.boolean({ char: 'v' })
19
+ };
20
+ async run() {
21
+ Utils.titles(this.id + ' ' + this.argv);
22
+ const { flags } = await this.parse(Skel);
23
+ let verbose = false;
24
+ if (flags.verbose) {
25
+ verbose = true;
26
+ }
27
+ let user = '';
28
+ user = flags.user ? flags.user : await Utils.getPrimaryUser();
29
+ Utils.warning(`user: ${user}`);
30
+ const homeSource = `/home/${user}`;
31
+ if (!fs.existsSync(homeSource)) {
32
+ Utils.error(`User ${user} not exist or not exist a proper home`);
33
+ Utils.warning('terminate');
34
+ process.exit(0);
35
+ }
36
+ if (Utils.isRoot()) {
37
+ Utils.titles('skel');
38
+ Xdg.skel(user, verbose);
39
+ }
40
+ else {
41
+ Utils.useRoot(this.id);
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * ./src/commands/tools/stat.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 ToolsStat extends Command {
13
+ static description: string;
14
+ static examples: string[];
15
+ static flags: {
16
+ help: import("@oclif/core/interfaces").BooleanFlag<void>;
17
+ month: import("@oclif/core/interfaces").BooleanFlag<boolean>;
18
+ year: import("@oclif/core/interfaces").BooleanFlag<boolean>;
19
+ };
20
+ /**
21
+ *
22
+ */
23
+ run(): Promise<void>;
24
+ /**
25
+ *
26
+ * @param start
27
+ * @param end
28
+ * @param type
29
+ */
30
+ show(start: string, end: string, type?: string): Promise<void>;
31
+ }
@@ -0,0 +1,70 @@
1
+ /**
2
+ * ./src/commands/tools/stat.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 axios from 'axios';
10
+ import https from 'node:https';
11
+ import Utils from '../../classes/utils.js';
12
+ const agent = new https.Agent({
13
+ rejectUnauthorized: false
14
+ });
15
+ /**
16
+ *
17
+ */
18
+ export default class ToolsStat extends Command {
19
+ static description = 'get statistics from sourceforge';
20
+ static examples = ['eggs tools stat', 'eggs tools stat --month', 'eggs tools stat --year'];
21
+ static flags = {
22
+ help: Flags.help({ char: 'h' }),
23
+ month: Flags.boolean({ char: 'm', description: 'current month' }),
24
+ year: Flags.boolean({ char: 'y', description: 'current year' })
25
+ };
26
+ /**
27
+ *
28
+ */
29
+ async run() {
30
+ const { args, flags } = await this.parse(ToolsStat);
31
+ Utils.titles(this.id + ' ' + this.argv);
32
+ const yesterday = new Date();
33
+ yesterday.setDate(yesterday.getDate() - 1);
34
+ // current date
35
+ // adjust 0 before single digit date
36
+ const day = ('0' + yesterday.getDate()).slice(-2);
37
+ // current month
38
+ const month = ('0' + (yesterday.getMonth() + 1)).slice(-2);
39
+ // current year
40
+ const year = yesterday.getFullYear();
41
+ const end = year + '-' + month + '-' + day;
42
+ let start = year + '-' + month + '-' + day;
43
+ if (flags.month) {
44
+ start = year + '-' + month + '-01';
45
+ }
46
+ if (flags.year) {
47
+ start = year + '-01-01';
48
+ }
49
+ this.log('start: ' + start + ', end: ' + end + '\n');
50
+ await this.show(start, end, 'DEBS');
51
+ console.log();
52
+ await this.show(start, end, 'ISOS');
53
+ }
54
+ /**
55
+ *
56
+ * @param start
57
+ * @param end
58
+ * @param type
59
+ */
60
+ async show(start, end, type = 'DEBS') {
61
+ let url = `https://sourceforge.net/projects/penguins-eggs/files/${type}/stats/json`;
62
+ const request = '?start_date=' + start + '&end_date=' + end;
63
+ url += request;
64
+ const res = await axios.get(url, { httpsAgent: agent });
65
+ console.log(type);
66
+ for (const country of res.data.countries) {
67
+ console.log('- ' + country[0] + ': ' + country[1]);
68
+ }
69
+ }
70
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * ./src/commands/tools/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 { Command } from '@oclif/core';
9
+ /**
10
+ *
11
+ */
12
+ export default class ToolsYolk extends Command {
13
+ static description: string;
14
+ static dir: string;
15
+ static examples: string[];
16
+ static flags: {
17
+ help: import("@oclif/core/interfaces").BooleanFlag<void>;
18
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
19
+ };
20
+ /**
21
+ *
22
+ */
23
+ run(): Promise<void>;
24
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * ./src/commands/tools/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 { Command, Flags } from '@oclif/core';
9
+ import fs from 'node:fs';
10
+ import shx from 'shelljs';
11
+ import Utils from '../../classes/utils.js';
12
+ import Yolk from '../../classes/yolk.js';
13
+ /**
14
+ *
15
+ */
16
+ export default class ToolsYolk extends Command {
17
+ static description = 'configure eggs to install without internet';
18
+ static dir = '/var/local/yolk';
19
+ static examples = ['sudo eggs tools yolk'];
20
+ static flags = {
21
+ help: Flags.help({ char: 'h' }),
22
+ verbose: Flags.boolean({ char: 'v' })
23
+ };
24
+ /**
25
+ *
26
+ */
27
+ async run() {
28
+ Utils.titles(this.id + ' ' + this.argv);
29
+ const { flags } = await this.parse(ToolsYolk);
30
+ let verbose = false;
31
+ if (flags.verbose) {
32
+ verbose = true;
33
+ }
34
+ if (Utils.isRoot()) {
35
+ if (fs.existsSync(ToolsYolk.dir)) {
36
+ shx.exec(`rm ${ToolsYolk.dir} -rf `);
37
+ }
38
+ const yolk = new Yolk();
39
+ await yolk.create(verbose);
40
+ }
41
+ else {
42
+ Utils.useRoot(this.id);
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,47 @@
1
+ /**
2
+ * ./src/commands/syncfrom.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 Update 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
+ /**
20
+ * Altrimenti, seleziona il tipo di
21
+ * aggiornamento desiderato
22
+ * indipendentemente dal flag
23
+ */
24
+ chooseUpdate(): Promise<void>;
25
+ /**
26
+ *
27
+ */
28
+ chosenDeb(): Promise<string>;
29
+ /**
30
+ *
31
+ */
32
+ getDebFromApt(): Promise<void>;
33
+ /**
34
+ * download da LAN
35
+ */
36
+ getDebFromLan(): Promise<void>;
37
+ /**
38
+ *
39
+ */
40
+ getDebFromManual(): Promise<void>;
41
+ /**
42
+ *
43
+ * @param aptVersion
44
+ */
45
+ getFromSources(): void;
46
+ run(): Promise<void>;
47
+ }
@@ -0,0 +1,140 @@
1
+ /**
2
+ * ./src/commands/syncfrom.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 inquirer from 'inquirer';
10
+ import Pacman from '../classes/pacman.js';
11
+ import Tools from '../classes/tools.js';
12
+ import Utils from '../classes/utils.js';
13
+ import { exec } from '../lib/utils.js';
14
+ /**
15
+ *
16
+ */
17
+ export default class Update extends Command {
18
+ static description = "update the Penguins' eggs tool";
19
+ static examples = ['eggs update'];
20
+ static flags = {
21
+ help: Flags.help({ char: 'h' }),
22
+ verbose: Flags.boolean({ char: 'v', description: 'verbose' })
23
+ };
24
+ /**
25
+ * Altrimenti, seleziona il tipo di
26
+ * aggiornamento desiderato
27
+ * indipendentemente dal flag
28
+ */
29
+ async chooseUpdate() {
30
+ console.log();
31
+ const choose = await this.chosenDeb();
32
+ Utils.titles(`updating via ${choose}`);
33
+ switch (choose) {
34
+ case 'apt': {
35
+ await this.getDebFromApt();
36
+ break;
37
+ }
38
+ case 'lan': {
39
+ await this.getDebFromLan();
40
+ break;
41
+ }
42
+ case 'manual': {
43
+ this.getDebFromManual();
44
+ break;
45
+ }
46
+ case 'sources': {
47
+ this.getFromSources();
48
+ break;
49
+ }
50
+ // No default
51
+ }
52
+ }
53
+ /**
54
+ *
55
+ */
56
+ async chosenDeb() {
57
+ const choices = ['abort'];
58
+ choices.push('apt', 'lan', 'manual', 'sources');
59
+ const questions = [
60
+ {
61
+ choices,
62
+ message: 'select update method',
63
+ name: 'selected',
64
+ type: 'list'
65
+ }
66
+ ];
67
+ const answer = await inquirer.prompt(questions);
68
+ if (answer.selected === 'abort') {
69
+ process.exit(0);
70
+ }
71
+ return answer.selected;
72
+ }
73
+ /**
74
+ *
75
+ */
76
+ async getDebFromApt() {
77
+ if (await Pacman.packageAptAvailable('eggs')) {
78
+ await exec('apt reinstall eggs');
79
+ }
80
+ else {
81
+ console.log('eggs is not present in your repositories');
82
+ console.log('but you can upgrade from internet');
83
+ }
84
+ }
85
+ /**
86
+ * download da LAN
87
+ */
88
+ async getDebFromLan() {
89
+ const Tu = new Tools();
90
+ await Tu.loadSettings();
91
+ Utils.warning('import from lan');
92
+ const cmd = `scp ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathDeb}${Tu.config.filterDeb}${Utils.uefiArch()}.deb /tmp`;
93
+ await exec(cmd, { capture: true, echo: true });
94
+ if (await Utils.customConfirm(`Want to install ${Tu.config.filterDeb}${Utils.uefiArch()}.deb`)) {
95
+ await exec(`dpkg -i /tmp/${Tu.config.filterDeb}${Utils.uefiArch()}.deb`);
96
+ }
97
+ }
98
+ /**
99
+ *
100
+ */
101
+ async getDebFromManual() {
102
+ console.log('Download package from: \n\nhttps://sourceforge.net/projects/penguins-eggs/files/packages-deb/');
103
+ console.log('\nand install it with:');
104
+ console.log('\nsudo dpkg -i eggs_x.x.x-1.deb');
105
+ }
106
+ /**
107
+ *
108
+ * @param aptVersion
109
+ */
110
+ getFromSources() {
111
+ console.log('You can upgrade getting a new version from git:');
112
+ console.log('cd ~/penguins-eggs');
113
+ console.log('git pull');
114
+ console.log('');
115
+ console.log('Or You can also create a fresh installation on your hone:');
116
+ console.log('cd ~');
117
+ console.log('git clone https://github.com/pieroproietti/penguins-eggs');
118
+ console.log('');
119
+ console.log('Before to use eggs from sources, remember to install npm packages:');
120
+ console.log('cd ~/penguins-eggs');
121
+ console.log('npm install');
122
+ }
123
+ async run() {
124
+ Utils.titles(this.id + ' ' + this.argv);
125
+ const { flags } = await this.parse(Update);
126
+ Utils.titles(this.id + ' ' + this.argv);
127
+ if (Utils.isRoot()) {
128
+ if (Utils.isSources()) {
129
+ Utils.warning(`You are on penguins-eggs v. ${Utils.getPackageVersion()} from sources`);
130
+ }
131
+ else if (Utils.isDebPackage()) {
132
+ Utils.warning(`You are on eggs-${Utils.getPackageVersion()} installed as package .deb`);
133
+ }
134
+ await this.chooseUpdate();
135
+ }
136
+ else {
137
+ Utils.useRoot(this.id);
138
+ }
139
+ }
140
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * ./src/commands/wardrobe/get.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 Get extends Command {
13
+ static args: {
14
+ repo: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
15
+ };
16
+ static description: string;
17
+ static examples: string[];
18
+ static flags: {
19
+ help: import("@oclif/core/interfaces").BooleanFlag<void>;
20
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
21
+ };
22
+ run(): Promise<void>;
23
+ }