penguins-eggs 9.2.5 → 9.2.9

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 (334) hide show
  1. package/.oclif.manifest.json +1 -0
  2. package/README.md +34 -30
  3. package/conf/distros/jessie/krill/settings.yml +48 -9
  4. package/conf/distros/kinetic/README.md +41 -0
  5. package/conf/tools.yaml +1 -1
  6. package/{lib → dist}/classes/bleach.js +0 -0
  7. package/{lib → dist}/classes/compressors.js +0 -0
  8. package/{lib → dist}/classes/daddy.js +0 -0
  9. package/{lib → dist}/classes/distro.js +16 -30
  10. package/{lib → dist}/classes/family/archlinux.js +0 -0
  11. package/{lib → dist}/classes/family/debian.js +0 -0
  12. package/{lib → dist}/classes/family/fedora.js +0 -0
  13. package/{lib → dist}/classes/family/suse.js +0 -0
  14. package/{lib → dist}/classes/incubation/branding.js +0 -0
  15. package/{lib → dist}/classes/incubation/distros/bionic.js +0 -0
  16. package/{lib → dist}/classes/incubation/distros/buster.js +0 -0
  17. package/{lib → dist}/classes/incubation/distros/focal.js +0 -0
  18. package/{lib → dist}/classes/incubation/distros/jessie.js +1 -1
  19. package/{lib → dist}/classes/incubation/distros/rolling.js +0 -0
  20. package/{lib → dist}/classes/incubation/fisherman-helper/displaymanager.js +0 -0
  21. package/{lib → dist}/classes/incubation/fisherman-helper/packages.js +0 -0
  22. package/{lib → dist}/classes/incubation/fisherman.js +1 -1
  23. package/{lib → dist}/classes/incubation/incubator.js +9 -19
  24. package/{lib → dist}/classes/incubation/installer.js +0 -0
  25. package/{lib → dist}/classes/initrd.js +0 -0
  26. package/{lib → dist}/classes/keyboards.js +0 -0
  27. package/{lib → dist}/classes/locales.js +0 -0
  28. package/{lib → dist}/classes/n8.js +0 -0
  29. package/dist/classes/network.js +99 -0
  30. package/{lib → dist}/classes/ovary.js +0 -0
  31. package/{lib → dist}/classes/pacman.js +16 -1
  32. package/{lib → dist}/classes/pve-live.js +0 -0
  33. package/dist/classes/pxe.js +337 -0
  34. package/{lib → dist}/classes/settings.js +0 -0
  35. package/{lib → dist}/classes/sources_list.js +0 -0
  36. package/{lib → dist}/classes/systemctl.js +0 -0
  37. package/{lib → dist}/classes/tailor.js +0 -0
  38. package/{lib → dist}/classes/tools.js +0 -0
  39. package/{lib → dist}/classes/users.js +0 -0
  40. package/{lib → dist}/classes/utils.js +82 -17
  41. package/{lib → dist}/classes/xdg.js +24 -26
  42. package/{lib → dist}/classes/yolk.js +0 -0
  43. package/{lib → dist}/commands/adapt.js +0 -0
  44. package/{lib → dist}/commands/analyze.js +0 -0
  45. package/{lib → dist}/commands/calamares.js +0 -0
  46. package/{lib → dist}/commands/config.js +0 -0
  47. package/dist/commands/cuckoo.js +63 -0
  48. package/{lib → dist}/commands/dad.js +0 -0
  49. package/{lib → dist}/commands/export/deb.js +0 -0
  50. package/{lib → dist}/commands/export/docs.js +0 -0
  51. package/{lib → dist}/commands/export/iso.js +0 -0
  52. package/{lib → dist}/commands/install.js +27 -4
  53. package/{lib → dist}/commands/kill.js +0 -0
  54. package/{lib → dist}/commands/mom.js +0 -0
  55. package/{lib → dist}/commands/produce.js +0 -0
  56. package/{lib → dist}/commands/status.js +0 -0
  57. package/{lib → dist}/commands/syncfrom.js +0 -0
  58. package/{lib → dist}/commands/syncto.js +0 -0
  59. package/{lib → dist}/commands/tools/clean.js +0 -0
  60. package/{lib → dist}/commands/tools/skel.js +0 -0
  61. package/{lib → dist}/commands/tools/stat.js +0 -0
  62. package/{lib → dist}/commands/tools/yolk.js +0 -0
  63. package/{lib → dist}/commands/update.js +0 -0
  64. package/{lib → dist}/commands/wardrobe/get.js +0 -0
  65. package/{lib → dist}/commands/wardrobe/ironing.js +0 -0
  66. package/{lib → dist}/commands/wardrobe/list.js +0 -0
  67. package/{lib → dist}/commands/wardrobe/show.js +0 -0
  68. package/{lib → dist}/commands/wardrobe/wear.js +0 -0
  69. package/{lib → dist}/components/elements/information.js +0 -0
  70. package/{lib → dist}/components/elements/steps.js +0 -0
  71. package/{lib → dist}/components/elements/title.js +0 -0
  72. package/{lib → dist}/components/finished.js +0 -0
  73. package/{lib → dist}/components/install.js +0 -0
  74. package/{lib → dist}/components/keyboard.js +0 -0
  75. package/{lib → dist}/components/location.js +0 -0
  76. package/{lib → dist}/components/network.js +0 -0
  77. package/{lib → dist}/components/partitions.js +0 -0
  78. package/{lib → dist}/components/summary.js +2 -2
  79. package/{lib → dist}/components/users.js +0 -0
  80. package/{lib → dist}/components/welcome.js +0 -0
  81. package/dist/dhcpd/dhcpd.js +222 -0
  82. package/dist/dhcpd/index.js +7 -0
  83. package/dist/dhcpd/packet/converters.js +377 -0
  84. package/dist/dhcpd/packet/options.js +2 -0
  85. package/dist/dhcpd/packet/types.js +2 -0
  86. package/dist/dhcpd/packet.js +251 -0
  87. package/dist/dhcpd/proxy.js +152 -0
  88. package/dist/dhcpd/server.js +152 -0
  89. package/dist/dhcpd/sprintf.js +170 -0
  90. package/dist/dhcpd/utils.js +190 -0
  91. package/{lib → dist}/index.js +0 -0
  92. package/{lib → dist}/interfaces/i-addons.js +0 -0
  93. package/{lib → dist}/interfaces/i-analyze.js +0 -0
  94. package/{lib → dist}/interfaces/i-app.js +0 -0
  95. package/{lib → dist}/interfaces/i-branding.js +0 -0
  96. package/{lib → dist}/interfaces/i-config-tools.js +0 -0
  97. package/{lib → dist}/interfaces/i-devices.js +0 -0
  98. package/{lib → dist}/interfaces/i-distro.js +0 -0
  99. package/{lib → dist}/interfaces/i-drive-list.js +0 -0
  100. package/{lib → dist}/interfaces/i-eggs-config.js +0 -0
  101. package/{lib → dist}/interfaces/i-exec.js +0 -0
  102. package/{lib → dist}/interfaces/i-initrd.js +0 -0
  103. package/{lib → dist}/interfaces/i-install.js +0 -0
  104. package/{lib → dist}/interfaces/i-installer.js +0 -0
  105. package/{lib → dist}/interfaces/i-krill-config.js +0 -0
  106. package/{lib → dist}/interfaces/i-krill.js +0 -0
  107. package/{lib → dist}/interfaces/i-materia.js +0 -0
  108. package/{lib → dist}/interfaces/i-net.js +0 -0
  109. package/{lib → dist}/interfaces/i-packages.js +0 -0
  110. package/{lib → dist}/interfaces/i-partitions.js +0 -0
  111. package/{lib/interfaces/i-remix.js → dist/interfaces/i-pxe-options.js} +0 -0
  112. package/{lib/interfaces/i-settings.js → dist/interfaces/i-remix.js} +0 -0
  113. package/{lib/interfaces/i-user.js → dist/interfaces/i-settings.js} +0 -0
  114. package/{lib/interfaces/i-workdir.js → dist/interfaces/i-user.js} +0 -0
  115. package/{lib/interfaces/i-xkb-model.js → dist/interfaces/i-workdir.js} +0 -0
  116. package/{lib/interfaces/index.js → dist/interfaces/i-xkb-model.js} +0 -0
  117. package/dist/interfaces/index.js +2 -0
  118. package/{lib → dist}/krill/krill-prepare.js +25 -6
  119. package/{lib → dist}/krill/krill-sequence.js +69 -77
  120. package/{lib → dist}/krill/modules/add-user.js +0 -0
  121. package/{lib → dist}/krill/modules/bootloader-config-ubuntu.js +0 -0
  122. package/{lib → dist}/krill/modules/bootloader-config.js +1 -1
  123. package/{lib → dist}/krill/modules/bootloader.js +0 -5
  124. package/{lib → dist}/krill/modules/change-password.js +0 -0
  125. package/{lib → dist}/krill/modules/del-live-user.js +0 -0
  126. package/{lib → dist}/krill/modules/fstab.js +0 -0
  127. package/{lib → dist}/krill/modules/grubcfg.js +0 -0
  128. package/dist/krill/modules/hostname.js +48 -0
  129. package/{lib → dist}/krill/modules/initramfs-cfg.js +0 -0
  130. package/{lib → dist}/krill/modules/initramfs.js +0 -0
  131. package/{lib → dist}/krill/modules/locale-cfg.js +0 -0
  132. package/{lib → dist}/krill/modules/locale.js +1 -1
  133. package/{lib/krill/modules/set-keyboard.js → dist/krill/modules/m-keyboard.js} +12 -4
  134. package/{lib/krill/modules/set-timezone.js → dist/krill/modules/m-timezone.js} +2 -2
  135. package/{lib → dist}/krill/modules/machine-id.js +0 -0
  136. package/{lib → dist}/krill/modules/mkfs.js +0 -0
  137. package/{lib → dist}/krill/modules/mount-fs.js +0 -0
  138. package/{lib → dist}/krill/modules/mount-vfs.js +0 -0
  139. package/{lib → dist}/krill/modules/network-cfg.js +0 -0
  140. package/{lib → dist}/krill/modules/packages.js +0 -0
  141. package/{lib → dist}/krill/modules/partition.js +25 -14
  142. package/{lib → dist}/krill/modules/remove-installer-link.js +0 -0
  143. package/{lib → dist}/krill/modules/umount.js +0 -0
  144. package/{lib → dist}/krill/modules/unpackfs.js +0 -0
  145. package/{lib → dist}/lib/cli-autologin.js +1 -1
  146. package/{lib → dist}/lib/dependencies.js +0 -0
  147. package/{lib → dist}/lib/get_address.js +0 -0
  148. package/{lib → dist}/lib/get_dns.js +0 -0
  149. package/{lib → dist}/lib/get_domain.js +0 -0
  150. package/{lib → dist}/lib/get_gateway.js +0 -0
  151. package/{lib → dist}/lib/get_hostname.js +0 -0
  152. package/{lib → dist}/lib/get_netmask.js +0 -0
  153. package/{lib → dist}/lib/get_password.js +0 -0
  154. package/{lib → dist}/lib/get_root_password.js +0 -0
  155. package/{lib → dist}/lib/get_userfullname.js +0 -0
  156. package/{lib → dist}/lib/get_username.js +0 -0
  157. package/{lib → dist}/lib/select_address_type.js +0 -0
  158. package/{lib → dist}/lib/select_filesystem_type.js +0 -0
  159. package/{lib → dist}/lib/select_installation_device.js +0 -0
  160. package/{lib → dist}/lib/select_installation_mode.js +0 -0
  161. package/{lib → dist}/lib/select_interface.js +0 -0
  162. package/{lib → dist}/lib/select_keyboard_layout.js +0 -0
  163. package/{lib → dist}/lib/select_keyboard_model.js +0 -0
  164. package/{lib → dist}/lib/select_keyboard_option.js +0 -0
  165. package/{lib → dist}/lib/select_keyboard_variant.js +0 -0
  166. package/{lib → dist}/lib/select_languages.js +0 -0
  167. package/{lib → dist}/lib/select_regions.js +0 -0
  168. package/{lib → dist}/lib/select_user_swap_choice.js +0 -0
  169. package/{lib → dist}/lib/select_zones.js +0 -0
  170. package/{lib → dist}/lib/utils.js +1 -2
  171. package/ipxe/ipxe.efi +0 -0
  172. package/package.json +20 -17
  173. package/scripts/_eggs +11 -7
  174. package/scripts/eggs.bash +2 -2
  175. package/lib/classes/bleach.d.ts +0 -40
  176. package/lib/classes/compressors.d.ts +0 -24
  177. package/lib/classes/daddy.d.ts +0 -11
  178. package/lib/classes/distro.d.ts +0 -31
  179. package/lib/classes/family/archlinux.d.ts +0 -69
  180. package/lib/classes/family/debian.d.ts +0 -68
  181. package/lib/classes/family/fedora.d.ts +0 -63
  182. package/lib/classes/family/suse.d.ts +0 -63
  183. package/lib/classes/incubation/branding.d.ts +0 -8
  184. package/lib/classes/incubation/distros/bionic.d.ts +0 -29
  185. package/lib/classes/incubation/distros/buster.d.ts +0 -31
  186. package/lib/classes/incubation/distros/focal.d.ts +0 -29
  187. package/lib/classes/incubation/distros/jessie.d.ts +0 -32
  188. package/lib/classes/incubation/distros/rolling.d.ts +0 -31
  189. package/lib/classes/incubation/fisherman-helper/displaymanager.d.ts +0 -7
  190. package/lib/classes/incubation/fisherman-helper/packages.d.ts +0 -19
  191. package/lib/classes/incubation/fisherman.d.ts +0 -77
  192. package/lib/classes/incubation/incubator.d.ts +0 -35
  193. package/lib/classes/incubation/installer.d.ts +0 -15
  194. package/lib/classes/initrd.d.ts +0 -42
  195. package/lib/classes/keyboards.d.ts +0 -43
  196. package/lib/classes/locales.d.ts +0 -14
  197. package/lib/classes/n8.d.ts +0 -16
  198. package/lib/classes/ovary.d.ts +0 -179
  199. package/lib/classes/pacman.d.ts +0 -164
  200. package/lib/classes/pve-live.d.ts +0 -42
  201. package/lib/classes/pxe.d.ts +0 -64
  202. package/lib/classes/pxe.js +0 -352
  203. package/lib/classes/settings.d.ts +0 -55
  204. package/lib/classes/sources_list.d.ts +0 -27
  205. package/lib/classes/systemctl.d.ts +0 -46
  206. package/lib/classes/tailor.d.ts +0 -43
  207. package/lib/classes/tools.d.ts +0 -29
  208. package/lib/classes/users.d.ts +0 -21
  209. package/lib/classes/utils.d.ts +0 -299
  210. package/lib/classes/xdg.d.ts +0 -44
  211. package/lib/classes/yolk.d.ts +0 -26
  212. package/lib/commands/adapt.d.ts +0 -9
  213. package/lib/commands/analyze.d.ts +0 -25
  214. package/lib/commands/calamares.d.ts +0 -26
  215. package/lib/commands/config.d.ts +0 -34
  216. package/lib/commands/cuckoo.d.ts +0 -24
  217. package/lib/commands/cuckoo.js +0 -70
  218. package/lib/commands/dad.d.ts +0 -17
  219. package/lib/commands/export/deb.d.ts +0 -14
  220. package/lib/commands/export/docs.d.ts +0 -8
  221. package/lib/commands/export/iso.d.ts +0 -13
  222. package/lib/commands/install.d.ts +0 -25
  223. package/lib/commands/kill.d.ts +0 -20
  224. package/lib/commands/mom.d.ts +0 -14
  225. package/lib/commands/produce.d.ts +0 -28
  226. package/lib/commands/status.d.ts +0 -18
  227. package/lib/commands/syncfrom.d.ts +0 -42
  228. package/lib/commands/syncto.d.ts +0 -67
  229. package/lib/commands/tools/clean.d.ts +0 -15
  230. package/lib/commands/tools/skel.d.ts +0 -17
  231. package/lib/commands/tools/stat.d.ts +0 -14
  232. package/lib/commands/tools/yolk.d.ts +0 -23
  233. package/lib/commands/update.d.ts +0 -46
  234. package/lib/commands/wardrobe/get.d.ts +0 -17
  235. package/lib/commands/wardrobe/ironing.d.ts +0 -18
  236. package/lib/commands/wardrobe/list.d.ts +0 -17
  237. package/lib/commands/wardrobe/show.d.ts +0 -19
  238. package/lib/commands/wardrobe/wear.d.ts +0 -21
  239. package/lib/components/elements/information.d.ts +0 -4
  240. package/lib/components/elements/steps.d.ts +0 -6
  241. package/lib/components/elements/title.d.ts +0 -4
  242. package/lib/components/finished.d.ts +0 -8
  243. package/lib/components/install.d.ts +0 -8
  244. package/lib/components/keyboard.d.ts +0 -12
  245. package/lib/components/location.d.ts +0 -12
  246. package/lib/components/network.d.ts +0 -12
  247. package/lib/components/partitions.d.ts +0 -9
  248. package/lib/components/summary.d.ts +0 -16
  249. package/lib/components/users.d.ts +0 -20
  250. package/lib/components/welcome.d.ts +0 -6
  251. package/lib/index.d.ts +0 -1
  252. package/lib/interfaces/i-addons.d.ts +0 -8
  253. package/lib/interfaces/i-analyze.d.ts +0 -13
  254. package/lib/interfaces/i-app.d.ts +0 -7
  255. package/lib/interfaces/i-branding.d.ts +0 -29
  256. package/lib/interfaces/i-config-tools.d.ts +0 -11
  257. package/lib/interfaces/i-devices.d.ts +0 -13
  258. package/lib/interfaces/i-distro.d.ts +0 -19
  259. package/lib/interfaces/i-drive-list.d.ts +0 -29
  260. package/lib/interfaces/i-eggs-config.d.ts +0 -24
  261. package/lib/interfaces/i-exec.d.ts +0 -4
  262. package/lib/interfaces/i-initrd.d.ts +0 -6
  263. package/lib/interfaces/i-install.d.ts +0 -9
  264. package/lib/interfaces/i-installer.d.ts +0 -20
  265. package/lib/interfaces/i-krill-config.d.ts +0 -26
  266. package/lib/interfaces/i-krill.d.ts +0 -35
  267. package/lib/interfaces/i-materia.d.ts +0 -36
  268. package/lib/interfaces/i-net.d.ts +0 -9
  269. package/lib/interfaces/i-packages.d.ts +0 -10
  270. package/lib/interfaces/i-partitions.d.ts +0 -9
  271. package/lib/interfaces/i-remix.d.ts +0 -14
  272. package/lib/interfaces/i-settings.d.ts +0 -10
  273. package/lib/interfaces/i-user.d.ts +0 -7
  274. package/lib/interfaces/i-workdir.d.ts +0 -8
  275. package/lib/interfaces/i-xkb-model.d.ts +0 -17
  276. package/lib/interfaces/index.d.ts +0 -17
  277. package/lib/krill/krill-prepare.d.ts +0 -60
  278. package/lib/krill/krill-sequence.d.ts +0 -151
  279. package/lib/krill/modules/add-user.d.ts +0 -15
  280. package/lib/krill/modules/bootloader-config-arch.d.ts +0 -9
  281. package/lib/krill/modules/bootloader-config-arch.js +0 -13
  282. package/lib/krill/modules/bootloader-config-ubuntu.d.ts +0 -9
  283. package/lib/krill/modules/bootloader-config.d.ts +0 -9
  284. package/lib/krill/modules/bootloader.d.ts +0 -10
  285. package/lib/krill/modules/change-password.d.ts +0 -10
  286. package/lib/krill/modules/del-live-user.d.ts +0 -9
  287. package/lib/krill/modules/fstab.d.ts +0 -14
  288. package/lib/krill/modules/grubcfg.d.ts +0 -17
  289. package/lib/krill/modules/hostname.d.ts +0 -13
  290. package/lib/krill/modules/hostname.js +0 -18
  291. package/lib/krill/modules/hosts.d.ts +0 -14
  292. package/lib/krill/modules/hosts.js +0 -35
  293. package/lib/krill/modules/initramfs-cfg.d.ts +0 -14
  294. package/lib/krill/modules/initramfs.d.ts +0 -13
  295. package/lib/krill/modules/locale-cfg.d.ts +0 -10
  296. package/lib/krill/modules/locale.d.ts +0 -13
  297. package/lib/krill/modules/machine-id.d.ts +0 -15
  298. package/lib/krill/modules/mkfs.d.ts +0 -13
  299. package/lib/krill/modules/mount-fs.d.ts +0 -17
  300. package/lib/krill/modules/mount-vfs.d.ts +0 -17
  301. package/lib/krill/modules/network-cfg.d.ts +0 -19
  302. package/lib/krill/modules/packages.d.ts +0 -14
  303. package/lib/krill/modules/partition.d.ts +0 -20
  304. package/lib/krill/modules/remove-installer-link.d.ts +0 -13
  305. package/lib/krill/modules/set-keyboard.d.ts +0 -10
  306. package/lib/krill/modules/set-timezone.d.ts +0 -14
  307. package/lib/krill/modules/umount.d.ts +0 -14
  308. package/lib/krill/modules/unpackfs.d.ts +0 -13
  309. package/lib/lib/cli-autologin.d.ts +0 -27
  310. package/lib/lib/dependencies.d.ts +0 -49
  311. package/lib/lib/get_address.d.ts +0 -1
  312. package/lib/lib/get_dns.d.ts +0 -1
  313. package/lib/lib/get_domain.d.ts +0 -1
  314. package/lib/lib/get_gateway.d.ts +0 -1
  315. package/lib/lib/get_hostname.d.ts +0 -1
  316. package/lib/lib/get_netmask.d.ts +0 -1
  317. package/lib/lib/get_password.d.ts +0 -1
  318. package/lib/lib/get_root_password.d.ts +0 -1
  319. package/lib/lib/get_userfullname.d.ts +0 -1
  320. package/lib/lib/get_username.d.ts +0 -1
  321. package/lib/lib/select_address_type.d.ts +0 -1
  322. package/lib/lib/select_filesystem_type.d.ts +0 -1
  323. package/lib/lib/select_installation_device.d.ts +0 -1
  324. package/lib/lib/select_installation_mode.d.ts +0 -1
  325. package/lib/lib/select_interface.d.ts +0 -1
  326. package/lib/lib/select_keyboard_layout.d.ts +0 -4
  327. package/lib/lib/select_keyboard_model.d.ts +0 -4
  328. package/lib/lib/select_keyboard_option.d.ts +0 -4
  329. package/lib/lib/select_keyboard_variant.d.ts +0 -4
  330. package/lib/lib/select_languages.d.ts +0 -1
  331. package/lib/lib/select_regions.d.ts +0 -1
  332. package/lib/lib/select_user_swap_choice.d.ts +0 -1
  333. package/lib/lib/select_zones.d.ts +0 -1
  334. package/lib/lib/utils.d.ts +0 -43
