penguins-eggs 10.0.53 → 10.0.55

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 (346) hide show
  1. package/.oclif.manifest.json +1548 -2
  2. package/README.md +787 -0
  3. package/addons/eggs/theme/livecd/grub.main.simple.cfg +49 -0
  4. package/addons/eggs/theme/livecd/isolinux.theme.cfg +6 -5
  5. package/conf/derivatives.yaml +2 -1
  6. package/conf/distros/fedora/calamares/settings.yml +0 -6
  7. package/dist/classes/bleach.d.ts +32 -0
  8. package/dist/classes/bleach.js +135 -0
  9. package/dist/classes/cfs.d.ts +17 -0
  10. package/dist/classes/cfs.js +39 -0
  11. package/dist/classes/cli-autologin.d.ts +52 -0
  12. package/dist/classes/cli-autologin.js +247 -0
  13. package/dist/classes/compressors.d.ts +54 -0
  14. package/dist/classes/compressors.js +109 -0
  15. package/dist/classes/daddy.d.ts +26 -0
  16. package/dist/classes/daddy.js +167 -0
  17. package/dist/classes/distro.d.ts +32 -0
  18. package/dist/classes/distro.js +360 -0
  19. package/dist/classes/diversions.d.ts +48 -0
  20. package/dist/classes/diversions.js +116 -0
  21. package/dist/classes/incubation/branding.d.ts +17 -0
  22. package/dist/classes/incubation/branding.js +85 -0
  23. package/dist/classes/incubation/fisherman-helper/displaymanager.d.ts +11 -0
  24. package/dist/classes/incubation/fisherman-helper/displaymanager.js +40 -0
  25. package/dist/classes/incubation/fisherman-helper/packages.d.ts +20 -0
  26. package/dist/classes/incubation/fisherman-helper/packages.js +72 -0
  27. package/dist/classes/incubation/fisherman-helper/settings.d.ts +15 -0
  28. package/dist/classes/incubation/fisherman-helper/settings.js +83 -0
  29. package/dist/classes/incubation/fisherman.d.ts +70 -0
  30. package/dist/classes/incubation/fisherman.js +263 -0
  31. package/dist/classes/incubation/incubator.d/alpine.d.ts +32 -0
  32. package/dist/classes/incubation/incubator.d/alpine.js +78 -0
  33. package/dist/classes/incubation/incubator.d/bionic.d.ts +32 -0
  34. package/dist/classes/incubation/incubator.d/bionic.js +83 -0
  35. package/dist/classes/incubation/incubator.d/buster.d.ts +32 -0
  36. package/dist/classes/incubation/incubator.d/buster.js +85 -0
  37. package/dist/classes/incubation/incubator.d/jessie.d.ts +31 -0
  38. package/dist/classes/incubation/incubator.d/jessie.js +44 -0
  39. package/dist/classes/incubation/incubator.d/noble.d.ts +32 -0
  40. package/dist/classes/incubation/incubator.d/noble.js +85 -0
  41. package/dist/classes/incubation/incubator.d/openmamba.d.ts +32 -0
  42. package/dist/classes/incubation/incubator.d/openmamba.js +81 -0
  43. package/dist/classes/incubation/incubator.d/opensuse.d.ts +32 -0
  44. package/dist/classes/incubation/incubator.d/opensuse.js +81 -0
  45. package/dist/classes/incubation/incubator.d/rolling.d.ts +32 -0
  46. package/dist/classes/incubation/incubator.d/rolling.js +80 -0
  47. package/dist/classes/incubation/incubator.d.ts +44 -0
  48. package/dist/classes/incubation/incubator.js +382 -0
  49. package/dist/classes/incubation/installer.d.ts +13 -0
  50. package/dist/classes/incubation/installer.js +52 -0
  51. package/dist/classes/keyboards.d.ts +50 -0
  52. package/dist/classes/keyboards.js +287 -0
  53. package/dist/classes/locales.d.ts +21 -0
  54. package/dist/classes/locales.js +77 -0
  55. package/dist/classes/network.d.ts +37 -0
  56. package/dist/classes/network.js +98 -0
  57. package/dist/classes/ovary.d.ts +198 -0
  58. package/dist/classes/ovary.js +1843 -0
  59. package/dist/classes/pacman.d/aldos.d.ts +52 -0
  60. package/dist/classes/pacman.d/aldos.js +100 -0
  61. package/dist/classes/pacman.d/alpine.d.ts +56 -0
  62. package/dist/classes/pacman.d/alpine.js +162 -0
  63. package/dist/classes/pacman.d/archlinux.d.ts +62 -0
  64. package/dist/classes/pacman.d/archlinux.js +137 -0
  65. package/dist/classes/pacman.d/debian.d.ts +65 -0
  66. package/dist/classes/pacman.d/debian.js +143 -0
  67. package/dist/classes/pacman.d/fedora.d.ts +53 -0
  68. package/dist/classes/pacman.d/fedora.js +101 -0
  69. package/dist/classes/pacman.d/openmamba.d.ts +52 -0
  70. package/dist/classes/pacman.d/openmamba.js +100 -0
  71. package/dist/classes/pacman.d/opensuse.d.ts +53 -0
  72. package/dist/classes/pacman.d/opensuse.js +102 -0
  73. package/dist/classes/pacman.d/voidlinux.d.ts +52 -0
  74. package/dist/classes/pacman.d/voidlinux.js +90 -0
  75. package/dist/classes/pacman.d.ts +139 -0
  76. package/dist/classes/pacman.js +775 -0
  77. package/dist/classes/pve-live.d.ts +17 -0
  78. package/dist/classes/pve-live.js +52 -0
  79. package/dist/classes/pxe.d.ts +74 -0
  80. package/dist/classes/pxe.js +410 -0
  81. package/dist/classes/settings.d.ts +53 -0
  82. package/dist/classes/settings.js +185 -0
  83. package/dist/classes/sources_list.d.ts +28 -0
  84. package/dist/classes/sources_list.js +89 -0
  85. package/dist/classes/systemctl.d.ts +47 -0
  86. package/dist/classes/systemctl.js +86 -0
  87. package/dist/classes/tailor.d.ts +50 -0
  88. package/dist/classes/tailor.js +526 -0
  89. package/dist/classes/tools.d.ts +26 -0
  90. package/dist/classes/tools.js +50 -0
  91. package/dist/classes/users.d.ts +28 -0
  92. package/dist/classes/users.js +143 -0
  93. package/dist/classes/utils.d.ts +324 -0
  94. package/dist/classes/utils.js +976 -0
  95. package/dist/classes/xdg.d.ts +45 -0
  96. package/dist/classes/xdg.js +337 -0
  97. package/dist/classes/yolk.d.ts +33 -0
  98. package/dist/classes/yolk.js +114 -0
  99. package/dist/commands/adapt.d.ts +17 -0
  100. package/dist/commands/adapt.js +33 -0
  101. package/dist/commands/analyze.d.ts +26 -0
  102. package/dist/commands/analyze.js +95 -0
  103. package/dist/commands/calamares.d.ts +29 -0
  104. package/dist/commands/calamares.js +112 -0
  105. package/dist/commands/config.d.ts +35 -0
  106. package/dist/commands/config.js +120 -0
  107. package/dist/commands/cuckoo.d.ts +16 -0
  108. package/dist/commands/cuckoo.js +62 -0
  109. package/dist/commands/dad.d.ts +20 -0
  110. package/dist/commands/dad.js +46 -0
  111. package/dist/commands/export/iso.d.ts +19 -0
  112. package/dist/commands/export/iso.js +55 -0
  113. package/dist/commands/export/pkg.d.ts +29 -0
  114. package/dist/commands/export/pkg.js +163 -0
  115. package/dist/commands/export/tarballs.d.ts +27 -0
  116. package/dist/commands/export/tarballs.js +84 -0
  117. package/dist/commands/install.d.ts +37 -0
  118. package/dist/commands/install.js +88 -0
  119. package/dist/commands/kill.d.ts +24 -0
  120. package/dist/commands/kill.js +50 -0
  121. package/dist/commands/love.d.ts +20 -0
  122. package/dist/commands/love.js +59 -0
  123. package/dist/commands/mom.d.ts +16 -0
  124. package/dist/commands/mom.js +30 -0
  125. package/dist/commands/produce.d.ts +34 -0
  126. package/dist/commands/produce.js +201 -0
  127. package/dist/commands/status.d.ts +23 -0
  128. package/dist/commands/status.js +31 -0
  129. package/dist/commands/syncfrom.d.ts +45 -0
  130. package/dist/commands/syncfrom.js +152 -0
  131. package/dist/commands/syncto.d.ts +40 -0
  132. package/dist/commands/syncto.js +175 -0
  133. package/dist/commands/tools/clean.d.ts +18 -0
  134. package/dist/commands/tools/clean.js +37 -0
  135. package/dist/commands/tools/ppa.d.ts +26 -0
  136. package/dist/commands/tools/ppa.js +138 -0
  137. package/dist/commands/tools/skel.d.ts +18 -0
  138. package/dist/commands/tools/skel.js +44 -0
  139. package/dist/commands/tools/stat.d.ts +31 -0
  140. package/dist/commands/tools/stat.js +70 -0
  141. package/dist/commands/tools/yolk.d.ts +24 -0
  142. package/dist/commands/tools/yolk.js +45 -0
  143. package/dist/commands/update.d.ts +51 -0
  144. package/dist/commands/update.js +219 -0
  145. package/dist/commands/wardrobe/get.d.ts +23 -0
  146. package/dist/commands/wardrobe/get.js +52 -0
  147. package/dist/commands/wardrobe/list.d.ts +24 -0
  148. package/dist/commands/wardrobe/list.js +125 -0
  149. package/dist/commands/wardrobe/show.d.ts +25 -0
  150. package/dist/commands/wardrobe/show.js +97 -0
  151. package/dist/commands/wardrobe/wear.d.ts +26 -0
  152. package/dist/commands/wardrobe/wear.js +84 -0
  153. package/dist/components/finished.d.ts +16 -0
  154. package/dist/components/finished.js +56 -0
  155. package/dist/components/information.d.ts +8 -0
  156. package/dist/components/information.js +154 -0
  157. package/dist/components/install.d.ts +15 -0
  158. package/dist/components/install.js +60 -0
  159. package/dist/components/keyboard.d.ts +16 -0
  160. package/dist/components/keyboard.js +54 -0
  161. package/dist/components/location.d.ts +16 -0
  162. package/dist/components/location.js +59 -0
  163. package/dist/components/network.d.ts +19 -0
  164. package/dist/components/network.js +65 -0
  165. package/dist/components/partitions.d.ts +16 -0
  166. package/dist/components/partitions.js +73 -0
  167. package/dist/components/steps.d.ts +13 -0
  168. package/dist/components/steps.js +148 -0
  169. package/dist/components/summary.d.ts +24 -0
  170. package/dist/components/summary.js +81 -0
  171. package/dist/components/title.d.ts +11 -0
  172. package/dist/components/title.js +35 -0
  173. package/dist/components/users.d.ts +24 -0
  174. package/dist/components/users.js +80 -0
  175. package/dist/components/welcome.d.ts +13 -0
  176. package/dist/components/welcome.js +63 -0
  177. package/dist/index-old.d.ts +8 -0
  178. package/dist/index-old.js +8 -0
  179. package/dist/index.d.ts +54 -0
  180. package/dist/index.js +147 -0
  181. package/dist/interfaces/i-addons.d.ts +12 -0
  182. package/dist/interfaces/i-addons.js +8 -0
  183. package/dist/interfaces/i-analyze.d.ts +17 -0
  184. package/dist/interfaces/i-analyze.js +17 -0
  185. package/dist/interfaces/i-app.d.ts +14 -0
  186. package/dist/interfaces/i-app.js +8 -0
  187. package/dist/interfaces/i-branding.d.ts +36 -0
  188. package/dist/interfaces/i-branding.js +8 -0
  189. package/dist/interfaces/i-calamares-displaymanager.d.ts +17 -0
  190. package/dist/interfaces/i-calamares-displaymanager.js +1 -0
  191. package/dist/interfaces/i-calamares-finished.d.ts +12 -0
  192. package/dist/interfaces/i-calamares-finished.js +1 -0
  193. package/dist/interfaces/i-calamares-packages.d.ts +28 -0
  194. package/dist/interfaces/i-calamares-packages.js +1 -0
  195. package/dist/interfaces/i-calamares-partition.d.ts +40 -0
  196. package/dist/interfaces/i-calamares-partition.js +1 -0
  197. package/dist/interfaces/i-config-tools.d.ts +15 -0
  198. package/dist/interfaces/i-config-tools.js +8 -0
  199. package/dist/interfaces/i-devices.d.ts +20 -0
  200. package/dist/interfaces/i-devices.js +8 -0
  201. package/dist/interfaces/i-distro.d.ts +23 -0
  202. package/dist/interfaces/i-distro.js +8 -0
  203. package/dist/interfaces/i-drive-list.d.ts +33 -0
  204. package/dist/interfaces/i-drive-list.js +8 -0
  205. package/dist/interfaces/i-eggs-config.d.ts +32 -0
  206. package/dist/interfaces/i-eggs-config.js +8 -0
  207. package/dist/interfaces/i-excludes.d.ts +14 -0
  208. package/dist/interfaces/i-excludes.js +8 -0
  209. package/dist/interfaces/i-exec.d.ts +11 -0
  210. package/dist/interfaces/i-exec.js +8 -0
  211. package/dist/interfaces/i-initrd.d.ts +13 -0
  212. package/dist/interfaces/i-initrd.js +8 -0
  213. package/dist/interfaces/i-install.d.ts +16 -0
  214. package/dist/interfaces/i-install.js +8 -0
  215. package/dist/interfaces/i-installer.d.ts +17 -0
  216. package/dist/interfaces/i-installer.js +8 -0
  217. package/dist/interfaces/i-krill-config.d.ts +33 -0
  218. package/dist/interfaces/i-krill-config.js +8 -0
  219. package/dist/interfaces/i-krill.d.ts +42 -0
  220. package/dist/interfaces/i-krill.js +8 -0
  221. package/dist/interfaces/i-materia.d.ts +36 -0
  222. package/dist/interfaces/i-materia.js +8 -0
  223. package/dist/interfaces/i-net.d.ts +16 -0
  224. package/dist/interfaces/i-net.js +8 -0
  225. package/dist/interfaces/i-packages.d.ts +16 -0
  226. package/dist/interfaces/i-packages.js +8 -0
  227. package/dist/interfaces/i-partitions.d.ts +16 -0
  228. package/dist/interfaces/i-partitions.js +8 -0
  229. package/dist/interfaces/i-pxe.d.ts +45 -0
  230. package/dist/interfaces/i-pxe.js +1 -0
  231. package/dist/interfaces/i-remix.d.ts +21 -0
  232. package/dist/interfaces/i-remix.js +8 -0
  233. package/dist/interfaces/i-settings.d.ts +33 -0
  234. package/dist/interfaces/i-settings.js +8 -0
  235. package/dist/interfaces/i-user.d.ts +14 -0
  236. package/dist/interfaces/i-user.js +8 -0
  237. package/dist/interfaces/i-workdir.d.ts +14 -0
  238. package/dist/interfaces/i-workdir.js +8 -0
  239. package/dist/interfaces/i-xkb-model.d.ts +24 -0
  240. package/dist/interfaces/i-xkb-model.js +8 -0
  241. package/dist/interfaces/index.d.ts +25 -0
  242. package/dist/interfaces/index.js +8 -0
  243. package/dist/krill/modules/add-user.d.ts +20 -0
  244. package/dist/krill/modules/add-user.js +48 -0
  245. package/dist/krill/modules/bootloader-config.d.ts +14 -0
  246. package/dist/krill/modules/bootloader-config.js +165 -0
  247. package/dist/krill/modules/bootloader.d.ts +14 -0
  248. package/dist/krill/modules/bootloader.js +157 -0
  249. package/dist/krill/modules/change-password.d.ts +15 -0
  250. package/dist/krill/modules/change-password.js +18 -0
  251. package/dist/krill/modules/del-live-user.d.ts +14 -0
  252. package/dist/krill/modules/del-live-user.js +39 -0
  253. package/dist/krill/modules/fstab.d.ts +14 -0
  254. package/dist/krill/modules/fstab.js +123 -0
  255. package/dist/krill/modules/grubcfg.d.ts +17 -0
  256. package/dist/krill/modules/grubcfg.js +29 -0
  257. package/dist/krill/modules/hostname.d.ts +13 -0
  258. package/dist/krill/modules/hostname.js +50 -0
  259. package/dist/krill/modules/initramfs-cfg.d.ts +14 -0
  260. package/dist/krill/modules/initramfs-cfg.js +22 -0
  261. package/dist/krill/modules/initramfs.d.ts +13 -0
  262. package/dist/krill/modules/initramfs.js +54 -0
  263. package/dist/krill/modules/locale-cfg.d.ts +10 -0
  264. package/dist/krill/modules/locale-cfg.js +58 -0
  265. package/dist/krill/modules/locale.d.ts +13 -0
  266. package/dist/krill/modules/locale.js +91 -0
  267. package/dist/krill/modules/m-keyboard.d.ts +14 -0
  268. package/dist/krill/modules/m-keyboard.js +58 -0
  269. package/dist/krill/modules/machine-id.d.ts +15 -0
  270. package/dist/krill/modules/machine-id.js +33 -0
  271. package/dist/krill/modules/mkfs.d.ts +15 -0
  272. package/dist/krill/modules/mkfs.js +50 -0
  273. package/dist/krill/modules/mount-fs.d.ts +17 -0
  274. package/dist/krill/modules/mount-fs.js +62 -0
  275. package/dist/krill/modules/mount-vfs.d.ts +17 -0
  276. package/dist/krill/modules/mount-vfs.js +40 -0
  277. package/dist/krill/modules/network-cfg.d.ts +19 -0
  278. package/dist/krill/modules/network-cfg.js +64 -0
  279. package/dist/krill/modules/packages.d.ts +14 -0
  280. package/dist/krill/modules/packages.js +111 -0
  281. package/dist/krill/modules/partition.d.ts +20 -0
  282. package/dist/krill/modules/partition.js +324 -0
  283. package/dist/krill/modules/remove-installer-link.d.ts +13 -0
  284. package/dist/krill/modules/remove-installer-link.js +35 -0
  285. package/dist/krill/modules/umount.d.ts +14 -0
  286. package/dist/krill/modules/umount.js +28 -0
  287. package/dist/krill/modules/unpackfs.d.ts +13 -0
  288. package/dist/krill/modules/unpackfs.js +20 -0
  289. package/dist/krill/prepare.d.ts +78 -0
  290. package/dist/krill/prepare.js +624 -0
  291. package/dist/krill/sequence.d.ts +154 -0
  292. package/dist/krill/sequence.js +652 -0
  293. package/dist/lib/get_address.d.ts +8 -0
  294. package/dist/lib/get_address.js +23 -0
  295. package/dist/lib/get_dns.d.ts +8 -0
  296. package/dist/lib/get_dns.js +23 -0
  297. package/dist/lib/get_domain.d.ts +8 -0
  298. package/dist/lib/get_domain.js +23 -0
  299. package/dist/lib/get_gateway.d.ts +8 -0
  300. package/dist/lib/get_gateway.js +23 -0
  301. package/dist/lib/get_hostname.d.ts +8 -0
  302. package/dist/lib/get_hostname.js +23 -0
  303. package/dist/lib/get_netmask.d.ts +8 -0
  304. package/dist/lib/get_netmask.js +23 -0
  305. package/dist/lib/get_password.d.ts +8 -0
  306. package/dist/lib/get_password.js +36 -0
  307. package/dist/lib/get_userfullname.d.ts +8 -0
  308. package/dist/lib/get_userfullname.js +23 -0
  309. package/dist/lib/get_username.d.ts +8 -0
  310. package/dist/lib/get_username.js +23 -0
  311. package/dist/lib/kill_me_softly.d.ts +11 -0
  312. package/dist/lib/kill_me_softly.js +61 -0
  313. package/dist/lib/select_address_type.d.ts +8 -0
  314. package/dist/lib/select_address_type.js +24 -0
  315. package/dist/lib/select_filesystem_type.d.ts +8 -0
  316. package/dist/lib/select_filesystem_type.js +46 -0
  317. package/dist/lib/select_installation_device.d.ts +8 -0
  318. package/dist/lib/select_installation_device.js +30 -0
  319. package/dist/lib/select_installation_mode.d.ts +8 -0
  320. package/dist/lib/select_installation_mode.js +24 -0
  321. package/dist/lib/select_interface.d.ts +8 -0
  322. package/dist/lib/select_interface.js +24 -0
  323. package/dist/lib/select_keyboard_layout.d.ts +11 -0
  324. package/dist/lib/select_keyboard_layout.js +36 -0
  325. package/dist/lib/select_keyboard_model.d.ts +11 -0
  326. package/dist/lib/select_keyboard_model.js +34 -0
  327. package/dist/lib/select_keyboard_option.d.ts +11 -0
  328. package/dist/lib/select_keyboard_option.js +34 -0
  329. package/dist/lib/select_keyboard_variant.d.ts +11 -0
  330. package/dist/lib/select_keyboard_variant.js +35 -0
  331. package/dist/lib/select_languages.d.ts +8 -0
  332. package/dist/lib/select_languages.js +28 -0
  333. package/dist/lib/select_regions.d.ts +8 -0
  334. package/dist/lib/select_regions.js +24 -0
  335. package/dist/lib/select_user_swap_choice.d.ts +8 -0
  336. package/dist/lib/select_user_swap_choice.js +34 -0
  337. package/dist/lib/select_zones.d.ts +8 -0
  338. package/dist/lib/select_zones.js +518 -0
  339. package/dist/lib/utils.d.ts +34 -0
  340. package/dist/lib/utils.js +79 -0
  341. package/manpages/doc/man/eggs.1.gz +0 -0
  342. package/manpages/doc/man/eggs.html +635 -4
  343. package/package.json +11 -7
  344. package/scripts/_eggs +10 -1
  345. package/scripts/eggs.bash +1 -0
  346. /package/addons/eggs/theme/livecd/{grub.main.cfg → grub.main.full.cfg} +0 -0
