penguins-eggs 10.0.27 → 10.0.28

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 (324) hide show
  1. package/.oclif.manifest.json +2 -1463
  2. package/README.md +3 -741
  3. package/manpages/doc/man/eggs.1.gz +0 -0
  4. package/manpages/doc/man/eggs.html +4 -4
  5. package/package.json +3 -3
  6. package/scripts/love +2 -2
  7. package/dist/classes/bleach.d.ts +0 -32
  8. package/dist/classes/bleach.js +0 -136
  9. package/dist/classes/cfs.d.ts +0 -17
  10. package/dist/classes/cfs.js +0 -39
  11. package/dist/classes/cli-autologin.d.ts +0 -52
  12. package/dist/classes/cli-autologin.js +0 -230
  13. package/dist/classes/compressors.d.ts +0 -54
  14. package/dist/classes/compressors.js +0 -109
  15. package/dist/classes/daddy.d.ts +0 -26
  16. package/dist/classes/daddy.js +0 -161
  17. package/dist/classes/distro.d.ts +0 -36
  18. package/dist/classes/distro.js +0 -346
  19. package/dist/classes/families/alpine.d.ts +0 -55
  20. package/dist/classes/families/alpine.js +0 -108
  21. package/dist/classes/families/archlinux.d.ts +0 -61
  22. package/dist/classes/families/archlinux.js +0 -140
  23. package/dist/classes/families/debian.d.ts +0 -65
  24. package/dist/classes/families/debian.js +0 -138
  25. package/dist/classes/families/fedora.d.ts +0 -52
  26. package/dist/classes/families/fedora.js +0 -100
  27. package/dist/classes/families/mockup.d.ts +0 -60
  28. package/dist/classes/families/mockup.js +0 -79
  29. package/dist/classes/families/opensuse.d.ts +0 -52
  30. package/dist/classes/families/opensuse.js +0 -104
  31. package/dist/classes/incubation/branding.d.ts +0 -17
  32. package/dist/classes/incubation/branding.js +0 -89
  33. package/dist/classes/incubation/distros/bionic.d.ts +0 -32
  34. package/dist/classes/incubation/distros/bionic.js +0 -83
  35. package/dist/classes/incubation/distros/buster.d.ts +0 -32
  36. package/dist/classes/incubation/distros/buster.js +0 -85
  37. package/dist/classes/incubation/distros/jessie.d.ts +0 -31
  38. package/dist/classes/incubation/distros/jessie.js +0 -44
  39. package/dist/classes/incubation/distros/noble.d.ts +0 -32
  40. package/dist/classes/incubation/distros/noble.js +0 -85
  41. package/dist/classes/incubation/distros/rolling.d.ts +0 -32
  42. package/dist/classes/incubation/distros/rolling.js +0 -82
  43. package/dist/classes/incubation/fisherman-helper/displaymanager.d.ts +0 -11
  44. package/dist/classes/incubation/fisherman-helper/displaymanager.js +0 -39
  45. package/dist/classes/incubation/fisherman-helper/packages.d.ts +0 -20
  46. package/dist/classes/incubation/fisherman-helper/packages.js +0 -72
  47. package/dist/classes/incubation/fisherman-helper/settings.d.ts +0 -15
  48. package/dist/classes/incubation/fisherman-helper/settings.js +0 -83
  49. package/dist/classes/incubation/fisherman.d.ts +0 -77
  50. package/dist/classes/incubation/fisherman.js +0 -251
  51. package/dist/classes/incubation/incubator.d.ts +0 -40
  52. package/dist/classes/incubation/incubator.js +0 -328
  53. package/dist/classes/incubation/installer.d.ts +0 -13
  54. package/dist/classes/incubation/installer.js +0 -64
  55. package/dist/classes/keyboards.d.ts +0 -50
  56. package/dist/classes/keyboards.js +0 -217
  57. package/dist/classes/locales.d.ts +0 -21
  58. package/dist/classes/locales.js +0 -80
  59. package/dist/classes/n8.d.ts +0 -18
  60. package/dist/classes/n8.js +0 -36
  61. package/dist/classes/network.d.ts +0 -37
  62. package/dist/classes/network.js +0 -98
  63. package/dist/classes/ovary.d.ts +0 -214
  64. package/dist/classes/ovary.js +0 -1879
  65. package/dist/classes/pacman.d.ts +0 -149
  66. package/dist/classes/pacman.js +0 -701
  67. package/dist/classes/pve-live.d.ts +0 -17
  68. package/dist/classes/pve-live.js +0 -52
  69. package/dist/classes/pxe.d.ts +0 -74
  70. package/dist/classes/pxe.js +0 -410
  71. package/dist/classes/settings.d.ts +0 -53
  72. package/dist/classes/settings.js +0 -185
  73. package/dist/classes/sources_list.d.ts +0 -28
  74. package/dist/classes/sources_list.js +0 -89
  75. package/dist/classes/systemctl.d.ts +0 -47
  76. package/dist/classes/systemctl.js +0 -86
  77. package/dist/classes/tailor.d.ts +0 -46
  78. package/dist/classes/tailor.js +0 -539
  79. package/dist/classes/tools.d.ts +0 -30
  80. package/dist/classes/tools.js +0 -54
  81. package/dist/classes/users.d.ts +0 -28
  82. package/dist/classes/users.js +0 -143
  83. package/dist/classes/utils.d.ts +0 -323
  84. package/dist/classes/utils.js +0 -946
  85. package/dist/classes/xdg.d.ts +0 -45
  86. package/dist/classes/xdg.js +0 -329
  87. package/dist/classes/yolk.d.ts +0 -33
  88. package/dist/classes/yolk.js +0 -114
  89. package/dist/commands/adapt.d.ts +0 -17
  90. package/dist/commands/adapt.js +0 -33
  91. package/dist/commands/analyze.d.ts +0 -26
  92. package/dist/commands/analyze.js +0 -95
  93. package/dist/commands/calamares.d.ts +0 -29
  94. package/dist/commands/calamares.js +0 -110
  95. package/dist/commands/config.d.ts +0 -35
  96. package/dist/commands/config.js +0 -192
  97. package/dist/commands/cuckoo.d.ts +0 -16
  98. package/dist/commands/cuckoo.js +0 -62
  99. package/dist/commands/dad.d.ts +0 -20
  100. package/dist/commands/dad.js +0 -46
  101. package/dist/commands/export/deb.d.ts +0 -19
  102. package/dist/commands/export/deb.js +0 -51
  103. package/dist/commands/export/iso.d.ts +0 -19
  104. package/dist/commands/export/iso.js +0 -55
  105. package/dist/commands/install.d.ts +0 -37
  106. package/dist/commands/install.js +0 -92
  107. package/dist/commands/kill.d.ts +0 -24
  108. package/dist/commands/kill.js +0 -50
  109. package/dist/commands/mom.d.ts +0 -16
  110. package/dist/commands/mom.js +0 -30
  111. package/dist/commands/produce.d.ts +0 -34
  112. package/dist/commands/produce.js +0 -199
  113. package/dist/commands/status.d.ts +0 -23
  114. package/dist/commands/status.js +0 -31
  115. package/dist/commands/syncfrom.d.ts +0 -45
  116. package/dist/commands/syncfrom.js +0 -152
  117. package/dist/commands/syncto.d.ts +0 -40
  118. package/dist/commands/syncto.js +0 -175
  119. package/dist/commands/tools/clean.d.ts +0 -18
  120. package/dist/commands/tools/clean.js +0 -37
  121. package/dist/commands/tools/ppa.d.ts +0 -26
  122. package/dist/commands/tools/ppa.js +0 -138
  123. package/dist/commands/tools/skel.d.ts +0 -18
  124. package/dist/commands/tools/skel.js +0 -44
  125. package/dist/commands/tools/stat.d.ts +0 -31
  126. package/dist/commands/tools/stat.js +0 -70
  127. package/dist/commands/tools/yolk.d.ts +0 -24
  128. package/dist/commands/tools/yolk.js +0 -45
  129. package/dist/commands/update.d.ts +0 -47
  130. package/dist/commands/update.js +0 -140
  131. package/dist/commands/wardrobe/get.d.ts +0 -23
  132. package/dist/commands/wardrobe/get.js +0 -52
  133. package/dist/commands/wardrobe/list.d.ts +0 -24
  134. package/dist/commands/wardrobe/list.js +0 -125
  135. package/dist/commands/wardrobe/show.d.ts +0 -25
  136. package/dist/commands/wardrobe/show.js +0 -97
  137. package/dist/commands/wardrobe/wear.d.ts +0 -26
  138. package/dist/commands/wardrobe/wear.js +0 -81
  139. package/dist/components/finished.d.ts +0 -15
  140. package/dist/components/finished.js +0 -55
  141. package/dist/components/information.d.ts +0 -8
  142. package/dist/components/information.js +0 -153
  143. package/dist/components/install.d.ts +0 -15
  144. package/dist/components/install.js +0 -56
  145. package/dist/components/keyboard.d.ts +0 -16
  146. package/dist/components/keyboard.js +0 -54
  147. package/dist/components/location.d.ts +0 -16
  148. package/dist/components/location.js +0 -59
  149. package/dist/components/network.d.ts +0 -19
  150. package/dist/components/network.js +0 -65
  151. package/dist/components/partitions.d.ts +0 -16
  152. package/dist/components/partitions.js +0 -73
  153. package/dist/components/steps.d.ts +0 -13
  154. package/dist/components/steps.js +0 -148
  155. package/dist/components/summary.d.ts +0 -24
  156. package/dist/components/summary.js +0 -82
  157. package/dist/components/title.d.ts +0 -11
  158. package/dist/components/title.js +0 -35
  159. package/dist/components/users.d.ts +0 -24
  160. package/dist/components/users.js +0 -80
  161. package/dist/components/welcome.d.ts +0 -13
  162. package/dist/components/welcome.js +0 -63
  163. package/dist/index.d.ts +0 -8
  164. package/dist/index.js +0 -8
  165. package/dist/interfaces/i-addons.d.ts +0 -13
  166. package/dist/interfaces/i-addons.js +0 -8
  167. package/dist/interfaces/i-analyze.d.ts +0 -17
  168. package/dist/interfaces/i-analyze.js +0 -17
  169. package/dist/interfaces/i-app.d.ts +0 -14
  170. package/dist/interfaces/i-app.js +0 -8
  171. package/dist/interfaces/i-branding.d.ts +0 -36
  172. package/dist/interfaces/i-branding.js +0 -8
  173. package/dist/interfaces/i-calamares-partition.d.ts +0 -18
  174. package/dist/interfaces/i-calamares-partition.js +0 -8
  175. package/dist/interfaces/i-config-tools.d.ts +0 -18
  176. package/dist/interfaces/i-config-tools.js +0 -8
  177. package/dist/interfaces/i-devices.d.ts +0 -20
  178. package/dist/interfaces/i-devices.js +0 -8
  179. package/dist/interfaces/i-distro.d.ts +0 -27
  180. package/dist/interfaces/i-distro.js +0 -8
  181. package/dist/interfaces/i-drive-list.d.ts +0 -33
  182. package/dist/interfaces/i-drive-list.js +0 -8
  183. package/dist/interfaces/i-eggs-config.d.ts +0 -32
  184. package/dist/interfaces/i-eggs-config.js +0 -8
  185. package/dist/interfaces/i-excludes.d.ts +0 -14
  186. package/dist/interfaces/i-excludes.js +0 -8
  187. package/dist/interfaces/i-exec.d.ts +0 -11
  188. package/dist/interfaces/i-exec.js +0 -8
  189. package/dist/interfaces/i-initrd.d.ts +0 -13
  190. package/dist/interfaces/i-initrd.js +0 -8
  191. package/dist/interfaces/i-install.d.ts +0 -16
  192. package/dist/interfaces/i-install.js +0 -8
  193. package/dist/interfaces/i-installer.d.ts +0 -17
  194. package/dist/interfaces/i-installer.js +0 -8
  195. package/dist/interfaces/i-krill-config.d.ts +0 -33
  196. package/dist/interfaces/i-krill-config.js +0 -8
  197. package/dist/interfaces/i-krill.d.ts +0 -42
  198. package/dist/interfaces/i-krill.js +0 -8
  199. package/dist/interfaces/i-materia.d.ts +0 -41
  200. package/dist/interfaces/i-materia.js +0 -8
  201. package/dist/interfaces/i-net.d.ts +0 -16
  202. package/dist/interfaces/i-net.js +0 -8
  203. package/dist/interfaces/i-packages.d.ts +0 -16
  204. package/dist/interfaces/i-packages.js +0 -8
  205. package/dist/interfaces/i-partitions.d.ts +0 -16
  206. package/dist/interfaces/i-partitions.js +0 -8
  207. package/dist/interfaces/i-pxe.d.ts +0 -45
  208. package/dist/interfaces/i-pxe.js +0 -1
  209. package/dist/interfaces/i-remix.d.ts +0 -21
  210. package/dist/interfaces/i-remix.js +0 -8
  211. package/dist/interfaces/i-settings.d.ts +0 -33
  212. package/dist/interfaces/i-settings.js +0 -8
  213. package/dist/interfaces/i-user.d.ts +0 -14
  214. package/dist/interfaces/i-user.js +0 -8
  215. package/dist/interfaces/i-workdir.d.ts +0 -14
  216. package/dist/interfaces/i-workdir.js +0 -8
  217. package/dist/interfaces/i-xkb-model.d.ts +0 -24
  218. package/dist/interfaces/i-xkb-model.js +0 -8
  219. package/dist/interfaces/index.d.ts +0 -25
  220. package/dist/interfaces/index.js +0 -8
  221. package/dist/krill/modules/add-user.d.ts +0 -20
  222. package/dist/krill/modules/add-user.js +0 -50
  223. package/dist/krill/modules/bootloader-config-arch.d.ts +0 -14
  224. package/dist/krill/modules/bootloader-config-arch.js +0 -37
  225. package/dist/krill/modules/bootloader-config-debian.d.ts +0 -10
  226. package/dist/krill/modules/bootloader-config-debian.js +0 -50
  227. package/dist/krill/modules/bootloader-config.d.ts +0 -10
  228. package/dist/krill/modules/bootloader-config.js +0 -16
  229. package/dist/krill/modules/bootloader.d.ts +0 -14
  230. package/dist/krill/modules/bootloader.js +0 -30
  231. package/dist/krill/modules/change-password.d.ts +0 -15
  232. package/dist/krill/modules/change-password.js +0 -18
  233. package/dist/krill/modules/del-live-user.d.ts +0 -14
  234. package/dist/krill/modules/del-live-user.js +0 -38
  235. package/dist/krill/modules/fstab.d.ts +0 -14
  236. package/dist/krill/modules/fstab.js +0 -121
  237. package/dist/krill/modules/grubcfg.d.ts +0 -17
  238. package/dist/krill/modules/grubcfg.js +0 -29
  239. package/dist/krill/modules/hostname.d.ts +0 -13
  240. package/dist/krill/modules/hostname.js +0 -50
  241. package/dist/krill/modules/initramfs-cfg.d.ts +0 -14
  242. package/dist/krill/modules/initramfs-cfg.js +0 -25
  243. package/dist/krill/modules/initramfs.d.ts +0 -13
  244. package/dist/krill/modules/initramfs.js +0 -48
  245. package/dist/krill/modules/locale-cfg.d.ts +0 -10
  246. package/dist/krill/modules/locale-cfg.js +0 -61
  247. package/dist/krill/modules/locale.d.ts +0 -13
  248. package/dist/krill/modules/locale.js +0 -48
  249. package/dist/krill/modules/m-keyboard.d.ts +0 -14
  250. package/dist/krill/modules/m-keyboard.js +0 -79
  251. package/dist/krill/modules/m-timezone.d.ts +0 -14
  252. package/dist/krill/modules/m-timezone.js +0 -22
  253. package/dist/krill/modules/machine-id.d.ts +0 -15
  254. package/dist/krill/modules/machine-id.js +0 -30
  255. package/dist/krill/modules/mkfs.d.ts +0 -13
  256. package/dist/krill/modules/mkfs.js +0 -48
  257. package/dist/krill/modules/mount-fs.d.ts +0 -17
  258. package/dist/krill/modules/mount-fs.js +0 -60
  259. package/dist/krill/modules/mount-vfs.d.ts +0 -17
  260. package/dist/krill/modules/mount-vfs.js +0 -40
  261. package/dist/krill/modules/network-cfg.d.ts +0 -19
  262. package/dist/krill/modules/network-cfg.js +0 -64
  263. package/dist/krill/modules/packages.d.ts +0 -14
  264. package/dist/krill/modules/packages.js +0 -105
  265. package/dist/krill/modules/partition.d.ts +0 -20
  266. package/dist/krill/modules/partition.js +0 -324
  267. package/dist/krill/modules/remove-installer-link.d.ts +0 -13
  268. package/dist/krill/modules/remove-installer-link.js +0 -35
  269. package/dist/krill/modules/umount.d.ts +0 -14
  270. package/dist/krill/modules/umount.js +0 -27
  271. package/dist/krill/modules/unpackfs.d.ts +0 -13
  272. package/dist/krill/modules/unpackfs.js +0 -19
  273. package/dist/krill/prepare.d.ts +0 -78
  274. package/dist/krill/prepare.js +0 -626
  275. package/dist/krill/sequence.d.ts +0 -157
  276. package/dist/krill/sequence.js +0 -665
  277. package/dist/lib/get_address.d.ts +0 -8
  278. package/dist/lib/get_address.js +0 -23
  279. package/dist/lib/get_dns.d.ts +0 -8
  280. package/dist/lib/get_dns.js +0 -23
  281. package/dist/lib/get_domain.d.ts +0 -8
  282. package/dist/lib/get_domain.js +0 -23
  283. package/dist/lib/get_gateway.d.ts +0 -8
  284. package/dist/lib/get_gateway.js +0 -23
  285. package/dist/lib/get_hostname.d.ts +0 -8
  286. package/dist/lib/get_hostname.js +0 -23
  287. package/dist/lib/get_netmask.d.ts +0 -8
  288. package/dist/lib/get_netmask.js +0 -23
  289. package/dist/lib/get_password.d.ts +0 -8
  290. package/dist/lib/get_password.js +0 -36
  291. package/dist/lib/get_userfullname.d.ts +0 -8
  292. package/dist/lib/get_userfullname.js +0 -23
  293. package/dist/lib/get_username.d.ts +0 -8
  294. package/dist/lib/get_username.js +0 -23
  295. package/dist/lib/kill_me_softly.d.ts +0 -11
  296. package/dist/lib/kill_me_softly.js +0 -61
  297. package/dist/lib/select_address_type.d.ts +0 -8
  298. package/dist/lib/select_address_type.js +0 -24
  299. package/dist/lib/select_filesystem_type.d.ts +0 -8
  300. package/dist/lib/select_filesystem_type.js +0 -45
  301. package/dist/lib/select_installation_device.d.ts +0 -8
  302. package/dist/lib/select_installation_device.js +0 -30
  303. package/dist/lib/select_installation_mode.d.ts +0 -8
  304. package/dist/lib/select_installation_mode.js +0 -24
  305. package/dist/lib/select_interface.d.ts +0 -8
  306. package/dist/lib/select_interface.js +0 -24
  307. package/dist/lib/select_keyboard_layout.d.ts +0 -11
  308. package/dist/lib/select_keyboard_layout.js +0 -36
  309. package/dist/lib/select_keyboard_model.d.ts +0 -11
  310. package/dist/lib/select_keyboard_model.js +0 -34
  311. package/dist/lib/select_keyboard_option.d.ts +0 -11
  312. package/dist/lib/select_keyboard_option.js +0 -34
  313. package/dist/lib/select_keyboard_variant.d.ts +0 -11
  314. package/dist/lib/select_keyboard_variant.js +0 -35
  315. package/dist/lib/select_languages.d.ts +0 -8
  316. package/dist/lib/select_languages.js +0 -28
  317. package/dist/lib/select_regions.d.ts +0 -8
  318. package/dist/lib/select_regions.js +0 -24
  319. package/dist/lib/select_user_swap_choice.d.ts +0 -8
  320. package/dist/lib/select_user_swap_choice.js +0 -34
  321. package/dist/lib/select_zones.d.ts +0 -8
  322. package/dist/lib/select_zones.js +0 -518
  323. package/dist/lib/utils.d.ts +0 -34
  324. package/dist/lib/utils.js +0 -79
