penguins-eggs 10.0.28 → 10.0.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (359) hide show
  1. package/.oclif.manifest.json +1500 -2
  2. package/README.md +760 -0
  3. package/addons/README.md +0 -2
  4. package/addons/eggs/adapt/applications/eggs-adapt.desktop +1 -1
  5. package/addons/eggs/theme/livecd/isolinux.main.alpine.cfg +43 -0
  6. package/addons/eggs/theme/livecd/{isolinux.main.cfg → isolinux.main.original.cfg} +1 -1
  7. package/conf/distros/alpine/README.md +1 -1
  8. package/conf/distros/alpine/calamares/calamares-modules/bootloader-config/bootloader-config.sh +40 -0
  9. package/conf/distros/alpine/calamares/calamares-modules/bootloader-config/module.yml +9 -0
  10. package/conf/distros/alpine/calamares/calamares-modules/cleanup/cleanup.sh +13 -0
  11. package/conf/distros/alpine/calamares/calamares-modules/cleanup/module.yml +9 -0
  12. package/conf/distros/alpine/calamares/modules/bootloader.yml +57 -0
  13. package/conf/distros/alpine/calamares/modules/displaymanager.yml +23 -0
  14. package/conf/distros/alpine/calamares/modules/finished.yml +5 -0
  15. package/conf/distros/alpine/calamares/modules/fstab.yml +12 -0
  16. package/conf/distros/alpine/calamares/modules/locale.yml +98 -0
  17. package/conf/distros/alpine/calamares/modules/luksopenswaphookcfg.yml +5 -0
  18. package/conf/distros/alpine/calamares/modules/machineid.yml +17 -0
  19. package/conf/distros/alpine/calamares/modules/mount.yml +56 -0
  20. package/conf/distros/alpine/calamares/modules/packages.yml +6 -0
  21. package/conf/distros/alpine/calamares/modules/partition.yml +242 -0
  22. package/conf/distros/alpine/calamares/modules/removeuser.yml +15 -0
  23. package/conf/distros/alpine/calamares/modules/unpackfs.yml +6 -0
  24. package/conf/distros/alpine/calamares/modules/users.yml +18 -0
  25. package/conf/distros/alpine/calamares/modules/welcome.yml +19 -0
  26. package/conf/distros/alpine/calamares/settings.yml +57 -0
  27. package/conf/love.yaml +8 -0
  28. package/dist/classes/bleach.d.ts +32 -0
  29. package/dist/classes/bleach.js +136 -0
  30. package/dist/classes/cfs.d.ts +17 -0
  31. package/dist/classes/cfs.js +39 -0
  32. package/dist/classes/cli-autologin.d.ts +52 -0
  33. package/dist/classes/cli-autologin.js +230 -0
  34. package/dist/classes/compressors.d.ts +54 -0
  35. package/dist/classes/compressors.js +109 -0
  36. package/dist/classes/daddy.d.ts +26 -0
  37. package/dist/classes/daddy.js +161 -0
  38. package/dist/classes/distro.d.ts +36 -0
  39. package/dist/classes/distro.js +346 -0
  40. package/dist/classes/families/alpine.d.ts +55 -0
  41. package/dist/classes/families/alpine.js +163 -0
  42. package/dist/classes/families/archlinux.d.ts +61 -0
  43. package/dist/classes/families/archlinux.js +140 -0
  44. package/dist/classes/families/debian.d.ts +65 -0
  45. package/dist/classes/families/debian.js +138 -0
  46. package/dist/classes/families/fedora.d.ts +52 -0
  47. package/dist/classes/families/fedora.js +100 -0
  48. package/dist/classes/families/mockup.d.ts +60 -0
  49. package/dist/classes/families/mockup.js +79 -0
  50. package/dist/classes/families/opensuse.d.ts +52 -0
  51. package/dist/classes/families/opensuse.js +104 -0
  52. package/dist/classes/incubation/branding.d.ts +17 -0
  53. package/dist/classes/incubation/branding.js +89 -0
  54. package/dist/classes/incubation/distros/alpine.d.ts +32 -0
  55. package/dist/classes/incubation/distros/alpine.js +80 -0
  56. package/dist/classes/incubation/distros/bionic.d.ts +32 -0
  57. package/dist/classes/incubation/distros/bionic.js +83 -0
  58. package/dist/classes/incubation/distros/buster.d.ts +32 -0
  59. package/dist/classes/incubation/distros/buster.js +85 -0
  60. package/dist/classes/incubation/distros/jessie.d.ts +31 -0
  61. package/dist/classes/incubation/distros/jessie.js +44 -0
  62. package/dist/classes/incubation/distros/noble.d.ts +32 -0
  63. package/dist/classes/incubation/distros/noble.js +85 -0
  64. package/dist/classes/incubation/distros/rolling.d.ts +32 -0
  65. package/dist/classes/incubation/distros/rolling.js +82 -0
  66. package/dist/classes/incubation/fisherman-helper/displaymanager.d.ts +11 -0
  67. package/dist/classes/incubation/fisherman-helper/displaymanager.js +39 -0
  68. package/dist/classes/incubation/fisherman-helper/packages.d.ts +20 -0
  69. package/dist/classes/incubation/fisherman-helper/packages.js +72 -0
  70. package/dist/classes/incubation/fisherman-helper/settings.d.ts +15 -0
  71. package/dist/classes/incubation/fisherman-helper/settings.js +83 -0
  72. package/dist/classes/incubation/fisherman.d.ts +77 -0
  73. package/dist/classes/incubation/fisherman.js +251 -0
  74. package/dist/classes/incubation/incubator.d.ts +40 -0
  75. package/dist/classes/incubation/incubator.js +328 -0
  76. package/dist/classes/incubation/installer.d.ts +13 -0
  77. package/dist/classes/incubation/installer.js +64 -0
  78. package/dist/classes/keyboards.d.ts +50 -0
  79. package/dist/classes/keyboards.js +287 -0
  80. package/dist/classes/locales.d.ts +21 -0
  81. package/dist/classes/locales.js +80 -0
  82. package/dist/classes/n8.d.ts +18 -0
  83. package/dist/classes/n8.js +36 -0
  84. package/dist/classes/network.d.ts +37 -0
  85. package/dist/classes/network.js +98 -0
  86. package/dist/classes/ovary.d.ts +214 -0
  87. package/dist/classes/ovary.js +1872 -0
  88. package/dist/classes/pacman.d.ts +149 -0
  89. package/dist/classes/pacman.js +703 -0
  90. package/dist/classes/pve-live.d.ts +17 -0
  91. package/dist/classes/pve-live.js +52 -0
  92. package/dist/classes/pxe.d.ts +74 -0
  93. package/dist/classes/pxe.js +410 -0
  94. package/dist/classes/settings.d.ts +53 -0
  95. package/dist/classes/settings.js +185 -0
  96. package/dist/classes/sources_list.d.ts +28 -0
  97. package/dist/classes/sources_list.js +89 -0
  98. package/dist/classes/systemctl.d.ts +47 -0
  99. package/dist/classes/systemctl.js +86 -0
  100. package/dist/classes/tailor.d.ts +46 -0
  101. package/dist/classes/tailor.js +587 -0
  102. package/dist/classes/tools.d.ts +30 -0
  103. package/dist/classes/tools.js +54 -0
  104. package/dist/classes/users.d.ts +28 -0
  105. package/dist/classes/users.js +143 -0
  106. package/dist/classes/utils.d.ts +323 -0
  107. package/dist/classes/utils.js +951 -0
  108. package/dist/classes/xdg.d.ts +45 -0
  109. package/dist/classes/xdg.js +329 -0
  110. package/dist/classes/yolk.d.ts +33 -0
  111. package/dist/classes/yolk.js +114 -0
  112. package/dist/commands/adapt.d.ts +17 -0
  113. package/dist/commands/adapt.js +33 -0
  114. package/dist/commands/analyze.d.ts +26 -0
  115. package/dist/commands/analyze.js +95 -0
  116. package/dist/commands/calamares.d.ts +29 -0
  117. package/dist/commands/calamares.js +110 -0
  118. package/dist/commands/config.d.ts +35 -0
  119. package/dist/commands/config.js +192 -0
  120. package/dist/commands/cuckoo.d.ts +16 -0
  121. package/dist/commands/cuckoo.js +62 -0
  122. package/dist/commands/dad.d.ts +20 -0
  123. package/dist/commands/dad.js +46 -0
  124. package/dist/commands/export/deb.d.ts +19 -0
  125. package/dist/commands/export/deb.js +51 -0
  126. package/dist/commands/export/iso.d.ts +19 -0
  127. package/dist/commands/export/iso.js +55 -0
  128. package/dist/commands/install.d.ts +37 -0
  129. package/dist/commands/install.js +88 -0
  130. package/dist/commands/kill.d.ts +24 -0
  131. package/dist/commands/kill.js +50 -0
  132. package/dist/commands/love.d.ts +20 -0
  133. package/dist/commands/love.js +55 -0
  134. package/dist/commands/mom.d.ts +16 -0
  135. package/dist/commands/mom.js +30 -0
  136. package/dist/commands/produce.d.ts +34 -0
  137. package/dist/commands/produce.js +196 -0
  138. package/dist/commands/status.d.ts +23 -0
  139. package/dist/commands/status.js +31 -0
  140. package/dist/commands/syncfrom.d.ts +45 -0
  141. package/dist/commands/syncfrom.js +152 -0
  142. package/dist/commands/syncto.d.ts +40 -0
  143. package/dist/commands/syncto.js +175 -0
  144. package/dist/commands/tools/clean.d.ts +18 -0
  145. package/dist/commands/tools/clean.js +37 -0
  146. package/dist/commands/tools/ppa.d.ts +26 -0
  147. package/dist/commands/tools/ppa.js +138 -0
  148. package/dist/commands/tools/skel.d.ts +18 -0
  149. package/dist/commands/tools/skel.js +44 -0
  150. package/dist/commands/tools/stat.d.ts +31 -0
  151. package/dist/commands/tools/stat.js +70 -0
  152. package/dist/commands/tools/yolk.d.ts +24 -0
  153. package/dist/commands/tools/yolk.js +45 -0
  154. package/dist/commands/update.d.ts +47 -0
  155. package/dist/commands/update.js +140 -0
  156. package/dist/commands/wardrobe/get.d.ts +23 -0
  157. package/dist/commands/wardrobe/get.js +52 -0
  158. package/dist/commands/wardrobe/list.d.ts +24 -0
  159. package/dist/commands/wardrobe/list.js +125 -0
  160. package/dist/commands/wardrobe/show.d.ts +25 -0
  161. package/dist/commands/wardrobe/show.js +97 -0
  162. package/dist/commands/wardrobe/wear.d.ts +26 -0
  163. package/dist/commands/wardrobe/wear.js +81 -0
  164. package/dist/components/finished.d.ts +16 -0
  165. package/dist/components/finished.js +55 -0
  166. package/dist/components/information.d.ts +8 -0
  167. package/dist/components/information.js +153 -0
  168. package/dist/components/install.d.ts +15 -0
  169. package/dist/components/install.js +56 -0
  170. package/dist/components/keyboard.d.ts +16 -0
  171. package/dist/components/keyboard.js +54 -0
  172. package/dist/components/location.d.ts +16 -0
  173. package/dist/components/location.js +59 -0
  174. package/dist/components/network.d.ts +19 -0
  175. package/dist/components/network.js +65 -0
  176. package/dist/components/partitions.d.ts +16 -0
  177. package/dist/components/partitions.js +73 -0
  178. package/dist/components/steps.d.ts +13 -0
  179. package/dist/components/steps.js +148 -0
  180. package/dist/components/summary.d.ts +24 -0
  181. package/dist/components/summary.js +81 -0
  182. package/dist/components/title.d.ts +11 -0
  183. package/dist/components/title.js +35 -0
  184. package/dist/components/users.d.ts +24 -0
  185. package/dist/components/users.js +80 -0
  186. package/dist/components/welcome.d.ts +13 -0
  187. package/dist/components/welcome.js +63 -0
  188. package/dist/index.d.ts +8 -0
  189. package/dist/index.js +8 -0
  190. package/dist/interfaces/i-addons.d.ts +12 -0
  191. package/dist/interfaces/i-addons.js +8 -0
  192. package/dist/interfaces/i-analyze.d.ts +17 -0
  193. package/dist/interfaces/i-analyze.js +17 -0
  194. package/dist/interfaces/i-app.d.ts +14 -0
  195. package/dist/interfaces/i-app.js +8 -0
  196. package/dist/interfaces/i-branding.d.ts +36 -0
  197. package/dist/interfaces/i-branding.js +8 -0
  198. package/dist/interfaces/i-calamares-partition.d.ts +18 -0
  199. package/dist/interfaces/i-calamares-partition.js +8 -0
  200. package/dist/interfaces/i-config-tools.d.ts +18 -0
  201. package/dist/interfaces/i-config-tools.js +8 -0
  202. package/dist/interfaces/i-devices.d.ts +20 -0
  203. package/dist/interfaces/i-devices.js +8 -0
  204. package/dist/interfaces/i-distro.d.ts +27 -0
  205. package/dist/interfaces/i-distro.js +8 -0
  206. package/dist/interfaces/i-drive-list.d.ts +33 -0
  207. package/dist/interfaces/i-drive-list.js +8 -0
  208. package/dist/interfaces/i-eggs-config.d.ts +32 -0
  209. package/dist/interfaces/i-eggs-config.js +8 -0
  210. package/dist/interfaces/i-excludes.d.ts +14 -0
  211. package/dist/interfaces/i-excludes.js +8 -0
  212. package/dist/interfaces/i-exec.d.ts +11 -0
  213. package/dist/interfaces/i-exec.js +8 -0
  214. package/dist/interfaces/i-initrd.d.ts +13 -0
  215. package/dist/interfaces/i-initrd.js +8 -0
  216. package/dist/interfaces/i-install.d.ts +16 -0
  217. package/dist/interfaces/i-install.js +8 -0
  218. package/dist/interfaces/i-installer.d.ts +17 -0
  219. package/dist/interfaces/i-installer.js +8 -0
  220. package/dist/interfaces/i-krill-config.d.ts +33 -0
  221. package/dist/interfaces/i-krill-config.js +8 -0
  222. package/dist/interfaces/i-krill.d.ts +42 -0
  223. package/dist/interfaces/i-krill.js +8 -0
  224. package/dist/interfaces/i-materia.d.ts +41 -0
  225. package/dist/interfaces/i-materia.js +8 -0
  226. package/dist/interfaces/i-net.d.ts +16 -0
  227. package/dist/interfaces/i-net.js +8 -0
  228. package/dist/interfaces/i-packages.d.ts +16 -0
  229. package/dist/interfaces/i-packages.js +8 -0
  230. package/dist/interfaces/i-partitions.d.ts +16 -0
  231. package/dist/interfaces/i-partitions.js +8 -0
  232. package/dist/interfaces/i-pxe.d.ts +45 -0
  233. package/dist/interfaces/i-pxe.js +1 -0
  234. package/dist/interfaces/i-remix.d.ts +21 -0
  235. package/dist/interfaces/i-remix.js +8 -0
  236. package/dist/interfaces/i-settings.d.ts +33 -0
  237. package/dist/interfaces/i-settings.js +8 -0
  238. package/dist/interfaces/i-user.d.ts +14 -0
  239. package/dist/interfaces/i-user.js +8 -0
  240. package/dist/interfaces/i-workdir.d.ts +14 -0
  241. package/dist/interfaces/i-workdir.js +8 -0
  242. package/dist/interfaces/i-xkb-model.d.ts +24 -0
  243. package/dist/interfaces/i-xkb-model.js +8 -0
  244. package/dist/interfaces/index.d.ts +25 -0
  245. package/dist/interfaces/index.js +8 -0
  246. package/dist/krill/modules/add-user.d.ts +20 -0
  247. package/dist/krill/modules/add-user.js +49 -0
  248. package/dist/krill/modules/bootloader-config-alpine.d.ts +14 -0
  249. package/dist/krill/modules/bootloader-config-alpine.js +37 -0
  250. package/dist/krill/modules/bootloader-config-arch.d.ts +14 -0
  251. package/dist/krill/modules/bootloader-config-arch.js +37 -0
  252. package/dist/krill/modules/bootloader-config-debian.d.ts +10 -0
  253. package/dist/krill/modules/bootloader-config-debian.js +50 -0
  254. package/dist/krill/modules/bootloader-config.d.ts +10 -0
  255. package/dist/krill/modules/bootloader-config.js +25 -0
  256. package/dist/krill/modules/bootloader.d.ts +14 -0
  257. package/dist/krill/modules/bootloader.js +30 -0
  258. package/dist/krill/modules/change-password.d.ts +15 -0
  259. package/dist/krill/modules/change-password.js +18 -0
  260. package/dist/krill/modules/del-live-user.d.ts +14 -0
  261. package/dist/krill/modules/del-live-user.js +38 -0
  262. package/dist/krill/modules/fstab.d.ts +14 -0
  263. package/dist/krill/modules/fstab.js +121 -0
  264. package/dist/krill/modules/grubcfg.d.ts +17 -0
  265. package/dist/krill/modules/grubcfg.js +29 -0
  266. package/dist/krill/modules/hostname.d.ts +13 -0
  267. package/dist/krill/modules/hostname.js +50 -0
  268. package/dist/krill/modules/initramfs-cfg.d.ts +14 -0
  269. package/dist/krill/modules/initramfs-cfg.js +25 -0
  270. package/dist/krill/modules/initramfs.d.ts +13 -0
  271. package/dist/krill/modules/initramfs.js +48 -0
  272. package/dist/krill/modules/locale-cfg.d.ts +10 -0
  273. package/dist/krill/modules/locale-cfg.js +61 -0
  274. package/dist/krill/modules/locale.d.ts +13 -0
  275. package/dist/krill/modules/locale.js +91 -0
  276. package/dist/krill/modules/m-keyboard.d.ts +14 -0
  277. package/dist/krill/modules/m-keyboard.js +70 -0
  278. package/dist/krill/modules/machine-id.d.ts +15 -0
  279. package/dist/krill/modules/machine-id.js +30 -0
  280. package/dist/krill/modules/mkfs.d.ts +13 -0
  281. package/dist/krill/modules/mkfs.js +48 -0
  282. package/dist/krill/modules/mount-fs.d.ts +17 -0
  283. package/dist/krill/modules/mount-fs.js +60 -0
  284. package/dist/krill/modules/mount-vfs.d.ts +17 -0
  285. package/dist/krill/modules/mount-vfs.js +40 -0
  286. package/dist/krill/modules/network-cfg.d.ts +19 -0
  287. package/dist/krill/modules/network-cfg.js +64 -0
  288. package/dist/krill/modules/packages.d.ts +14 -0
  289. package/dist/krill/modules/packages.js +111 -0
  290. package/dist/krill/modules/partition.d.ts +20 -0
  291. package/dist/krill/modules/partition.js +324 -0
  292. package/dist/krill/modules/remove-installer-link.d.ts +13 -0
  293. package/dist/krill/modules/remove-installer-link.js +35 -0
  294. package/dist/krill/modules/umount.d.ts +14 -0
  295. package/dist/krill/modules/umount.js +27 -0
  296. package/dist/krill/modules/unpackfs.d.ts +13 -0
  297. package/dist/krill/modules/unpackfs.js +19 -0
  298. package/dist/krill/prepare.d.ts +78 -0
  299. package/dist/krill/prepare.js +624 -0
  300. package/dist/krill/sequence.d.ts +157 -0
  301. package/dist/krill/sequence.js +685 -0
  302. package/dist/lib/get_address.d.ts +8 -0
  303. package/dist/lib/get_address.js +23 -0
  304. package/dist/lib/get_dns.d.ts +8 -0
  305. package/dist/lib/get_dns.js +23 -0
  306. package/dist/lib/get_domain.d.ts +8 -0
  307. package/dist/lib/get_domain.js +23 -0
  308. package/dist/lib/get_gateway.d.ts +8 -0
  309. package/dist/lib/get_gateway.js +23 -0
  310. package/dist/lib/get_hostname.d.ts +8 -0
  311. package/dist/lib/get_hostname.js +23 -0
  312. package/dist/lib/get_netmask.d.ts +8 -0
  313. package/dist/lib/get_netmask.js +23 -0
  314. package/dist/lib/get_password.d.ts +8 -0
  315. package/dist/lib/get_password.js +36 -0
  316. package/dist/lib/get_userfullname.d.ts +8 -0
  317. package/dist/lib/get_userfullname.js +23 -0
  318. package/dist/lib/get_username.d.ts +8 -0
  319. package/dist/lib/get_username.js +23 -0
  320. package/dist/lib/kill_me_softly.d.ts +11 -0
  321. package/dist/lib/kill_me_softly.js +61 -0
  322. package/dist/lib/select_address_type.d.ts +8 -0
  323. package/dist/lib/select_address_type.js +24 -0
  324. package/dist/lib/select_filesystem_type.d.ts +8 -0
  325. package/dist/lib/select_filesystem_type.js +46 -0
  326. package/dist/lib/select_installation_device.d.ts +8 -0
  327. package/dist/lib/select_installation_device.js +30 -0
  328. package/dist/lib/select_installation_mode.d.ts +8 -0
  329. package/dist/lib/select_installation_mode.js +24 -0
  330. package/dist/lib/select_interface.d.ts +8 -0
  331. package/dist/lib/select_interface.js +24 -0
  332. package/dist/lib/select_keyboard_layout.d.ts +11 -0
  333. package/dist/lib/select_keyboard_layout.js +36 -0
  334. package/dist/lib/select_keyboard_model.d.ts +11 -0
  335. package/dist/lib/select_keyboard_model.js +34 -0
  336. package/dist/lib/select_keyboard_option.d.ts +11 -0
  337. package/dist/lib/select_keyboard_option.js +34 -0
  338. package/dist/lib/select_keyboard_variant.d.ts +11 -0
  339. package/dist/lib/select_keyboard_variant.js +35 -0
  340. package/dist/lib/select_languages.d.ts +8 -0
  341. package/dist/lib/select_languages.js +28 -0
  342. package/dist/lib/select_regions.d.ts +8 -0
  343. package/dist/lib/select_regions.js +24 -0
  344. package/dist/lib/select_user_swap_choice.d.ts +8 -0
  345. package/dist/lib/select_user_swap_choice.js +34 -0
  346. package/dist/lib/select_zones.d.ts +8 -0
  347. package/dist/lib/select_zones.js +518 -0
  348. package/dist/lib/utils.d.ts +34 -0
  349. package/dist/lib/utils.js +79 -0
  350. package/manpages/doc/man/eggs.1.gz +0 -0
  351. package/manpages/doc/man/eggs.html +4 -588
  352. package/mkinitfs/README.md +9 -0
  353. package/package.json +4 -4
  354. package/scripts/_eggs +9 -2
  355. package/scripts/eggs.bash +2 -1
  356. package/addons/eggs/ichoice/applications/eggs-ichoice.desktop +0 -23
  357. package/addons/eggs/ichoice/bin/eggs-ichoice.sh +0 -44
  358. package/scripts/love +0 -25
  359. /package/{addons/eggs/adapt/bin/adapt → scripts/adapt.sh} +0 -0