@@ -89,13 +89,15 @@ class Xdg {
89
89
  * LIGHTDM
90
90
  */
91
91
  if (pacman_1.default.packageIsInstalled('lightdm')) {
92
- let lightdmConf = `${chroot}/etc/lightdm/lightdm.conf`;
93
- let lightdmConfAutologin = `${chroot}/etc/lightdm/lightdm.conf.d/lightdm-autologin-greeter.conf`;
94
- if (node_fs_1.default.existsSync(lightdmConfAutologin)) {
95
- shelljs_1.default.sed('-i', `autologin-user=${olduser}`, `autologin-user=${newuser}`, lightdmConfAutologin);
96
- }
97
- else if (node_fs_1.default.existsSync(lightdmConf)) {
98
- shelljs_1.default.sed('-i', `autologin-user=${olduser}`, `autologin-user=${newuser}`, lightdmConf);
92
+ let dc = `${chroot}/etc/lightdm/`;
93
+ let files = node_fs_1.default.readdirSync(dc);
94
+ for (const elem of files) {
95
+ const curFile = dc + elem;
96
+ let content = node_fs_1.default.readFileSync(curFile, 'utf8');
97
+ let find = `[Seat:*]`;
98
+ if (content.includes(find)) {
99
+ shelljs_1.default.sed('-i', `autologin-user=${olduser}`, `autologin-user=${newuser}`, curFile);
100
+ }
99
101
  }
100
102
  }
101
103
  /**
@@ -103,25 +105,23 @@ class Xdg {
103
105
  */
104
106
  if (pacman_1.default.packageIsInstalled('sddm')) {
105
107
  let sddmChanged = false;
106
- // Cerco configurazione nel file sddm.conf
107
- const fileConf = `${chroot}/etc/sddm.conf`;
108
- if (node_fs_1.default.existsSync(fileConf)) {
109
- const content = node_fs_1.default.readFileSync(fileConf);
110
- if (content.includes('[Autologin]')) {
111
- shelljs_1.default.sed('-i', `User=${olduser}`, `User=${newuser}`, fileConf);
112
- sddmChanged = true;
113
- }
108
+ let curFile = `${chroot}/etc/sddm.conf`;
109
+ let content = node_fs_1.default.readFileSync(curFile, 'utf8');
110
+ let find = `[Autologin]`;
111
+ if (content.includes(find)) {
112
+ shelljs_1.default.sed('-i', `User=${olduser}`, `User=${newuser}`, curFile);
113
+ sddmChanged = true;
114
114
  }
115
- // Se non l'ho trovato, modifico /etc/sddm.conf.d/autologin.conf
116
115
  if (!sddmChanged) {
117
- const dirConf = `${chroot}/etc/sddm.conf.d`;
118
- const autologin = `${dirConf}/autologin.conf`;
119
- if (node_fs_1.default.existsSync(autologin)) {
120
- shelljs_1.default.sed('-i', `User=${olduser}`, `User=${newuser}`, autologin);
121
- }
122
- else {
123
- const content = `[Autologin]\nUser=${newuser}\n`;
124
- node_fs_1.default.writeFileSync(autologin, content, 'utf-8');
116
+ let dc = `${chroot}/etc/sddm.conf.d/`;
117
+ let files = node_fs_1.default.readdirSync(dc);
118
+ for (const elem of files) {
119
+ const curFile = dc + elem;
120
+ let content = node_fs_1.default.readFileSync(curFile, 'utf8');
121
+ if (content.includes(find)) {
122
+ shelljs_1.default.sed('-i', `User=${olduser}`, `User=${newuser}`, curFile);
123
+ sddmChanged = true;
124
+ }
125
125
  }
126
126
  }
127
127
  }
@@ -148,8 +148,6 @@ class Xdg {
148
148
  }
149
149
  const content = `[daemon]\nAutomaticLoginEnable=true\nAutomaticLogin=${newuser}\n`;
150
150
  utils_1.default.write(gdmConf, content);
151
- // shx.sed('-i', 'AutomaticLoginEnable=False', 'AutomaticLoginEnable=True', gdmConf)
152
- // shx.sed('-i', `AutomaticLogin=${olduser}`, `AutomaticLogin=${newuser}`, gdmConf)
153
151
  }
154
152
  }
155
153
  }
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ /**
3
+ * cuckoo: proxy
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const tslib_1 = require("tslib");
7
+ const core_1 = require("@oclif/core");
8
+ const network_1 = tslib_1.__importDefault(require("../classes/network"));
9
+ const utils_1 = tslib_1.__importDefault(require("../classes/utils"));
10
+ const pxe_1 = tslib_1.__importDefault(require("../classes/pxe"));
11
+ const tftp = require('tftp');
12
+ class Cuckoo extends core_1.Command {
13
+ async run(nest = '/home/eggs') {
14
+ const { args, flags } = await this.parse(Cuckoo);
15
+ utils_1.default.titles(this.id + ' ' + this.argv);
16
+ if (utils_1.default.isRoot()) {
17
+ const pxeRoot = nest + '/pxe';
18
+ const pxe = new pxe_1.default();
19
+ await pxe.fertilization();
20
+ await pxe.build();
21
+ const n = new network_1.default();
22
+ /**
23
+ * service proxy-dhcp
24
+ */
25
+ let dhcpOptions = {
26
+ subnet: n.cidr,
27
+ host: n.address,
28
+ tftpserver: n.address,
29
+ bios_filename: 'lpxelinux.0',
30
+ efi32_filename: 'ipxe32.efi',
31
+ efi64_filename: 'ipxe.efi'
32
+ };
33
+ pxe.dhcpStart(dhcpOptions);
34
+ /**
35
+ * service tftp
36
+ */
37
+ let tftpOptions = {
38
+ "host": n.address,
39
+ "port": 69,
40
+ "root": pxeRoot,
41
+ "denyPUT": true
42
+ };
43
+ await pxe.tftpStart(tftpOptions);
44
+ /**
45
+ * service http
46
+ */
47
+ await pxe.httpStart();
48
+ }
49
+ else {
50
+ utils_1.default.useRoot(this.id);
51
+ }
52
+ }
53
+ }
54
+ exports.default = Cuckoo;
55
+ Cuckoo.description = 'PXE start with proxy-dhcp';
56
+ Cuckoo.examples = [
57
+ `$ sudo eggs cuckoo
58
+ start a PXE server with dhcp-proxy (can coexists with a real dhcp server)
59
+ `,
60
+ ];
61
+ Cuckoo.flags = {
62
+ help: core_1.Flags.help({ char: 'h' }),
63
+ };
File without changes
File without changes
File without changes
File without changes
@@ -21,6 +21,17 @@ class Install extends core_1.Command {
21
21
  utils_1.default.titles(this.id + ' ' + this.argv);
22
22
  const { flags } = await this.parse(Install);
23
23
  let unattended = flags.unattended;
24
+ // hostname
25
+ let ip = flags.ip;
26
+ let random = flags.random;
27
+ let domain = '.local';
28
+ if (flags.domain) {
29
+ domain = flags.domain;
30
+ }
31
+ // swap
32
+ let suspend = flags.suspend;
33
+ let small = flags.small;
34
+ let none = flags.none;
24
35
  let crypted = flags.crypted;
25
36
  let pve = flags.pve;
26
37
  if (pve) {
@@ -30,7 +41,7 @@ class Install extends core_1.Command {
30
41
  if (utils_1.default.isRoot()) {
31
42
  if (utils_1.default.isLive()) {
32
43
  const krill = new krill_prepare_1.default();
33
- await krill.prepare(unattended, crypted, pve, verbose);
44
+ await krill.prepare(unattended, ip, random, domain, suspend, small, none, crypted, pve, verbose);
34
45
  }
35
46
  else {
36
47
  utils_1.default.warning('You are in an installed system!');
@@ -43,11 +54,23 @@ class Install extends core_1.Command {
43
54
  }
44
55
  exports.default = Install;
45
56
  Install.flags = {
46
- unattended: core_1.Flags.boolean({ char: 'u', description: 'unattended CLI installation' }),
47
- crypted: core_1.Flags.boolean({ char: 'k', description: 'crypted CLI installation' }),
57
+ unattended: core_1.Flags.boolean({ char: 'u', description: 'Unattended installation' }),
58
+ // hostname
59
+ ip: core_1.Flags.boolean({ char: 'i', description: 'hostname as ip, eg: ip-192-168-1-33' }),
60
+ random: core_1.Flags.boolean({ char: 'r', description: 'Add random to hostname, eg: colibri-ay412dt' }),
61
+ // append: Flags.string({char: 'a', description: 'append to hostname: ip, random'}),
62
+ domain: core_1.Flags.string({ char: 'd', description: 'Domain name, defult: .local' }),
63
+ // swap
64
+ // swap: Flags.string({char: 's', description: 'swap: none, small, suspend'}),
65
+ suspend: core_1.Flags.boolean({ char: 'S', description: 'Swap suspend: RAM x 2' }),
66
+ small: core_1.Flags.boolean({ char: 's', description: 'Swap small: RAM' }),
67
+ none: core_1.Flags.boolean({ char: 'n', description: 'Swap none: 256M' }),
68
+ //
69
+ crypted: core_1.Flags.boolean({ char: 'k', description: 'Crypted CLI installation' }),
48
70
  pve: core_1.Flags.boolean({ char: 'p', description: 'Proxmox VE install' }),
71
+ // generic
49
72
  help: core_1.Flags.help({ char: 'h' }),
50
- verbose: core_1.Flags.boolean({ char: 'v', description: 'verbose' })
73
+ verbose: core_1.Flags.boolean({ char: 'v', description: 'Verbose' })
51
74
  };
52
75
  Install.description = 'command-line system installer - the egg became a penguin!';
53
76
  Install.examples = ['$ eggs install\nInstall the system using krill installer\n'];
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -38,13 +38,13 @@ function Summary({ name, password, rootPassword, hostname, region, zone, languag
38
38
  react_1.default.createElement(ink_1.Text, null, "Installing "),
39
39
  react_1.default.createElement(ink_1.Text, { color: "green" }, productName)),
40
40
  react_1.default.createElement(ink_1.Box, null,
41
- react_1.default.createElement(ink_1.Text, null, "User "),
41
+ react_1.default.createElement(ink_1.Text, null),
42
42
  react_1.default.createElement(ink_1.Text, { color: "green" }, name),
43
43
  react_1.default.createElement(ink_1.Text, null, "/"),
44
44
  react_1.default.createElement(ink_1.Text, { color: "green" },
45
45
  password,
46
46
  " "),
47
- react_1.default.createElement(ink_1.Text, null, "root pwd "),
47
+ react_1.default.createElement(ink_1.Text, null, "pwd root "),
48
48
  react_1.default.createElement(ink_1.Text, { color: "green" },
49
49
  rootPassword,
50
50
  " "),
File without changes
File without changes
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+ var dhcp_server = require('./server');
3
+ var dhcp_proxy = require('./proxy');
4
+ var netmask = require('netmask').Netmask;
5
+ var ee = require('events').EventEmitter;
6
+ var util = require('util');
7
+ const { file } = require('@oclif/core/lib/parser');
8
+ const { createNoSubstitutionTemplateLiteral } = require('typescript');
9
+ const { json } = require('stream/consumers');
10
+ const BOOTREQUEST = 1, DHCP_MESSAGE_TYPE = 0x35, DHCP_SERVER_ID = 0x36, DHCP_DISCOVER = 1, DHCP_INFORM = 8, DHCP_MINTYPE = DHCP_DISCOVER, DHCP_MAXTYPE = DHCP_INFORM, DHCP_REQUESTED_IP = 0x32, DHCP_HOST_NAME = 0x0c;
11
+ /**
12
+ *
13
+ * @param opts
14
+ * @returns
15
+ */
16
+ class dhcpd {
17
+ /**
18
+ *
19
+ * @param opts
20
+ * @returns
21
+ */
22
+ constructor(opts) {
23
+ let self = this;
24
+ if (!(self instanceof dhcpd)) {
25
+ return new dhcpd(opts);
26
+ }
27
+ ee.call(self);
28
+ if (opts.subnet) {
29
+ var block = new netmask(opts.subnet);
30
+ if (block) {
31
+ self.network = block.base;
32
+ self.netmask = block.mask;
33
+ self.broadcast = block.broadcast;
34
+ self.host = opts.host;
35
+ self.tftpserver = opts.tftpserver;
36
+ self.bios_filename = opts.bios_filename;
37
+ self.efi32_filename = opts.efi32_filename;
38
+ self.efi64_filename = opts.efi64_filename;
39
+ }
40
+ else {
41
+ throw new Error("Unable to read subnet details from '" + opts.subnet + "'");
42
+ }
43
+ }
44
+ // Listen on port 67 for all the DHCP messages from clients
45
+ self.s = new dhcp_server('udp4', { broadcast: self.broadcast });
46
+ self.s.on('listening', function () {
47
+ var address = self.s.address();
48
+ console.log('server listening: ' + address.address + ':' + address.port);
49
+ });
50
+ self.s.on('discover', self.discover.bind(self));
51
+ self.s.on('request', self.request.bind(self));
52
+ self.s.on('inform', self.inform.bind(self));
53
+ self.s.bind(67, '0.0.0.0');
54
+ // Listen on port 4011 for clients asking for proxy DHCP
55
+ self.p = new dhcp_proxy('udp4', { broadcast: self.broadcast });
56
+ self.p.on('listening', function () {
57
+ var address = self.p.address();
58
+ console.log('proxy listening: ' + address.address + ':' + address.port);
59
+ });
60
+ self.p.on('request', self.proxy_request.bind(self));
61
+ self.p.bind(4011, '0.0.0.0');
62
+ return self;
63
+ }
64
+ /**
65
+ *
66
+ * @param {*} pkt
67
+ * @returns
68
+ */
69
+ pre_init(pkt) {
70
+ var self = this;
71
+ // Ignore malformed packets
72
+ if (pkt.hlen != 6)
73
+ return;
74
+ // Ignore if not a BOOTREQUEST
75
+ if (pkt.op != BOOTREQUEST)
76
+ return;
77
+ // Ignore if unknown message type
78
+ var state = _get_option(pkt, DHCP_MESSAGE_TYPE);
79
+ if (state == undefined || state['0'] < DHCP_MINTYPE || state['0'] > DHCP_MAXTYPE)
80
+ return;
81
+ // Ignore if DHCP message is not for us
82
+ var server_id_opt = _get_option(pkt, DHCP_SERVER_ID);
83
+ if (server_id_opt !== undefined && server_id_opt != self.host)
84
+ return;
85
+ }
86
+ /**
87
+ *
88
+ * @param {*} pkt
89
+ * @returns
90
+ */
91
+ discover(pkt) {
92
+ var self = this;
93
+ console.log("Received DHCP DISCOVER");
94
+ if (pkt.options['60'] !== undefined && pkt.options['60'].indexOf('PXEClient') === 0) {
95
+ // Check if we are really being asked for PXE boot information
96
+ // Signal the client that we are a proxy dhcp by sending an OFFER
97
+ var offer = {};
98
+ offer.siaddr = self.host;
99
+ offer.options = {};
100
+ offer.options['60'] = 'PXEClient';
101
+ offer.options['54'] = self.host;
102
+ offer.options['255'] = null;
103
+ self.pre_init(pkt);
104
+ return self.s.offer(pkt, offer);
105
+ }
106
+ else if (pkt.options['60'] !== undefined && pkt.options['60'].indexOf('AAPLBSDPC/i386') === 0) {
107
+ console.log('Mac OS X discovery, ignoring');
108
+ return;
109
+ }
110
+ else {
111
+ console.log('Ignoring discovery as it does not seam to be a boot request');
112
+ return;
113
+ }
114
+ }
115
+ /**
116
+ *
117
+ * @param {*} pkt
118
+ * @returns
119
+ */
120
+ request(pkt) {
121
+ var self = this;
122
+ console.log('Ignoring received REQUEST from ' + pkt.chaddr + ' as we are only a proxy');
123
+ return;
124
+ var offer = {};
125
+ offer.siaddr = self.host;
126
+ offer.options = {};
127
+ offer.options['54'] = self.host;
128
+ offer.options['255'] = null;
129
+ self.pre_init(pkt);
130
+ return self.s.ack(pkt, offer);
131
+ }
132
+ /**
133
+ *
134
+ * @param {*} pkt
135
+ * @returns
136
+ */
137
+ inform(pkt) {
138
+ var self = this;
139
+ if (pkt.options['60'] !== undefined && pkt.options['60'].indexOf('AAPLBSDPC/i386') === 0) {
140
+ var offer = {};
141
+ offer.siaddr = self.tftpserver;
142
+ offer.ciaddr = pkt.remote.address;
143
+ offer.options = {};
144
+ offer.options['54'] = self.host;
145
+ offer.options['60'] = 'AAPLBSDPC';
146
+ offer.options['255'] = null;
147
+ if (pkt.options['43'] !== undefined && pkt.options['43'].indexOf('01:01:01') === 0) {
148
+ // Mac OS X client: BSDP list
149
+ offer.options['43'] = '01:01:01:04:02:80:00:07:04:81:00:05:2a:08:04:81:00:05:2a:09:0d:81:00:05:2a:08:69:50:58:45:2d:46:4f:47';
150
+ }
151
+ else if (pkt.options['43'] !== undefined && pkt.options['43'].indexOf('01:01:02') === 0) {
152
+ // Mac OS X client: BSDP select
153
+ offer.options['43'] = '01:01:02:08:04:81:00:05:2a:82:0a:4e:65:74:42:6f:6f:74:30:30:31';
154
+ pkt.fname = self.efi64_filename;
155
+ pkt.sname = '141.62.66.114';
156
+ }
157
+ else {
158
+ console.log('Unknown BSDP request, not answering');
159
+ return;
160
+ }
161
+ return self.p.ack(pkt, offer);
162
+ }
163
+ else {
164
+ console.log('INFORM not by a Mac OS client, maybe Windows, ignoring');
165
+ return;
166
+ }
167
+ }
168
+ /**
169
+ *
170
+ * @param {*} pkt
171
+ * @returns
172
+ */
173
+ proxy_request(pkt) {
174
+ var self = this;
175
+ console.log("Received Proxy DHCP REQUEST");
176
+ var offer = {};
177
+ offer.siaddr = self.tftpserver;
178
+ offer.options = {};
179
+ offer.options['54'] = self.host;
180
+ offer.options['255'] = null;
181
+ if (pkt.options['60'] !== undefined) {
182
+ var arch = pkt.options['60'];
183
+ if (arch.indexOf('00009') === 15 || arch.indexOf('00007') === 15) {
184
+ // var next = '192.168.1.17'
185
+ var fname = self.efi64_filename;
186
+ if (pkt.options["77"] === "iPXE") {
187
+ fname = `autoexec.ipxe`;
188
+ }
189
+ pkt.fname = fname;
190
+ // pkt.fname = self.efi_filename // vecchio
191
+ /*
192
+ console.log('====================================')
193
+ console.log('pkt: ' + JSON.stringify(pkt, '', 3))
194
+ console.log('====================================')
195
+ console.log('offer: ' + JSON.stringify(offer, '', 3))
196
+ console.log('====================================')
197
+ */
198
+ }
199
+ else if (arch.indexOf('00006') === 15) {
200
+ pkt.fname = self.efi32_filename;
201
+ }
202
+ else {
203
+ pkt.fname = self.bios_filename;
204
+ }
205
+ }
206
+ return self.p.ack(pkt, offer);
207
+ }
208
+ }
209
+ /**
210
+ *
211
+ */
212
+ util.inherits(dhcpd, ee);
213
+ /**
214
+ *
215
+ * @param {*} pkt
216
+ * @param {*} opt
217
+ * @returns
218
+ */
219
+ function _get_option(pkt, opt) {
220
+ return (opt in pkt.options) ? pkt.options[opt] : undefined;
221
+ }
222
+ module.exports = dhcpd;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ // Generated by CoffeeScript 1.3.3
3
+ module.exports = {
4
+ Packet: require('./packet'),
5
+ MessageTypes: require('./packet/types'),
6
+ Options: require('./packet/options')
7
+ };