@@ -0,0 +1,14 @@
1
+ /**
2
+ * ./src/krill/modules/initramfs-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
+ *
12
+ * @param this
13
+ */
14
+ export default function initramfsCfg(this: Sequence, installDevice: string): Promise<void>;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * ./src/krill/modules/initramfs-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 Utils from '../../classes/utils.js';
10
+ /**
11
+ *
12
+ * @param this
13
+ */
14
+ export default async function initramfsCfg(installDevice) {
15
+ if (this.distro.familyId === 'debian') {
16
+ // userSwapChoices = ['none', 'small', 'suspend', 'file']
17
+ const file = this.installTarget + '/etc/initramfs-tools/conf.d/resume';
18
+ let text = '';
19
+ text += this.partitions.userSwapChoice === 'none' || this.partitions.userSwapChoice === 'file' ? '#RESUME=none\n' : 'RESUME=UUID=' + Utils.uuid(this.devices.swap.name);
20
+ Utils.write(file, text);
21
+ }
22
+ }
@@ -0,0 +1,13 @@
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>;
@@ -0,0 +1,54 @@
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
+ }
@@ -0,0 +1,10 @@
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>;
@@ -0,0 +1,58 @@
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
+ }
@@ -0,0 +1,13 @@
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>;
@@ -0,0 +1,91 @@
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
+ }
@@ -0,0 +1,14 @@
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>;
@@ -0,0 +1,58 @@
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
+ }
@@ -0,0 +1,15 @@
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>;
@@ -0,0 +1,33 @@
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
+ }
@@ -0,0 +1,15 @@
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>;
@@ -0,0 +1,50 @@
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
+ }
@@ -0,0 +1,17 @@
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>;
@@ -0,0 +1,62 @@
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
+ }
@@ -0,0 +1,17 @@
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>;
@@ -0,0 +1,40 @@
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
+ }
@@ -0,0 +1,19 @@
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>;