penguins-eggs 10.0.52 → 10.0.53

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 (337) hide show
  1. package/.oclif.manifest.json +2 -1500
  2. package/README.md +0 -760
  3. package/conf/derivatives.yaml +2 -0
  4. package/mkinitfs/initramfs-init.in +18 -7
  5. package/package.json +3 -4
  6. package/dist/classes/bleach.d.ts +0 -32
  7. package/dist/classes/bleach.js +0 -135
  8. package/dist/classes/cfs.d.ts +0 -17
  9. package/dist/classes/cfs.js +0 -39
  10. package/dist/classes/cli-autologin.d.ts +0 -52
  11. package/dist/classes/cli-autologin.js +0 -247
  12. package/dist/classes/compressors.d.ts +0 -54
  13. package/dist/classes/compressors.js +0 -109
  14. package/dist/classes/daddy.d.ts +0 -26
  15. package/dist/classes/daddy.js +0 -167
  16. package/dist/classes/distro.d.ts +0 -32
  17. package/dist/classes/distro.js +0 -337
  18. package/dist/classes/diversions.d.ts +0 -38
  19. package/dist/classes/diversions.js +0 -107
  20. package/dist/classes/incubation/branding.d.ts +0 -17
  21. package/dist/classes/incubation/branding.js +0 -85
  22. package/dist/classes/incubation/fisherman-helper/displaymanager.d.ts +0 -11
  23. package/dist/classes/incubation/fisherman-helper/displaymanager.js +0 -40
  24. package/dist/classes/incubation/fisherman-helper/packages.d.ts +0 -20
  25. package/dist/classes/incubation/fisherman-helper/packages.js +0 -72
  26. package/dist/classes/incubation/fisherman-helper/settings.d.ts +0 -15
  27. package/dist/classes/incubation/fisherman-helper/settings.js +0 -83
  28. package/dist/classes/incubation/fisherman.d.ts +0 -70
  29. package/dist/classes/incubation/fisherman.js +0 -263
  30. package/dist/classes/incubation/incubator.d/alpine.d.ts +0 -32
  31. package/dist/classes/incubation/incubator.d/alpine.js +0 -80
  32. package/dist/classes/incubation/incubator.d/bionic.d.ts +0 -32
  33. package/dist/classes/incubation/incubator.d/bionic.js +0 -83
  34. package/dist/classes/incubation/incubator.d/buster.d.ts +0 -32
  35. package/dist/classes/incubation/incubator.d/buster.js +0 -85
  36. package/dist/classes/incubation/incubator.d/jessie.d.ts +0 -31
  37. package/dist/classes/incubation/incubator.d/jessie.js +0 -44
  38. package/dist/classes/incubation/incubator.d/noble.d.ts +0 -32
  39. package/dist/classes/incubation/incubator.d/noble.js +0 -85
  40. package/dist/classes/incubation/incubator.d/openmamba.d.ts +0 -32
  41. package/dist/classes/incubation/incubator.d/openmamba.js +0 -81
  42. package/dist/classes/incubation/incubator.d/opensuse.d.ts +0 -32
  43. package/dist/classes/incubation/incubator.d/opensuse.js +0 -81
  44. package/dist/classes/incubation/incubator.d/rolling.d.ts +0 -32
  45. package/dist/classes/incubation/incubator.d/rolling.js +0 -80
  46. package/dist/classes/incubation/incubator.d.ts +0 -44
  47. package/dist/classes/incubation/incubator.js +0 -382
  48. package/dist/classes/incubation/installer.d.ts +0 -13
  49. package/dist/classes/incubation/installer.js +0 -52
  50. package/dist/classes/keyboards.d.ts +0 -50
  51. package/dist/classes/keyboards.js +0 -287
  52. package/dist/classes/locales.d.ts +0 -21
  53. package/dist/classes/locales.js +0 -77
  54. package/dist/classes/network.d.ts +0 -37
  55. package/dist/classes/network.js +0 -98
  56. package/dist/classes/ovary.d.ts +0 -198
  57. package/dist/classes/ovary.js +0 -1835
  58. package/dist/classes/pacman.d/aldos.d.ts +0 -47
  59. package/dist/classes/pacman.d/aldos.js +0 -93
  60. package/dist/classes/pacman.d/alpine.d.ts +0 -51
  61. package/dist/classes/pacman.d/alpine.js +0 -155
  62. package/dist/classes/pacman.d/archlinux.d.ts +0 -57
  63. package/dist/classes/pacman.d/archlinux.js +0 -130
  64. package/dist/classes/pacman.d/debian.d.ts +0 -61
  65. package/dist/classes/pacman.d/debian.js +0 -131
  66. package/dist/classes/pacman.d/fedora.d.ts +0 -48
  67. package/dist/classes/pacman.d/fedora.js +0 -94
  68. package/dist/classes/pacman.d/openmamba.d.ts +0 -47
  69. package/dist/classes/pacman.d/openmamba.js +0 -93
  70. package/dist/classes/pacman.d/opensuse.d.ts +0 -48
  71. package/dist/classes/pacman.d/opensuse.js +0 -95
  72. package/dist/classes/pacman.d/voidlinux.d.ts +0 -48
  73. package/dist/classes/pacman.d/voidlinux.js +0 -84
  74. package/dist/classes/pacman.d.ts +0 -139
  75. package/dist/classes/pacman.js +0 -756
  76. package/dist/classes/pve-live.d.ts +0 -17
  77. package/dist/classes/pve-live.js +0 -52
  78. package/dist/classes/pxe.d.ts +0 -74
  79. package/dist/classes/pxe.js +0 -410
  80. package/dist/classes/settings.d.ts +0 -53
  81. package/dist/classes/settings.js +0 -185
  82. package/dist/classes/sources_list.d.ts +0 -28
  83. package/dist/classes/sources_list.js +0 -89
  84. package/dist/classes/systemctl.d.ts +0 -47
  85. package/dist/classes/systemctl.js +0 -86
  86. package/dist/classes/tailor.d.ts +0 -50
  87. package/dist/classes/tailor.js +0 -526
  88. package/dist/classes/tools.d.ts +0 -26
  89. package/dist/classes/tools.js +0 -50
  90. package/dist/classes/users.d.ts +0 -28
  91. package/dist/classes/users.js +0 -143
  92. package/dist/classes/utils.d.ts +0 -319
  93. package/dist/classes/utils.js +0 -987
  94. package/dist/classes/xdg.d.ts +0 -45
  95. package/dist/classes/xdg.js +0 -337
  96. package/dist/classes/yolk.d.ts +0 -33
  97. package/dist/classes/yolk.js +0 -114
  98. package/dist/commands/adapt.d.ts +0 -17
  99. package/dist/commands/adapt.js +0 -33
  100. package/dist/commands/analyze.d.ts +0 -26
  101. package/dist/commands/analyze.js +0 -95
  102. package/dist/commands/calamares.d.ts +0 -29
  103. package/dist/commands/calamares.js +0 -112
  104. package/dist/commands/config.d.ts +0 -35
  105. package/dist/commands/config.js +0 -120
  106. package/dist/commands/cuckoo.d.ts +0 -16
  107. package/dist/commands/cuckoo.js +0 -62
  108. package/dist/commands/dad.d.ts +0 -20
  109. package/dist/commands/dad.js +0 -46
  110. package/dist/commands/export/iso.d.ts +0 -19
  111. package/dist/commands/export/iso.js +0 -55
  112. package/dist/commands/export/pkg.d.ts +0 -45
  113. package/dist/commands/export/pkg.js +0 -183
  114. package/dist/commands/install.d.ts +0 -37
  115. package/dist/commands/install.js +0 -88
  116. package/dist/commands/kill.d.ts +0 -24
  117. package/dist/commands/kill.js +0 -50
  118. package/dist/commands/love.d.ts +0 -20
  119. package/dist/commands/love.js +0 -59
  120. package/dist/commands/mom.d.ts +0 -16
  121. package/dist/commands/mom.js +0 -30
  122. package/dist/commands/produce.d.ts +0 -34
  123. package/dist/commands/produce.js +0 -200
  124. package/dist/commands/status.d.ts +0 -23
  125. package/dist/commands/status.js +0 -31
  126. package/dist/commands/syncfrom.d.ts +0 -45
  127. package/dist/commands/syncfrom.js +0 -152
  128. package/dist/commands/syncto.d.ts +0 -40
  129. package/dist/commands/syncto.js +0 -175
  130. package/dist/commands/tools/clean.d.ts +0 -18
  131. package/dist/commands/tools/clean.js +0 -37
  132. package/dist/commands/tools/ppa.d.ts +0 -26
  133. package/dist/commands/tools/ppa.js +0 -138
  134. package/dist/commands/tools/skel.d.ts +0 -18
  135. package/dist/commands/tools/skel.js +0 -44
  136. package/dist/commands/tools/stat.d.ts +0 -31
  137. package/dist/commands/tools/stat.js +0 -70
  138. package/dist/commands/tools/yolk.d.ts +0 -24
  139. package/dist/commands/tools/yolk.js +0 -45
  140. package/dist/commands/update.d.ts +0 -51
  141. package/dist/commands/update.js +0 -220
  142. package/dist/commands/wardrobe/get.d.ts +0 -23
  143. package/dist/commands/wardrobe/get.js +0 -52
  144. package/dist/commands/wardrobe/list.d.ts +0 -24
  145. package/dist/commands/wardrobe/list.js +0 -125
  146. package/dist/commands/wardrobe/show.d.ts +0 -25
  147. package/dist/commands/wardrobe/show.js +0 -97
  148. package/dist/commands/wardrobe/wear.d.ts +0 -26
  149. package/dist/commands/wardrobe/wear.js +0 -84
  150. package/dist/components/finished.d.ts +0 -16
  151. package/dist/components/finished.js +0 -56
  152. package/dist/components/information.d.ts +0 -8
  153. package/dist/components/information.js +0 -154
  154. package/dist/components/install.d.ts +0 -15
  155. package/dist/components/install.js +0 -60
  156. package/dist/components/keyboard.d.ts +0 -16
  157. package/dist/components/keyboard.js +0 -54
  158. package/dist/components/location.d.ts +0 -16
  159. package/dist/components/location.js +0 -59
  160. package/dist/components/network.d.ts +0 -19
  161. package/dist/components/network.js +0 -65
  162. package/dist/components/partitions.d.ts +0 -16
  163. package/dist/components/partitions.js +0 -73
  164. package/dist/components/steps.d.ts +0 -13
  165. package/dist/components/steps.js +0 -148
  166. package/dist/components/summary.d.ts +0 -24
  167. package/dist/components/summary.js +0 -81
  168. package/dist/components/title.d.ts +0 -11
  169. package/dist/components/title.js +0 -35
  170. package/dist/components/users.d.ts +0 -24
  171. package/dist/components/users.js +0 -80
  172. package/dist/components/welcome.d.ts +0 -13
  173. package/dist/components/welcome.js +0 -63
  174. package/dist/index-old.d.ts +0 -8
  175. package/dist/index-old.js +0 -8
  176. package/dist/index.d.ts +0 -54
  177. package/dist/index.js +0 -147
  178. package/dist/interfaces/i-addons.d.ts +0 -12
  179. package/dist/interfaces/i-addons.js +0 -8
  180. package/dist/interfaces/i-analyze.d.ts +0 -17
  181. package/dist/interfaces/i-analyze.js +0 -17
  182. package/dist/interfaces/i-app.d.ts +0 -14
  183. package/dist/interfaces/i-app.js +0 -8
  184. package/dist/interfaces/i-branding.d.ts +0 -36
  185. package/dist/interfaces/i-branding.js +0 -8
  186. package/dist/interfaces/i-calamares-displaymanager.d.ts +0 -17
  187. package/dist/interfaces/i-calamares-displaymanager.js +0 -1
  188. package/dist/interfaces/i-calamares-finished.d.ts +0 -12
  189. package/dist/interfaces/i-calamares-finished.js +0 -1
  190. package/dist/interfaces/i-calamares-packages.d.ts +0 -28
  191. package/dist/interfaces/i-calamares-packages.js +0 -1
  192. package/dist/interfaces/i-calamares-partition.d.ts +0 -40
  193. package/dist/interfaces/i-calamares-partition.js +0 -1
  194. package/dist/interfaces/i-config-tools.d.ts +0 -15
  195. package/dist/interfaces/i-config-tools.js +0 -8
  196. package/dist/interfaces/i-devices.d.ts +0 -20
  197. package/dist/interfaces/i-devices.js +0 -8
  198. package/dist/interfaces/i-distro.d.ts +0 -23
  199. package/dist/interfaces/i-distro.js +0 -8
  200. package/dist/interfaces/i-drive-list.d.ts +0 -33
  201. package/dist/interfaces/i-drive-list.js +0 -8
  202. package/dist/interfaces/i-eggs-config.d.ts +0 -32
  203. package/dist/interfaces/i-eggs-config.js +0 -8
  204. package/dist/interfaces/i-excludes.d.ts +0 -14
  205. package/dist/interfaces/i-excludes.js +0 -8
  206. package/dist/interfaces/i-exec.d.ts +0 -11
  207. package/dist/interfaces/i-exec.js +0 -8
  208. package/dist/interfaces/i-initrd.d.ts +0 -13
  209. package/dist/interfaces/i-initrd.js +0 -8
  210. package/dist/interfaces/i-install.d.ts +0 -16
  211. package/dist/interfaces/i-install.js +0 -8
  212. package/dist/interfaces/i-installer.d.ts +0 -17
  213. package/dist/interfaces/i-installer.js +0 -8
  214. package/dist/interfaces/i-krill-config.d.ts +0 -33
  215. package/dist/interfaces/i-krill-config.js +0 -8
  216. package/dist/interfaces/i-krill.d.ts +0 -42
  217. package/dist/interfaces/i-krill.js +0 -8
  218. package/dist/interfaces/i-materia.d.ts +0 -36
  219. package/dist/interfaces/i-materia.js +0 -8
  220. package/dist/interfaces/i-net.d.ts +0 -16
  221. package/dist/interfaces/i-net.js +0 -8
  222. package/dist/interfaces/i-packages.d.ts +0 -16
  223. package/dist/interfaces/i-packages.js +0 -8
  224. package/dist/interfaces/i-partitions.d.ts +0 -16
  225. package/dist/interfaces/i-partitions.js +0 -8
  226. package/dist/interfaces/i-pxe.d.ts +0 -45
  227. package/dist/interfaces/i-pxe.js +0 -1
  228. package/dist/interfaces/i-remix.d.ts +0 -21
  229. package/dist/interfaces/i-remix.js +0 -8
  230. package/dist/interfaces/i-settings.d.ts +0 -33
  231. package/dist/interfaces/i-settings.js +0 -8
  232. package/dist/interfaces/i-user.d.ts +0 -14
  233. package/dist/interfaces/i-user.js +0 -8
  234. package/dist/interfaces/i-workdir.d.ts +0 -14
  235. package/dist/interfaces/i-workdir.js +0 -8
  236. package/dist/interfaces/i-xkb-model.d.ts +0 -24
  237. package/dist/interfaces/i-xkb-model.js +0 -8
  238. package/dist/interfaces/index.d.ts +0 -25
  239. package/dist/interfaces/index.js +0 -8
  240. package/dist/krill/modules/add-user.d.ts +0 -20
  241. package/dist/krill/modules/add-user.js +0 -48
  242. package/dist/krill/modules/bootloader-config.d.ts +0 -14
  243. package/dist/krill/modules/bootloader-config.js +0 -148
  244. package/dist/krill/modules/bootloader.d.ts +0 -14
  245. package/dist/krill/modules/bootloader.js +0 -130
  246. package/dist/krill/modules/change-password.d.ts +0 -15
  247. package/dist/krill/modules/change-password.js +0 -18
  248. package/dist/krill/modules/del-live-user.d.ts +0 -14
  249. package/dist/krill/modules/del-live-user.js +0 -39
  250. package/dist/krill/modules/fstab.d.ts +0 -14
  251. package/dist/krill/modules/fstab.js +0 -123
  252. package/dist/krill/modules/grubcfg.d.ts +0 -17
  253. package/dist/krill/modules/grubcfg.js +0 -29
  254. package/dist/krill/modules/hostname.d.ts +0 -13
  255. package/dist/krill/modules/hostname.js +0 -50
  256. package/dist/krill/modules/initramfs-cfg.d.ts +0 -14
  257. package/dist/krill/modules/initramfs-cfg.js +0 -22
  258. package/dist/krill/modules/initramfs.d.ts +0 -13
  259. package/dist/krill/modules/initramfs.js +0 -54
  260. package/dist/krill/modules/locale-cfg.d.ts +0 -10
  261. package/dist/krill/modules/locale-cfg.js +0 -58
  262. package/dist/krill/modules/locale.d.ts +0 -13
  263. package/dist/krill/modules/locale.js +0 -91
  264. package/dist/krill/modules/m-keyboard.d.ts +0 -14
  265. package/dist/krill/modules/m-keyboard.js +0 -58
  266. package/dist/krill/modules/machine-id.d.ts +0 -15
  267. package/dist/krill/modules/machine-id.js +0 -33
  268. package/dist/krill/modules/mkfs.d.ts +0 -15
  269. package/dist/krill/modules/mkfs.js +0 -50
  270. package/dist/krill/modules/mount-fs.d.ts +0 -17
  271. package/dist/krill/modules/mount-fs.js +0 -62
  272. package/dist/krill/modules/mount-vfs.d.ts +0 -17
  273. package/dist/krill/modules/mount-vfs.js +0 -40
  274. package/dist/krill/modules/network-cfg.d.ts +0 -19
  275. package/dist/krill/modules/network-cfg.js +0 -64
  276. package/dist/krill/modules/packages.d.ts +0 -14
  277. package/dist/krill/modules/packages.js +0 -111
  278. package/dist/krill/modules/partition.d.ts +0 -20
  279. package/dist/krill/modules/partition.js +0 -324
  280. package/dist/krill/modules/remove-installer-link.d.ts +0 -13
  281. package/dist/krill/modules/remove-installer-link.js +0 -35
  282. package/dist/krill/modules/umount.d.ts +0 -14
  283. package/dist/krill/modules/umount.js +0 -27
  284. package/dist/krill/modules/unpackfs.d.ts +0 -13
  285. package/dist/krill/modules/unpackfs.js +0 -20
  286. package/dist/krill/prepare.d.ts +0 -78
  287. package/dist/krill/prepare.js +0 -624
  288. package/dist/krill/sequence.d.ts +0 -154
  289. package/dist/krill/sequence.js +0 -650
  290. package/dist/lib/get_address.d.ts +0 -8
  291. package/dist/lib/get_address.js +0 -23
  292. package/dist/lib/get_dns.d.ts +0 -8
  293. package/dist/lib/get_dns.js +0 -23
  294. package/dist/lib/get_domain.d.ts +0 -8
  295. package/dist/lib/get_domain.js +0 -23
  296. package/dist/lib/get_gateway.d.ts +0 -8
  297. package/dist/lib/get_gateway.js +0 -23
  298. package/dist/lib/get_hostname.d.ts +0 -8
  299. package/dist/lib/get_hostname.js +0 -23
  300. package/dist/lib/get_netmask.d.ts +0 -8
  301. package/dist/lib/get_netmask.js +0 -23
  302. package/dist/lib/get_password.d.ts +0 -8
  303. package/dist/lib/get_password.js +0 -36
  304. package/dist/lib/get_userfullname.d.ts +0 -8
  305. package/dist/lib/get_userfullname.js +0 -23
  306. package/dist/lib/get_username.d.ts +0 -8
  307. package/dist/lib/get_username.js +0 -23
  308. package/dist/lib/kill_me_softly.d.ts +0 -11
  309. package/dist/lib/kill_me_softly.js +0 -61
  310. package/dist/lib/select_address_type.d.ts +0 -8
  311. package/dist/lib/select_address_type.js +0 -24
  312. package/dist/lib/select_filesystem_type.d.ts +0 -8
  313. package/dist/lib/select_filesystem_type.js +0 -46
  314. package/dist/lib/select_installation_device.d.ts +0 -8
  315. package/dist/lib/select_installation_device.js +0 -30
  316. package/dist/lib/select_installation_mode.d.ts +0 -8
  317. package/dist/lib/select_installation_mode.js +0 -24
  318. package/dist/lib/select_interface.d.ts +0 -8
  319. package/dist/lib/select_interface.js +0 -24
  320. package/dist/lib/select_keyboard_layout.d.ts +0 -11
  321. package/dist/lib/select_keyboard_layout.js +0 -36
  322. package/dist/lib/select_keyboard_model.d.ts +0 -11
  323. package/dist/lib/select_keyboard_model.js +0 -34
  324. package/dist/lib/select_keyboard_option.d.ts +0 -11
  325. package/dist/lib/select_keyboard_option.js +0 -34
  326. package/dist/lib/select_keyboard_variant.d.ts +0 -11
  327. package/dist/lib/select_keyboard_variant.js +0 -35
  328. package/dist/lib/select_languages.d.ts +0 -8
  329. package/dist/lib/select_languages.js +0 -28
  330. package/dist/lib/select_regions.d.ts +0 -8
  331. package/dist/lib/select_regions.js +0 -24
  332. package/dist/lib/select_user_swap_choice.d.ts +0 -8
  333. package/dist/lib/select_user_swap_choice.js +0 -34
  334. package/dist/lib/select_zones.d.ts +0 -8
  335. package/dist/lib/select_zones.js +0 -518
  336. package/dist/lib/utils.d.ts +0 -34
  337. package/dist/lib/utils.js +0 -79