@@ -1,45 +0,0 @@
1
- /**
2
- * ./src/classes/xdg.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
- * Xdg: xdg-user-dirs, etc
10
- * @remarks all the utilities
11
- */
12
- export default class Xdg {
13
- /**
14
- *
15
- * @param olduser
16
- * @param newuser
17
- * @param chroot
18
- */
19
- static autologin(olduser: string, newuser: string, chroot?: string): Promise<void>;
20
- /**
21
- *
22
- * @param user
23
- * @param chroot
24
- * @param verbose
25
- */
26
- static create(user: string, chroot: string, traduce?: boolean, verbose?: boolean): Promise<void>;
27
- /**
28
- *
29
- * @param chroot
30
- * @param path
31
- * @param verbose
32
- */
33
- static mk(chroot: string, path: string, verbose?: boolean): Promise<void>;
34
- /**
35
- * Copia della configurazione in /etc/skel
36
- * @param user
37
- * @param verbose
38
- */
39
- static skel(user: string, verbose?: boolean): Promise<void>;
40
- /**
41
- *
42
- * @param xdg_dir
43
- */
44
- static traduce(xdg_dir?: string, traduce?: boolean): string;
45
- }
@@ -1,329 +0,0 @@
1
- /**
2
- * ./src/classes/xdg.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 path from 'node:path';
10
- import shx from 'shelljs';
11
- // libraries
12
- import { exec } from '../lib/utils.js';
13
- import Distro from './distro.js';
14
- import N8 from './n8.js';
15
- import Pacman from './pacman.js';
16
- import Utils from './utils.js';
17
- const xdg_dirs = ['DESKTOP', 'DOWNLOAD', 'TEMPLATES', 'PUBLICSHARE', 'DOCUMENTS', 'MUSIC', 'PICTURES', 'VIDEOS'];
18
- /**
19
- * Xdg: xdg-user-dirs, etc
20
- * @remarks all the utilities
21
- */
22
- export default class Xdg {
23
- /**
24
- *
25
- * @param olduser
26
- * @param newuser
27
- * @param chroot
28
- */
29
- static async autologin(olduser, newuser, chroot = '/') {
30
- //console.log("old: " + olduser, "new: " + newuser, "chroot: " + chroot)
31
- if (Pacman.isInstalledGui()) {
32
- /**
33
- * SLIM & SLIMSKI
34
- */
35
- let slimConf = '';
36
- if (Pacman.packageIsInstalled('slim')) {
37
- slimConf = 'slim.conf';
38
- if (fs.existsSync('/etc/slim.local.conf')) {
39
- slimConf = 'slim.local.conf';
40
- }
41
- }
42
- if (Pacman.packageIsInstalled('slimski')) {
43
- slimConf = 'slimski.conf';
44
- if (fs.existsSync('/etc/slimski.local.conf')) {
45
- slimConf = 'slimski.local.conf';
46
- }
47
- }
48
- if (slimConf !== '') {
49
- let content = fs.readFileSync(`${chroot}/etc/${slimConf}`, 'utf8');
50
- const regexAutoLogin = new RegExp(`auto_login\\s*no`, 'g');
51
- content = content.replaceAll(regexAutoLogin, 'auto_login yes');
52
- const regexDefaultUser = new RegExp(`default_user\\s*${olduser}`, 'g');
53
- content = content.replace(regexDefaultUser, `default_user ${newuser}`);
54
- fs.writeFileSync(`${chroot}/etc/${slimConf}`, content, 'utf8');
55
- /**
56
- * LIGHTDM
57
- */
58
- }
59
- else if (Pacman.packageIsInstalled('lightdm')) {
60
- const dc = `${chroot}/etc/lightdm/`;
61
- const files = fs.readdirSync(dc);
62
- for (const elem of files) {
63
- const curFile = dc + elem;
64
- if (!N8.isDirectory(curFile)) {
65
- let content = fs.readFileSync(curFile, 'utf8');
66
- const find = '[Seat:*]';
67
- if (content.includes(find)) {
68
- const regex = new RegExp(`autologin-user\\s*=\\s*${olduser}`, 'g'); // remove spaces
69
- content = content.replace(regex, `autologin-user=${newuser}`);
70
- fs.writeFileSync(curFile, content, 'utf8');
71
- }
72
- }
73
- }
74
- }
75
- else if (Pacman.packageIsInstalled('sddm')) {
76
- /**
77
- * SDDM
78
- */
79
- let sddmChanged = false;
80
- const curFile = `${chroot}/etc/sddm.conf`;
81
- if (fs.existsSync(curFile)) {
82
- let content = fs.readFileSync(curFile, 'utf8');
83
- const find = '[Autologin]';
84
- if (content.includes(find)) {
85
- const regex = new RegExp(`User\\s*=\\s*${olduser}`, 'g'); // replace space
86
- content = content.replace(regex, `User=${newuser}`);
87
- fs.writeFileSync(curFile, content, 'utf8');
88
- sddmChanged = true;
89
- }
90
- }
91
- if (!sddmChanged) {
92
- const dc = `${chroot}/etc/sddm.conf.d/`;
93
- if (fs.existsSync(dc)) {
94
- const files = fs.readdirSync(dc);
95
- for (const elem of files) {
96
- const curFile = dc + elem;
97
- let content = fs.readFileSync(curFile, 'utf8');
98
- const find = '[Autologin]';
99
- if (content.includes(find)) {
100
- const regex = new RegExp(`User\\s*=\\s*${olduser}`, 'g'); // replace space
101
- content = content.replace(regex, `User=${newuser}`);
102
- fs.writeFileSync(curFile, content, 'utf8');
103
- sddmChanged = true;
104
- }
105
- }
106
- }
107
- }
108
- // sddm.conf don't exists, generate it
109
- if (!sddmChanged) {
110
- let session = 'plasma';
111
- if (Pacman.isInstalledWayland()) {
112
- session = 'plasma-wayland';
113
- }
114
- const content = `[Autologin]\nUser=${newuser}\nSession=${session}\n`;
115
- const curFile = `${chroot}/etc/sddm.conf`;
116
- fs.writeFileSync(curFile, content, 'utf8');
117
- }
118
- }
119
- else if (Pacman.packageIsInstalled('gdm') || Pacman.packageIsInstalled('gdm3')) {
120
- /**
121
- * GDM/GDM3
122
- * in manjaro è /etc/gdm/custom.conf
123
- */
124
- let gdmConf = `${chroot}/etc/gdm3`;
125
- if (Pacman.packageIsInstalled('gdm3')) {
126
- gdmConf = `${chroot}/etc/gdm3`;
127
- }
128
- else if (Pacman.packageIsInstalled('gdm')) {
129
- gdmConf = `${chroot}/etc/gdm`;
130
- }
131
- if (fs.existsSync(`${gdmConf}/custom.conf`)) {
132
- gdmConf += '/custom.conf';
133
- }
134
- else if (fs.existsSync(`${gdmConf}/daemon.conf`)) {
135
- gdmConf += '/daemon.conf';
136
- }
137
- else {
138
- gdmConf = `}/etc/${gdmConf}/custom.conf`;
139
- }
140
- const content = `[daemon]\nAutomaticLoginEnable=true\nAutomaticLogin=${newuser}\n`;
141
- Utils.write(gdmConf, content);
142
- }
143
- }
144
- }
145
- /**
146
- *
147
- * @param user
148
- * @param chroot
149
- * @param verbose
150
- */
151
- static async create(user, chroot, traduce = true, verbose = false) {
152
- const echo = Utils.setEcho(verbose);
153
- /**
154
- * Creo solo la cartella DESKTOP perchè serve per i link, eventualmente posso creare le altre
155
- * ma c'è il problema di traduce/non traduce
156
- */
157
- xdg_dirs.forEach(async (dir) => {
158
- if (dir === 'DESKTOP') {
159
- await Xdg.mk(chroot, `/home/${user}/` + this.traduce(dir, traduce), verbose);
160
- }
161
- });
162
- }
163
- /**
164
- *
165
- * @param chroot
166
- * @param path
167
- * @param verbose
168
- */
169
- static async mk(chroot, path, verbose = false) {
170
- const echo = Utils.setEcho(verbose);
171
- if (!fs.existsSync(chroot + path)) {
172
- await exec(`mkdir ${chroot}${path}`, echo);
173
- }
174
- }
175
- /**
176
- * Copia della configurazione in /etc/skel
177
- * @param user
178
- * @param verbose
179
- */
180
- static async skel(user, verbose = false) {
181
- const echo = Utils.setEcho(verbose);
182
- // Remove and create /etc/skel
183
- await exec('rm /etc/skel -rf', echo);
184
- await exec('mkdir -p /etc/skel', echo);
185
- // copy .bash_logout, .bashrc and .profile to /etc/skel
186
- await exec(`cp /home/${user}/.bash_logout /etc/skel`, echo);
187
- await exec(`cp /home/${user}/.bashrc /etc/skel`, echo);
188
- await exec(`cp /home/${user}/.profile /etc/skel`, echo);
189
- /**
190
- * copy desktop configuration
191
- */
192
- if (Pacman.packageIsInstalled('gnome-session')) {
193
- // we need a more clean solution
194
- await rsyncIfExist(`/home/${user}/.config`, '/etc/skel', verbose);
195
- await rsyncIfExist(`/home/${user}/.gtkrc-2.0`, '/etc/skel', verbose);
196
- }
197
- else if (Pacman.packageIsInstalled('cinnamon-common')) {
198
- // before the check was against cinnamon-core
199
- await rsyncIfExist(`/home/${user}/.config`, '/etc/skel', verbose);
200
- // use .cinnamon NOT cinnamon/
201
- // removed because it's not necessary
202
- // await rsyncIfExist(`/home/${user}/.cinnamon`, '/etc/skel', verbose)
203
- }
204
- else if (Pacman.packageIsInstalled('plasma-desktop')) {
205
- // use .kde NOT .kde/
206
- await rsyncIfExist(`/home/${user}/.config`, '/etc/skel', verbose);
207
- await rsyncIfExist(`/home/${user}/.kde`, '/etc/skel', verbose);
208
- }
209
- else if (Pacman.packageIsInstalled('lxde-core')) {
210
- // we need a more clean solution
211
- await rsyncIfExist(`/home/${user}/.config`, '/etc/skel', verbose);
212
- await rsyncIfExist(`/home/${user}/.gtkrc-2.0`, '/etc/skel', verbose);
213
- }
214
- else if (Pacman.packageIsInstalled('lxqt-session')) {
215
- // we need a more clean solution
216
- await rsyncIfExist(`/home/${user}/.config/lxqt`, '/etc/skel/.config', verbose);
217
- await rsyncIfExist(`/home/${user}/.gtkrc-2.0`, '/etc/skel', verbose);
218
- }
219
- else if (Pacman.packageIsInstalled('mate-session-manager')) {
220
- // we need a more clean solution
221
- await rsyncIfExist(`/home/${user}/.config`, '/etc/skel', verbose);
222
- await rsyncIfExist(`/home/${user}/.gtkrc-2.0`, '/etc/skel', verbose);
223
- }
224
- else if (Pacman.packageIsInstalled('xfce4-session')) {
225
- // use .config/xfce4 NOT .config/xfce4/
226
- await rsyncIfExist(`/home/${user}/.config/xfce4`, '/etc/skel/.config', verbose);
227
- await exec('mkdir /etc/skel/.local/share -p', echo);
228
- await rsyncIfExist(`/home/${user}/.local/share/recently-used.xbel`, '/etc/skel/.local/share', verbose);
229
- }
230
- /**
231
- * special cases
232
- */
233
- // Riccardo suggestion
234
- await rsyncIfExist(`/home/${user}/.mozilla`, '/etc/skel', verbose);
235
- await rsyncIfExist(`/home/${user}/.kodi`, '/etc/skel', verbose);
236
- // waydroid
237
- if (fs.existsSync(`/home/${user}/waydroid-package-manager`)) {
238
- await rsyncIfExist(`/home/${user}/waydroid-package-manager`, '/etc/skel', verbose);
239
- }
240
- // LinuxFX
241
- if (fs.existsSync(`/home/${user}/.linuxfx`)) {
242
- // we need to copy: .linuxfx ,kde and ,cinnamon
243
- await rsyncIfExist(`/home/${user}/.cinnamon`, '/etc/skel', verbose);
244
- await rsyncIfExist(`/home/${user}/.kde`, '/etc/skel', verbose);
245
- await rsyncIfExist(`/home/${user}/.linuxfx`, '/etc/skel', verbose);
246
- await rsyncIfExist(`/home/${user}/.local`, '/etc/skel', verbose);
247
- }
248
- await exec('chown root:root /etc/skel -R', echo);
249
- await exec('chmod a+rwx,g-w,o-w /etc/skel/ -R', echo);
250
- await execIfExist('chmod a+rwx,g-w-x,o-wx', '/etc/skel/.bashrc', verbose);
251
- await execIfExist('chmod a+rwx,g-w-x,o-wx', '/etc/skel/.bash_logout', verbose);
252
- await execIfExist('chmod a+rwx,g-w-x,o-wx', '/etc/skel/.profile', verbose);
253
- // quirinux
254
- const distro = new Distro();
255
- if (distro.distroId === 'Quirinux') {
256
- await exec('chmod -R 777 /etc/skel/.config');
257
- await exec('chmod -R 777 /etc/xdg/autostart'); // here we must change ***
258
- await exec('chmod -R 777 /home/*/.config');
259
- await exec('chmod -R 777 /opt/estilos-general/.config');
260
- await exec('chmod -R 777 /opt/estilos/.config');
261
- await exec('chmod -R 777 /usr/bin/iniciar-asistente');
262
- // Copy xfce4-theme-switcher
263
- await exec('mkdir /etc/skel/.config/xfce4-theme-switcher -p', echo);
264
- await rsyncIfExist(`/home/${user}/.config/xfce4-theme-switcher`, '/etc/skel/.config/xfce4-theme-switcher', verbose);
265
- }
266
- /**
267
- * ALL Desktops:
268
- */
269
- // Emer Chen suggestion
270
- await rmIfExist('/etc/skel/.config/user-dirs.dirs');
271
- await rmIfExist('/etc/skel/.config/user-dirs.locale');
272
- await rmIfExist('/etc/skel/.config/gtk-3.0/bookmarks/', 'r');
273
- // Manuel Senpai suggestion
274
- // await exec(`grep -IE -r /etc/skel -e ${user}`)
275
- await rmIfExist('/etc/skel/.local/share/recently-used.xbel');
276
- await rmIfExist('/etc/skel/.config/xfce4/desktop/', 'r');
277
- }
278
- /**
279
- *
280
- * @param xdg_dir
281
- */
282
- static traduce(xdg_dir = '', traduce = true) {
283
- let retval = '';
284
- if (traduce === false) {
285
- // Capitalize
286
- retval = xdg_dir.charAt(0).toUpperCase() + xdg_dir.slice(1).toLowerCase();
287
- console.log(retval);
288
- }
289
- else {
290
- xdg_dirs.forEach(async (dir) => {
291
- if (dir === xdg_dir) {
292
- retval = path.basename(shx.exec(`sudo -u ${await Utils.getPrimaryUser()} xdg-user-dir ${dir}`, { silent: true }).stdout.trim());
293
- }
294
- });
295
- }
296
- return retval;
297
- }
298
- }
299
- /**
300
- * execIfExist
301
- * @param cmd
302
- * @param file
303
- * @param verbose
304
- */
305
- async function execIfExist(cmd, file, verbose = false) {
306
- const echo = Utils.setEcho(verbose);
307
- if (fs.existsSync(file)) {
308
- await exec(`${cmd} ${file}`, echo);
309
- }
310
- }
311
- /**
312
- *
313
- */
314
- async function rsyncIfExist(source, dest = '/etc/skel/', verbose = false) {
315
- const echo = Utils.setEcho(verbose);
316
- if (fs.existsSync(source)) {
317
- await exec(`rsync -avx ${source} ${dest}`, echo);
318
- }
319
- }
320
- /**
321
- *
322
- * @param file2Remove
323
- * @param recursive
324
- */
325
- async function rmIfExist(file2Remove, recursive = '') {
326
- if (fs.existsSync(file2Remove)) {
327
- await exec(`rm -f${recursive} ${file2Remove}`);
328
- }
329
- }
@@ -1,33 +0,0 @@
1
- /**
2
- * ./src/classes/yolk.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- */
8
- /**
9
- *
10
- */
11
- export default class Yolk {
12
- echo: {};
13
- verbose: boolean;
14
- yolkDir: string;
15
- /**
16
- *
17
- */
18
- create(verbose?: boolean): Promise<void>;
19
- /**
20
- * Svuota la repo yolk
21
- */
22
- erase(): Promise<void>;
23
- /**
24
- * Check if yoil exists and it's a repo
25
- */
26
- exists(): boolean;
27
- /**
28
- * if depends are not Installed
29
- * download depends
30
- * @param depends
31
- */
32
- installDeps(depends: string[]): Promise<void>;
33
- }
@@ -1,114 +0,0 @@
1
- /**
2
- * ./src/classes/yolk.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- */
8
- import yaml from 'js-yaml';
9
- import fs from 'node:fs';
10
- import shx from 'shelljs';
11
- import { exec } from '../lib/utils.js';
12
- import Bleach from './bleach.js';
13
- import Pacman from './pacman.js';
14
- import Utils from './utils.js';
15
- /**
16
- *
17
- */
18
- export default class Yolk {
19
- echo = {};
20
- verbose = false;
21
- yolkDir = '/var/local/yolk';
22
- /**
23
- *
24
- */
25
- async create(verbose = false) {
26
- this.verbose = verbose;
27
- this.echo = Utils.setEcho(verbose);
28
- if (Utils.uefiArch() !== 'amd64') {
29
- Utils.warning(`yolk is not used on ${Utils.uefiArch()} architecture`);
30
- return;
31
- }
32
- Utils.warning(`Creating yolk on ${this.yolkDir}`);
33
- Utils.warning('Updating system');
34
- if (!Pacman.commandIsInstalled('dpkg-scanpackages')) {
35
- Utils.warning(`I cannot find the command dpkg-scanpackages`);
36
- process.exit(0);
37
- }
38
- let cmd = '';
39
- try {
40
- cmd = 'apt-get update --yes';
41
- await exec(cmd, this.echo);
42
- }
43
- catch (error) {
44
- console.log(error);
45
- await Utils.pressKeyToExit(cmd);
46
- process.exit(0);
47
- }
48
- if (this.exists()) {
49
- await this.erase();
50
- }
51
- else {
52
- await exec(`mkdir ${this.yolkDir} -p`, this.echo);
53
- await exec(`chown _apt:root ${this.yolkDir} -R`, this.echo);
54
- }
55
- const yolk_yaml = '/etc/penguins-eggs.d/yolk.yaml';
56
- const yolk = yaml.load(fs.readFileSync(yolk_yaml, 'utf8'));
57
- process.chdir(this.yolkDir);
58
- Utils.warning(`Downloading packages and its dependencies`);
59
- for (const pkg of yolk.packages) {
60
- Utils.warning(`- ${pkg}`);
61
- cmd = `apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances ${pkg} | grep "^\\w" | sort -u`;
62
- let depends = pkg + '\n';
63
- depends += (await exec(cmd, { capture: true, echo: false })).data;
64
- await this.installDeps(depends.split('\n'));
65
- }
66
- // create Package.gz
67
- cmd = 'dpkg-scanpackages -h md5,sha1,sha256 . | gzip -c > Packages.gz';
68
- Utils.warning(cmd);
69
- await exec(cmd, { capture: true, echo: false });
70
- // Create Release date: Sat, 14 Aug 2021 07:42:00 UTC
71
- const now = shx.exec('date -R -u').stdout.trim();
72
- const content = `Archive: stable\nComponent: yolk\nOrigin: penguins-eggs\nArchitecture: ${Utils.uefiArch()} \nDate: ${now}\n`;
73
- Utils.warning('Writing Release');
74
- fs.writeFileSync('Release', content);
75
- // Cleaning
76
- Utils.warning('Cleaning apt cache');
77
- const bleach = new Bleach();
78
- await bleach.clean(verbose);
79
- }
80
- /**
81
- * Svuota la repo yolk
82
- */
83
- async erase() {
84
- await exec(`rm ${this.yolkDir}/*`, this.echo);
85
- }
86
- /**
87
- * Check if yoil exists and it's a repo
88
- */
89
- exists() {
90
- const check = `${this.yolkDir}/Packages.gz`;
91
- return fs.existsSync(check);
92
- }
93
- /**
94
- * if depends are not Installed
95
- * download depends
96
- * @param depends
97
- */
98
- async installDeps(depends) {
99
- // select for downloads only packages NOT already installed
100
- const toDownloads = [];
101
- for (const depend of depends) {
102
- // if (depend !== '' && !Pacman.packageIsInstalled(depend)) {
103
- toDownloads.push(depend);
104
- // }
105
- }
106
- // now we go to downloads them
107
- for (const toDownload of toDownloads) {
108
- process.chdir(this.yolkDir);
109
- const cmd = `apt-get download ${toDownload}`;
110
- // Utils.warning(`- ${cmd}`)
111
- await exec(cmd, this.echo);
112
- }
113
- }
114
- }
@@ -1,17 +0,0 @@
1
- /**
2
- * ./src/commands/adapt.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- */
8
- import { Command } from '@oclif/core';
9
- export default class Adapt extends Command {
10
- static description: string;
11
- static examples: string[];
12
- static flags: {
13
- help: import("@oclif/core/interfaces").BooleanFlag<void>;
14
- verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
- };
16
- run(): Promise<void>;
17
- }
@@ -1,33 +0,0 @@
1
- /**
2
- * ./src/commands/adapt.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- */
8
- import { Command, Flags } from '@oclif/core';
9
- import Utils from '../classes/utils.js';
10
- import { exec } from '../lib/utils.js';
11
- export default class Adapt extends Command {
12
- static description = 'adapt monitor resolution for VM only';
13
- static examples = ['eggs adapt'];
14
- static flags = {
15
- help: Flags.help({ char: 'h' }),
16
- verbose: Flags.boolean({ char: 'v' })
17
- };
18
- async run() {
19
- const { args, flags } = await this.parse(Adapt);
20
- let verbose = false;
21
- if (flags.verbose) {
22
- verbose = true;
23
- }
24
- const echo = Utils.setEcho(verbose);
25
- // const {args, flags} = this.parse(Adjust)
26
- Utils.titles(this.id + ' ' + this.argv);
27
- Utils.warning('Adapt monitor resolutions to the size of window in virtual machines');
28
- await exec('xrandr --output Virtual-0 --auto', echo);
29
- await exec('xrandr --output Virtual-1 --auto', echo);
30
- await exec('xrandr --output Virtual-2 --auto', echo);
31
- await exec('xrandr --output Virtual-3 --auto', echo);
32
- }
33
- }
@@ -1,26 +0,0 @@
1
- /**
2
- * ./src/commands/analyze.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- */
8
- import { Command } from '@oclif/core';
9
- import Users from '../classes/users.js';
10
- import { IWorkDir } from '../interfaces/i-workdir.js';
11
- export default class Analyze extends Command {
12
- static description: string;
13
- static examples: string[];
14
- static flags: {
15
- help: import("@oclif/core/interfaces").BooleanFlag<void>;
16
- verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
17
- };
18
- config_file: string;
19
- snapshot_dir: string;
20
- work_dir: IWorkDir;
21
- /**
22
- * fill
23
- */
24
- fill(): Promise<Users[]>;
25
- run(): Promise<void>;
26
- }