@@ -0,0 +1,28 @@
1
+ /**
2
+ * ./src/classes/users.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ /**
9
+ *
10
+ */
11
+ export default class Users {
12
+ gecos: string;
13
+ gid: string;
14
+ hasHome: boolean;
15
+ home: string;
16
+ login: string;
17
+ password: string;
18
+ saveIt: boolean;
19
+ shell: string;
20
+ size: number;
21
+ uid: string;
22
+ constructor(login: string, password: string, uid: string, gid: string, gecos: string, home: string, shell: string);
23
+ /**
24
+ * getSize
25
+ * @param verbose
26
+ */
27
+ getValues(): Promise<void>;
28
+ }
@@ -0,0 +1,143 @@
1
+ /**
2
+ * ./src/classes/users.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 fs from 'node:fs';
9
+ import { exec } from '../lib/utils.js';
10
+ /**
11
+ *
12
+ */
13
+ export default class Users {
14
+ gecos;
15
+ gid;
16
+ hasHome;
17
+ home;
18
+ login;
19
+ password;
20
+ saveIt;
21
+ shell;
22
+ size;
23
+ uid;
24
+ constructor(login, password, uid, gid, gecos, home, shell) {
25
+ this.login = login;
26
+ this.password = password;
27
+ this.uid = uid;
28
+ this.gid = gid;
29
+ this.gecos = gecos;
30
+ this.home = home;
31
+ this.shell = shell;
32
+ this.size = 0;
33
+ this.hasHome = false;
34
+ this.saveIt = false;
35
+ }
36
+ /**
37
+ * getSize
38
+ * @param verbose
39
+ */
40
+ async getValues() {
41
+ const fLevels = [
42
+ { path: 'bin', saveIt: false },
43
+ { path: 'boot', saveIt: false },
44
+ { path: 'dev', saveIt: false },
45
+ { path: 'etc', saveIt: false },
46
+ { path: 'lib', saveIt: false },
47
+ { path: 'lib32,', saveIt: false },
48
+ { path: 'libx32', saveIt: false },
49
+ { path: 'lib64', saveIt: false },
50
+ { path: 'home', saveIt: true },
51
+ { path: 'media', saveIt: false },
52
+ { path: 'mnt', saveIt: false },
53
+ { path: 'opt', saveIt: true },
54
+ { path: 'proc', saveIt: false },
55
+ { path: 'root', saveIt: false },
56
+ { path: 'run', saveIt: false },
57
+ { path: 'sbin', saveIt: false },
58
+ { path: 'sys', saveIt: false },
59
+ { path: 'srv', saveIt: true },
60
+ { path: 'tmp', saveIt: false },
61
+ { path: 'usr', saveIt: true },
62
+ { path: 'var', saveIt: true }
63
+ ];
64
+ let hasHome = false;
65
+ let saveIt = false;
66
+ let size = 0;
67
+ // Only users not services
68
+ if (Number.parseInt(this.uid) >= 1000) {
69
+ if (this.home != undefined) {
70
+ /**
71
+ * analyze firstLevel and
72
+ * excluded to be saved
73
+ */
74
+ const fLevel = this.home.split('/')[1];
75
+ for (const fLevel_ of fLevels) {
76
+ if (fLevel_.path === fLevel) {
77
+ saveIt = fLevel_.saveIt;
78
+ }
79
+ }
80
+ /**
81
+ * analize second level
82
+ * examples: /var/run, /var/cache, /var/spool, etc
83
+ */
84
+ if (saveIt) {
85
+ const sLevel = this.home.split('/')[2];
86
+ if (sLevel === 'cache' || sLevel === 'run' || sLevel === 'spool') {
87
+ saveIt = false;
88
+ }
89
+ }
90
+ /**
91
+ * exclude to save if home don't exist
92
+ */
93
+ if (!fs.existsSync(this.home)) {
94
+ saveIt = false;
95
+ }
96
+ /**
97
+ * others motivations to exclude
98
+ */
99
+ if (saveIt) {
100
+ switch (this.home) {
101
+ /**
102
+ * exclude always /
103
+ */
104
+ case '/': {
105
+ break;
106
+ }
107
+ /**
108
+ * excludes: under /usr
109
+ */
110
+ case '/usr/bin':
111
+ case '/usr/sbin': {
112
+ saveIt = false;
113
+ break;
114
+ }
115
+ /**
116
+ * excludes: under var
117
+ */
118
+ case '/var/backups':
119
+ case '/var/lib/colord':
120
+ case '/var/lib/geoclue':
121
+ case '/var/lib/misc':
122
+ case '/var/mail': {
123
+ saveIt = false;
124
+ break;
125
+ }
126
+ default: {
127
+ if (fs.existsSync(this.home)) {
128
+ hasHome = true;
129
+ const sizeUser = await exec(` du --block-size=1 --summarize ${this.home} | awk '{print $1}'`, { capture: true, echo: false, ignore: false });
130
+ size = Number.parseInt(sizeUser.data);
131
+ }
132
+ saveIt = true;
133
+ break;
134
+ }
135
+ }
136
+ }
137
+ }
138
+ this.saveIt = saveIt;
139
+ this.size = size;
140
+ this.hasHome = hasHome;
141
+ }
142
+ }
143
+ }
@@ -0,0 +1,323 @@
1
+ /**
2
+ * ./src/classes/utils.tsx
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ /**
9
+ * Utils: general porpourse utils
10
+ * @remarks all the utilities
11
+ */
12
+ export default class Utils {
13
+ /**
14
+ * Custom function to sort object keys
15
+ * @param obj
16
+ * @returns
17
+ */
18
+ static sortObjectKeys(obj: {
19
+ [key: string]: any;
20
+ }): {
21
+ [key: string]: any;
22
+ };
23
+ /**
24
+ *
25
+ * @param file
26
+ * @param search
27
+ * @returns value
28
+ */
29
+ static searchOnFile(file?: string, search?: string): string;
30
+ /**
31
+ * Restituisce il prefisso della iso
32
+ * @param distroId
33
+ * @param codenameId
34
+ */
35
+ static snapshotPrefix(distroId: string, codenameId: string): string;
36
+ /**
37
+ * Controlla se il sistema è avviato con systemd
38
+ * funziona anche in MX che utilizza systemd
39
+ * ma viene avviato con init
40
+ */
41
+ static isSystemd(): boolean;
42
+ /**
43
+ *
44
+ * @returns
45
+ */
46
+ static isOpenRc(): boolean;
47
+ /**
48
+ *
49
+ * @returns
50
+ */
51
+ static isSysvinit(): boolean;
52
+ /**
53
+ * ricava path per vmlinuz
54
+ * Normalmente cerca BOOT_IMAGE
55
+ * BOOT_IMAGE=/boot/vmlinuz-5.16.0-3-amd64 root=UUID=13768873-d6ba-4ae5-9e14-b5011f5aa31c ro quiet splash resume=UUID=beafb9b4-c429-4e1f-a268-4270b63a14e6
56
+ * se non è presente, come nel caso di Franco, cerca initrd e ricostruisce vmlinuz
57
+ * ro root=UUID=3dc0f202-8ac8-4686-9316-dddcec060c48 initrd=boot\initrd.img-5.15.0-0.bpo.3-amd64 // Conidi
58
+ */
59
+ static vmlinuz(): string;
60
+ /**
61
+ * ricava path per initrdImg
62
+ */
63
+ static initrdImg(): string;
64
+ /**
65
+ * Occore vedere un modo per creare machine-id dove non esiste
66
+ */
67
+ static machineId(): string;
68
+ /**
69
+ *
70
+ * @param msg
71
+ */
72
+ static warning(msg?: string): void;
73
+ static error(msg?: string): void;
74
+ /**
75
+ * Return the primary user's name
76
+ */
77
+ static getPrimaryUser(): Promise<string>;
78
+ /**
79
+ * restituisce uuid
80
+ * @param device
81
+ */
82
+ static uuid(device: string): string;
83
+ /**
84
+ *
85
+ * @param date
86
+ */
87
+ static formatDate(date: Date): string;
88
+ /**
89
+ * return the name of the package: penguins-eggs
90
+ * @returns penguins-eggs
91
+ */
92
+ static getPackageName(): string;
93
+ /**
94
+ * Count the eggs present in the nest
95
+ * @returns {number} Numero degli snapshot presenti
96
+ */
97
+ static getSnapshotCount(snapshot_dir?: string): number;
98
+ /**
99
+ * Get the syze of the snapshot
100
+ * @returns {string} grandezza dello snapshot in Byte
101
+ */
102
+ static getSnapshotSize(snapshot_dir?: string): number;
103
+ /**
104
+ * uefiArch
105
+ * @returns arch
106
+ */
107
+ static uefiArch(): string;
108
+ /**
109
+ * i386-efi,
110
+ * x86_64-efi,
111
+ * arm64-efi,
112
+ */
113
+ static uefiFormat(): string;
114
+ /**
115
+ *
116
+ * @returns
117
+ */
118
+ static uefiBN(): string;
119
+ /**
120
+ *
121
+ * @returns
122
+ */
123
+ static usrLibPath(): string;
124
+ /**
125
+ *
126
+ * @param prefix
127
+ * @param backup
128
+ * @returns
129
+ */
130
+ static getPrefix(prefix: string, backup?: boolean): string;
131
+ /**
132
+ *
133
+ * @param volid
134
+ */
135
+ static getVolid(volid?: string): string;
136
+ /**
137
+ * Return postfix
138
+ * @param basename
139
+ * @returns eggName
140
+ */
141
+ static getPostfix(): string;
142
+ /**
143
+ * Calculate the space used on the disk
144
+ * @return {void}
145
+ */
146
+ static getUsedSpace(): number;
147
+ /**
148
+ * Extimate the linuxfs dimension
149
+ * probably is better to rename it as
150
+ * getLiveSpaceRootNeed
151
+ * @returns {number} Byte
152
+ */
153
+ static getLiveRootSpace(type?: string): number;
154
+ /**
155
+ * Return true if i686 architecture
156
+ * @remarks to move in Utils
157
+ * @returns {boolean} true se l'architettura è i686
158
+ */
159
+ static isi686(): boolean;
160
+ /**
161
+ * Controlla se è un pacchetto deb
162
+ * /usr/lib/penguins-eggs/bin/node
163
+ */
164
+ static isDebPackage(): boolean;
165
+ /**
166
+ * Controlla se è un pacchetto sorgente
167
+ */
168
+ static isSources(): boolean;
169
+ /**
170
+ * Controlla se è un pacchetto npm
171
+ */
172
+ static isNpmPackage(): boolean;
173
+ /**
174
+ *
175
+ */
176
+ static rootPenguin(): string;
177
+ /**
178
+ * return the short name of the package: eggs
179
+ * @returns eggs
180
+ */
181
+ static getFriendName(): string;
182
+ /**
183
+ * return the version of the package
184
+ * @returns version example 8.0.0
185
+ */
186
+ static getPackageVersion(): string;
187
+ /**
188
+ * Get author name
189
+ */
190
+ static getAuthorName(): string;
191
+ /**
192
+ * Return the Debian version
193
+ * @returns {number} Versione di Debian
194
+ */
195
+ static getDebianVersion(): number;
196
+ /**
197
+ * Return true if live system
198
+ * @returns {boolean} isLive
199
+ */
200
+ static isLive(): boolean;
201
+ /**
202
+ * Ritorna vero se path è un mountpoint
203
+ * @param path
204
+ */
205
+ static isMountpoint(path?: string): boolean;
206
+ /**
207
+ *
208
+ * @param device
209
+ * @returns
210
+ */
211
+ static isBlockDevice(device?: string): boolean;
212
+ /**
213
+ * return true if eggs run as root
214
+ * @returns isRoot
215
+ */
216
+ static isRoot(command?: string): boolean;
217
+ /**
218
+ *
219
+ * @param command
220
+ */
221
+ static useRoot(command?: string): void;
222
+ /**
223
+ * get the kernel version
224
+ */
225
+ static kernelVersion(): string;
226
+ /**
227
+ * return the name of network device
228
+ */
229
+ static iface(): Promise<string>;
230
+ /**
231
+ * address
232
+ */
233
+ static address(): string;
234
+ /**
235
+ * netmask
236
+ */
237
+ static netmask(): string;
238
+ /**
239
+ * cidr
240
+ */
241
+ static cidr(): string;
242
+ /**
243
+ *
244
+ * broadcast
245
+ */
246
+ static broadcast(): string;
247
+ /**
248
+ * dns
249
+ */
250
+ static getDns(): string[];
251
+ /**
252
+ * getDomain
253
+ */
254
+ static getDomain(): string;
255
+ /**
256
+ * @returns gateway
257
+ */
258
+ static gateway(): string;
259
+ /**
260
+ * write a file
261
+ * @param file
262
+ * @param text
263
+ */
264
+ static write(file: string, text: string): void;
265
+ /**
266
+ *
267
+ * @param file
268
+ * @param cmd
269
+ */
270
+ static writeX(file: string, cmd: string): void;
271
+ /**
272
+ *
273
+ * @param file
274
+ * @param cmd
275
+ */
276
+ static writeXs(file: string, cmds: string[]): void;
277
+ /**
278
+ *
279
+ * @param msg
280
+ */
281
+ static customConfirm(msg?: string): Promise<boolean>;
282
+ /**
283
+ *
284
+ * @param msg
285
+ */
286
+ static customConfirmCompanion(msg?: string): Promise<any>;
287
+ /**
288
+ *
289
+ * @param msg
290
+ */
291
+ static customConfirmAbort(msg?: string): Promise<any>;
292
+ /**
293
+ *
294
+ */
295
+ static pressKeyToExit(warming?: string, procContinue?: boolean): Promise<void>;
296
+ /**
297
+ * titles
298
+ * Penguin's are gettings alive!
299
+ */
300
+ static titles(command?: string): void;
301
+ /**
302
+ *
303
+ * @returns flag
304
+ */
305
+ static flag(): string;
306
+ /**
307
+ *
308
+ * @param verbose
309
+ */
310
+ static setEcho(verbose?: boolean): object;
311
+ /**
312
+ *
313
+ * @param bytes
314
+ * @param decimals
315
+ * @returns
316
+ */
317
+ static formatBytes(bytes: number, decimals?: number): string;
318
+ /**
319
+ *
320
+ * @returns wardrobe
321
+ */
322
+ static wardrobe(): Promise<string>;
323
+ }