@@ -1,13 +0,0 @@
1
- /**
2
- * ./src/krill/modules/initramfs.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import Sequence from '../sequence.js';
10
- /**
11
- * initramfs()
12
- */
13
- export default function initramfs(this: Sequence): Promise<void>;
@@ -1,54 +0,0 @@
1
- /**
2
- * ./src/krill/modules/initramfs.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import path from 'node:path';
10
- import Utils from '../../classes/utils.js';
11
- import { exec } from '../../lib/utils.js';
12
- // _dirname
13
- const __dirname = path.dirname(new URL(import.meta.url).pathname);
14
- /**
15
- * initramfs()
16
- */
17
- export default async function initramfs() {
18
- if (this.distro.familyId === 'debian') {
19
- /**
20
- * Debian
21
- */
22
- let cmd = `chroot ${this.installTarget} mkinitramfs -o /boot/initrd.img-$(uname -r)`;
23
- await exec(cmd, this.echo);
24
- }
25
- else if (this.distro.familyId === 'archlinux') {
26
- /**
27
- * Archlinux
28
- */
29
- let initrdImg = path.basename(Utils.initrdImg());
30
- let cmd = `chroot ${this.installTarget} mkinitcpio -g /boot/${initrdImg}}`;
31
- await exec(cmd, this.echo);
32
- }
33
- else if (this.distro.familyId === 'alpine') {
34
- /**
35
- * Alpine
36
- */
37
- let cmd = `chroot ${this.installTarget} mkinitfs`;
38
- await exec(cmd, this.echo);
39
- }
40
- else if (this.distro.familyId === 'fedora') {
41
- /**
42
- * Fedora
43
- */
44
- let cmd = `chroot ${this.installTarget} dracut -f`;
45
- await exec(cmd, this.echo);
46
- }
47
- else if (this.distro.familyId === 'opensuse') {
48
- /**
49
- * Opensuse
50
- */
51
- let cmd = `chroot ${this.installTarget} dracut -f`;
52
- await exec(cmd, this.echo);
53
- }
54
- }
@@ -1,10 +0,0 @@
1
- /**
2
- * ./src/krill/modules/locale-cfg.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import Sequence from '../sequence.js';
10
- export default function localeCfg(this: Sequence): Promise<void>;
@@ -1,58 +0,0 @@
1
- /**
2
- * ./src/krill/modules/locale-cfg.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import fs from 'node:fs';
10
- /* localeCfg
11
- * Enable the configured locales (those set by the user on the
12
- * user page) in /etc/locale.gen, if they are available in the
13
- * target system.
14
- */
15
- export default async function localeCfg() {
16
- /**
17
- * influence: - locale-gen
18
- */
19
- let supporteds = [];
20
- if (this.distro.familyId === 'debian') {
21
- // Format: en_US.UTF-8 UTF-8
22
- supporteds = fs.readFileSync('/usr/share/i18n/SUPPORTED', 'utf8').split('\n');
23
- }
24
- else if (this.distro.familyId === 'archlinux') {
25
- const supportedsSource = fs.readFileSync('/etc/locale.gen', 'utf8').split('\n');
26
- for (let line of supportedsSource) {
27
- if (line.slice(0, 2) !== '# ') {
28
- // se non è un commento
29
- line = line.slice(1); // Rimuove #
30
- }
31
- supporteds.push(line);
32
- }
33
- }
34
- const localeGenSource = fs.readFileSync(`${this.installTarget}/etc/locale.gen`, 'utf8').split('\n');
35
- let localeGenDest = '';
36
- const krillBookmark = '# Locales enabled by krill\n';
37
- for (const line of localeGenSource) {
38
- if (line.includes(krillBookmark)) {
39
- break;
40
- }
41
- localeGenDest += line + '\n';
42
- }
43
- localeGenDest += '\n';
44
- localeGenDest += krillBookmark;
45
- const locales = [];
46
- if (this.language !== 'en_US.UTF-8') {
47
- locales.push('en_US.UTF-8');
48
- }
49
- locales.push(this.language);
50
- for (const supported of supporteds) {
51
- for (const locale of locales) {
52
- if (supported.includes(locale)) {
53
- localeGenDest += `${supported}\n`;
54
- }
55
- }
56
- }
57
- fs.writeFileSync(`${this.installTarget}/etc/locale.gen`, localeGenDest);
58
- }
@@ -1,13 +0,0 @@
1
- /**
2
- * ./src/krill/modules/locale.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import Sequence from '../sequence.js';
10
- /**
11
- * locale
12
- */
13
- export default function locale(this: Sequence): Promise<void>;
@@ -1,91 +0,0 @@
1
- /**
2
- * ./src/krill/modules/locale.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import fs from 'node:fs';
10
- import Utils from '../../classes/utils.js';
11
- import { exec } from '../../lib/utils.js';
12
- /**
13
- * locale
14
- */
15
- export default async function locale() {
16
- const defaultLocale = this.language;
17
- if (this.distro.familyId === 'archlinux' || this.distro.familyId === 'debian') {
18
- /**
19
- * influcence: - /etc/default/locale
20
- * - /etc/locale.conf
21
- * - /etc/timezone
22
- */
23
- let file = this.installTarget + '/etc/default/locale';
24
- let content = '';
25
- content += `LANG=${defaultLocale}\n`;
26
- content += `LC_CTYPE=${defaultLocale}\n`;
27
- content += `LC_NUMERIC=${defaultLocale}\n`;
28
- content += `LC_TIME=${defaultLocale}\n`;
29
- content += `LC_COLLATE=${defaultLocale}\n`;
30
- content += `LC_MONETARY=${defaultLocale}\n`;
31
- content += `LC_MESSAGES=${defaultLocale}\n`;
32
- content += `LC_PAPER=${defaultLocale}\n`;
33
- content += `LC_NAME=${defaultLocale}\n`;
34
- content += `LC_ADDRESS=${defaultLocale}\n`;
35
- content += `LC_TELEPHONE=${defaultLocale}\n`;
36
- content += `LC_MEASUREMENT=${defaultLocale}\n`;
37
- content += `LC_IDENTIFICATION=${defaultLocale}\n`;
38
- content += `LC_ALL=${defaultLocale}\n`;
39
- Utils.write(file, content);
40
- // /etc/locale.conf
41
- file = this.installTarget + '/etc/locale.conf';
42
- Utils.write(file, content);
43
- // timezone Arch Debian
44
- if (fs.existsSync('/etc/localtime')) {
45
- const cmd = `chroot ${this.installTarget} unlink /etc/localtime ${this.toNull}`;
46
- await exec(cmd, this.echo);
47
- }
48
- const cmd = `chroot ${this.installTarget} ln -sf /usr/share/zoneinfo/${this.region}/${this.zone} /etc/localtime ${this.toNull}`;
49
- await exec(cmd, this.echo);
50
- }
51
- else if (this.distro.familyId === 'alpine') {
52
- // locale Alpine
53
- let file = this.installTarget + "/etc/profile.d/00locale.sh";
54
- let content = "";
55
- content += `#!/bin/sh\n`;
56
- content += `export MUSL_LOCPATH="/usr/share/i18n/locales/musl"\n`;
57
- content += `\n`;
58
- content += `export LANG=${defaultLocale}\n`;
59
- content += `export LC_CTYPE=${defaultLocale}\n`;
60
- content += `export LC_NUMERIC=${defaultLocale}\n`;
61
- content += `export LC_TIME=${defaultLocale}\n`;
62
- content += `export LC_COLLATE=${defaultLocale}\n`;
63
- content += `export LC_MONETARY=${defaultLocale}\n`;
64
- content += `export LC_MESSAGES=${defaultLocale}\n`;
65
- content += `export LC_PAPER=${defaultLocale}\n`;
66
- content += `export LC_NAME=${defaultLocale}\n`;
67
- content += `export LC_ADDRESS=${defaultLocale}\n`;
68
- content += `export LC_TELEPHONE=${defaultLocale}\n`;
69
- content += `export LC_MEASUREMENT=${defaultLocale}\n`;
70
- content += `export LC_IDENTIFICATION=${defaultLocale}\n`;
71
- content += `export LC_ALL=${defaultLocale}\n`;
72
- Utils.write(file, content);
73
- await exec(`chmod +x ${file}`);
74
- /**
75
- * https://docs.alpinelinux.org/user-handbook/0.1a/Installing/manual.html
76
- */
77
- /**
78
- * timezone
79
- *
80
- */
81
- let tz = `/etc/zoneinfo/${this.region}/${this.zone}`;
82
- await exec(`chroot ${this.installTarget} rm -rf /etc/zoneinfo/* ${this.toNull}`, this.echo);
83
- await exec(`chroot ${this.installTarget} mkdir -p ${tz} ${this.toNull}`, this.echo);
84
- file = `${this.installTarget}/etc/profile.d/timezone.sh`;
85
- content = "";
86
- content += `#!/bin/sh\n`;
87
- content += `export TZ='${tz}'`;
88
- Utils.write(file, content);
89
- await exec(`chmod +x ${file} ${this.toNull}`);
90
- }
91
- }
@@ -1,14 +0,0 @@
1
- /**
2
- * ./src/krill/modules/m-keyboard.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import Sequence from '../sequence.js';
10
- /**
11
- *
12
- * @param this
13
- */
14
- export default function mKeyboard(this: Sequence): Promise<void>;
@@ -1,58 +0,0 @@
1
- /**
2
- * ./src/krill/modules/m-keyboard.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import fs from 'node:fs';
10
- import Utils from '../../classes/utils.js';
11
- import { exec } from '../../lib/utils.js';
12
- /**
13
- *
14
- * @param this
15
- */
16
- export default async function mKeyboard() {
17
- /**
18
- * influence: - /etc/default/keyboard (console)
19
- * - /etc/X11/xorg.conf.d/00-keyboard.conf
20
- * - /ext/vconsole.conf (non systemd)
21
- */
22
- if (this.distro.familyId === 'archlinux' || this.distro.familyId === 'debian' || this.distro.familyId === 'fedora') {
23
- let cmd = '';
24
- let content = '';
25
- if (Utils.isSystemd()) {
26
- cmd = `chroot ${this.installTarget} localectl set-keymap ${this.keyboardLayout} ${this.toNull}`;
27
- content = '# See penguins-eggs/src/krill/modules/set-keyboard.ts\n\n';
28
- content += "# Read and parsed by systemd-localed. It's probably wise not to edit this file\n";
29
- content += '# manually too freely.\n';
30
- content += 'Section "InputClass"\n';
31
- content += ' Identifier "system-keyboard"\n';
32
- content += ' MatchIsKeyboard "on"\n';
33
- content += ' Option "XkbLayout" "' + this.keyboardLayout + '"\n';
34
- content += 'EndSection\n';
35
- if (fs.existsSync(this.installTarget + '/etc/X11/xorg.conf.d')) {
36
- Utils.write(this.installTarget + '/etc/X11/xorg.conf.d/00-keyboard.conf', content);
37
- }
38
- }
39
- else {
40
- /**
41
- * configuro vconsole.conf
42
- */
43
- cmd = `chroot ${this.installTarget} setupcon ${this.toNull}`;
44
- content = '# See penguins-eggs/src/krill/modules/set-keyboard.ts\n\n';
45
- content += 'KEYMAP="' + this.keyboardLayout + '"\n';
46
- content += 'FONT=\n';
47
- content += 'FONT_MAP=\n';
48
- Utils.write(this.installTarget + '/etc/vconsole.conf', content);
49
- }
50
- await exec(cmd, this.echo);
51
- }
52
- else if (this.distro.familyId === 'alpine') {
53
- /**
54
- * Alpine dovrebbe fare tutto con `setup-keymap us us`
55
- */
56
- await exec(`chroot ${this.installTarget} setup-keymap ${this.keyboardLayout} ${this.keyboardLayout}`);
57
- }
58
- }
@@ -1,15 +0,0 @@
1
- /**
2
- * penguins-eggs
3
- * krill modules: machine-id.ts
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import Sequence from '../sequence.js';
10
- /**
11
- * On Ubuntu
12
- * /etc/machine-id must exist to be re-created
13
- * https://unix.stackexchange.com/questions/402999/is-it-ok-to-change-etc-machine-id
14
- */
15
- export default function machineId(this: Sequence): Promise<void>;
@@ -1,33 +0,0 @@
1
- /**
2
- * penguins-eggs
3
- * krill modules: machine-id.ts
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import fs from 'node:fs';
10
- import { exec } from '../../lib/utils.js';
11
- import Utils from '../../classes/utils.js';
12
- /**
13
- * On Ubuntu
14
- * /etc/machine-id must exist to be re-created
15
- * https://unix.stackexchange.com/questions/402999/is-it-ok-to-change-etc-machine-id
16
- */
17
- export default async function machineId() {
18
- // We delete the machine-id file to force its recreation
19
- const file = `${this.installTarget}/etc/machine-id`;
20
- if (fs.existsSync(file)) {
21
- await exec(`rm ${file} ${this.toNull}`, this.echo);
22
- }
23
- /**
24
- * machine/id ALWAYS new
25
- */
26
- if (Utils.isSystemd()) {
27
- await exec(`chroot ${this.installTarget} systemd-machine-id-setup`);
28
- }
29
- else {
30
- await exec(`chroot ${this.installTarget} dbus-uuidgen --ensure=/var/lib/dbus/machine-id ${this.toNull}`);
31
- await exec(`chroot ${this.installTarget} cp /var/lib/dbus/machine-id /etc/machine-id`);
32
- }
33
- }
@@ -1,15 +0,0 @@
1
- /**
2
- * ./src/krill/modules/mkfs.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import Sequence from '../sequence.js';
10
- /**
11
- * mkfs
12
- *
13
- * mke2fs - create an ext2/ext3/ext4 file system -F force, -t type
14
- */
15
- export default function mkfs(this: Sequence): Promise<boolean>;
@@ -1,50 +0,0 @@
1
- /**
2
- * ./src/krill/modules/mkfs.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import { exec } from '../../lib/utils.js';
10
- /**
11
- * mkfs
12
- *
13
- * mke2fs - create an ext2/ext3/ext4 file system -F force, -t type
14
- */
15
- export default async function mkfs() {
16
- const result = true;
17
- if (this.partitions.filesystemType === 'ext4') {
18
- if (this.efi) {
19
- await exec(`mkdosfs -F 32 -I ${this.devices.efi.name} ${this.toNull}`, this.echo);
20
- }
21
- if (this.devices.boot.name !== 'none') {
22
- if (this.devices.boot.fsType === undefined) {
23
- this.devices.boot.fsType = 'ext2';
24
- this.devices.boot.mountPoint = '/boot';
25
- }
26
- await exec(`mke2fs -Ft ${this.devices.boot.fsType} ${this.devices.boot.name} ${this.toNull}`, this.echo);
27
- }
28
- if (this.devices.root.name !== 'none') {
29
- await exec(`mke2fs -Ft ${this.devices.root.fsType} ${this.devices.root.name} ${this.toNull}`, this.echo);
30
- }
31
- if (this.devices.data.name !== 'none') {
32
- await exec(`mke2fs -Ft ${this.devices.data.fsType} ${this.devices.data.name} ${this.toNull}`, this.echo);
33
- }
34
- if (this.devices.swap.name !== 'none') {
35
- await exec(`mkswap ${this.devices.swap.name} ${this.toNull}`, this.echo);
36
- }
37
- }
38
- else if (this.partitions.filesystemType === 'btrfs') {
39
- await exec(`mkfs.btrfs -f ${this.devices.root.name} ${this.toNull}`, this.echo);
40
- // create subvolumes
41
- // await exec(`btrfs subvolume create /.snapshots ${this.toNull}`, this.echo)
42
- // await exec(`btrfs subvolume create /home ${this.toNull}`, this.echo)
43
- // await exec(`btrfs subvolume create /root ${this.toNull}`, this.echo)
44
- // await exec(`btrfs subvolume create /var/log ${this.toNull}`, this.echo)
45
- // await exec(`btrfs subvolume create /var/lib/AccountsService ${this.toNull}`, this.echo)
46
- // await exec(`btrfs subvolume create /var/lib/blueman ${this.toNull}`, this.echo)
47
- // await exec(`btrfs subvolume create /tmp ${this.toNull}`, this.echo)
48
- }
49
- return result;
50
- }
@@ -1,17 +0,0 @@
1
- /**
2
- * ./src/krill/modules/mount-fs.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import Sequence from '../sequence.js';
10
- /**
11
- * mountFs
12
- */
13
- export declare function mountFs(this: Sequence): Promise<boolean>;
14
- /**
15
- * umountFs
16
- */
17
- export declare function umountFs(this: Sequence): Promise<boolean>;
@@ -1,62 +0,0 @@
1
- /**
2
- * ./src/krill/modules/mount-fs.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import fs from 'node:fs';
10
- import { exec } from '../../lib/utils.js';
11
- /**
12
- * mountFs
13
- */
14
- export async function mountFs() {
15
- if (!fs.existsSync(this.installTarget)) {
16
- await exec(`mkdir ${this.installTarget} ${this.toNull}`, this.echo);
17
- }
18
- // root Alpine vuole -t per il mount
19
- await exec(`mount -t ${this.devices.root.fsType} ${this.devices.root.name} ${this.installTarget}${this.devices.root.mountPoint} ${this.toNull}`, this.echo);
20
- await exec(`tune2fs -c 0 -i 0 ${this.devices.root.name} ${this.toNull}`, this.echo);
21
- await exec(`rm -rf ${this.installTarget}/lost+found ${this.toNull}`, this.echo);
22
- // boot
23
- if (this.devices.boot.name !== 'none') {
24
- await exec(`mkdir ${this.installTarget}/boot -p ${this.toNull}`, this.echo);
25
- await exec(`mount -t ${this.devices.boot.fsType} ${this.devices.boot.name} ${this.installTarget}${this.devices.boot.mountPoint} ${this.toNull}`, this.echo);
26
- await exec(`tune2fs -c 0 -i 0 ${this.devices.boot.name} ${this.toNull}`, this.echo);
27
- }
28
- // data
29
- if (this.devices.data.name !== 'none') {
30
- await exec(`mkdir ${this.installTarget}${this.devices.data.mountPoint} -p ${this.toNull}`, this.echo);
31
- await exec(`mount -t ${this.devices.data.fsType} ${this.devices.data.name} ${this.installTarget}${this.devices.data.mountPoint} ${this.toNull}`, this.echo);
32
- await exec(`tune2fs -c 0 -i 0 ${this.devices.data.name} ${this.toNull}`, this.echo);
33
- }
34
- // efi
35
- if (this.efi && !fs.existsSync(this.installTarget + this.devices.efi.mountPoint)) {
36
- await exec(`mkdir ${this.installTarget}${this.devices.efi.mountPoint} -p ${this.toNull}`, this.echo);
37
- //await exec(`mount -t ${this.devices.efi.fsType} ${this.devices.efi.name} ${this.installTarget}${this.devices.efi.mountPoint} ${this.toNull}`, this.echo)
38
- // utilizzare vfat per evitare errori
39
- await exec(`mount -t vfat ${this.devices.efi.name} ${this.installTarget}${this.devices.efi.mountPoint} ${this.toNull}`, this.echo);
40
- }
41
- return true;
42
- }
43
- /**
44
- * umountFs
45
- */
46
- export async function umountFs() {
47
- // efi
48
- if (this.efi) {
49
- await this.umount(this.devices.efi.name);
50
- }
51
- // data
52
- if (this.devices.data.name !== 'none') {
53
- await this.umount(this.devices.data.name);
54
- }
55
- // boot
56
- if (this.devices.boot.name !== 'none') {
57
- await this.umount(this.devices.boot.name);
58
- }
59
- // root
60
- await this.umount(this.devices.root.name);
61
- return true;
62
- }
@@ -1,17 +0,0 @@
1
- /**
2
- * ./src/krill/modules/mount-vfs.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import Sequence from '../sequence.js';
10
- /**
11
- * mountvfs()
12
- */
13
- export declare function mountVfs(this: Sequence): Promise<void>;
14
- /**
15
- *
16
- */
17
- export declare function umountVfs(this: Sequence): Promise<void>;
@@ -1,40 +0,0 @@
1
- /**
2
- * ./src/krill/modules/mount-vfs.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import { exec } from '../../lib/utils.js';
10
- /**
11
- * mountvfs()
12
- */
13
- export async function mountVfs() {
14
- await exec(`mkdir ${this.installTarget}/dev ${this.toNull}`, this.echo);
15
- await exec(`mkdir ${this.installTarget}/dev/pts ${this.toNull}`, this.echo);
16
- await exec(`mkdir ${this.installTarget}/proc ${this.toNull}`, this.echo);
17
- await exec(`mkdir ${this.installTarget}/sys ${this.toNull}`, this.echo);
18
- await exec(`mkdir ${this.installTarget}/run ${this.toNull}`, this.echo);
19
- await exec(`mount -o bind /dev ${this.installTarget}/dev ${this.toNull}`, this.echo);
20
- await exec(`mount -o bind /dev/pts ${this.installTarget}/dev/pts ${this.toNull}`, this.echo);
21
- await exec(`mount -o bind /proc ${this.installTarget}/proc ${this.toNull}`, this.echo);
22
- await exec(`mount -o bind /sys ${this.installTarget}/sys ${this.toNull}`, this.echo);
23
- if (this.efi) {
24
- await exec(`mount -o bind /sys/firmware/efi/efivars ${this.installTarget}/sys/firmware/efi/efivars ${this.toNull}`, this.echo);
25
- }
26
- await exec(`mount -o rbind /run ${this.installTarget}/run ${this.toNull}`, this.echo);
27
- }
28
- /**
29
- *
30
- */
31
- export async function umountVfs() {
32
- await this.umount(`${this.installTarget}/dev/pts`);
33
- await this.umount(`${this.installTarget}/dev`);
34
- await this.umount(`${this.installTarget}/proc`);
35
- await this.umount(`${this.installTarget}/run`);
36
- if (this.efi) {
37
- await this.umount(`${this.installTarget}/sys/firmware/efi/efivars`);
38
- }
39
- await this.umount(`${this.installTarget}/sys`);
40
- }
@@ -1,19 +0,0 @@
1
- /**
2
- * ./src/krill/modules/network-cfg.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import Sequence from '../sequence.js';
10
- /**
11
- * networkcfg
12
- *
13
- * - debian: /etc/network/interface
14
- * - ubuntu: netplan
15
- * - arch:
16
- *
17
- * - all: /etc/resolv.conf
18
- */
19
- export default function networkCfg(this: Sequence): Promise<void>;
@@ -1,64 +0,0 @@
1
- /**
2
- * ./src/krill/modules/network-cfg.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import fs from 'node:fs';
10
- import Pacman from '../../classes/pacman.js';
11
- import Systemctl from '../../classes/systemctl.js';
12
- import Utils from '../../classes/utils.js';
13
- import { exec } from '../../lib/utils.js';
14
- /**
15
- * networkcfg
16
- *
17
- * - debian: /etc/network/interface
18
- * - ubuntu: netplan
19
- * - arch:
20
- *
21
- * - all: /etc/resolv.conf
22
- */
23
- export default async function networkCfg() {
24
- const systemdCtl = new Systemctl();
25
- /**
26
- * debian: /etc/network/interfaces
27
- */
28
- if (this.distro.familyId === 'debian' && !Pacman.packageIsInstalled('netplan.io')) {
29
- const file = this.installTarget + '/etc/network/interfaces';
30
- let content = '# created by eggs\n\n';
31
- content += 'auto lo\n';
32
- content += 'iface lo inet loopback\n\n';
33
- content += 'auto ' + this.network.iface + '\n';
34
- content += 'iface ' + this.network.iface + ' inet ' + this.network.addressType + '\n';
35
- if (this.network.addressType !== 'dhcp') {
36
- content += ' address ' + this.network.address + '\n';
37
- content += ' netmask ' + this.network.netmask + '\n';
38
- content += ' gateway ' + this.network.gateway + '\n';
39
- }
40
- Utils.write(file, content);
41
- }
42
- else if (this.distro.familyId === 'debian' && Pacman.packageIsInstalled('netplan.io')) {
43
- // netplan: to do
44
- }
45
- else if (this.distro.familyId === 'arch') {
46
- // arch: seem to work
47
- }
48
- /**
49
- * resolv.conf
50
- */
51
- const resolvFile = this.installTarget + '/etc/resolv.conf';
52
- await exec(`rm -f ${resolvFile}`);
53
- if (fs.existsSync('/run/systemd/resolve/resolv.conf')) {
54
- await exec(`ln -s /run/systemd/resolve/resolv.conf ${resolvFile}`);
55
- }
56
- else {
57
- let content = '# created by eggs\n\n';
58
- content += 'domain ' + this.network.domain + '\n';
59
- for (const element of this.network.dns) {
60
- content += 'nameserver ' + element + '\n';
61
- }
62
- Utils.write(resolvFile, content);
63
- }
64
- }