penguins-eggs 25.10.6 → 25.10.19

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 (84) hide show
  1. package/.oclif.manifest.json +51 -145
  2. package/README.md +3 -829
  3. package/addons/eggs/theme/livecd/isolinux.main.simple.cfg +3 -3
  4. package/conf/distros/trixie/calamares/modules/shellprocess@boot_deploy.yml +3 -4
  5. package/conf/love.yaml +1 -1
  6. package/dist/classes/distro.js +9 -2
  7. package/dist/classes/diversions.d.ts +1 -1
  8. package/dist/classes/diversions.js +27 -8
  9. package/dist/classes/incubation/incubator.d/archlinux.js +1 -0
  10. package/dist/classes/incubation/incubator.d/trixie.js +7 -10
  11. package/dist/classes/ovary.d/edit-live-fs.d.ts +1 -1
  12. package/dist/classes/ovary.d/edit-live-fs.js +1 -7
  13. package/dist/classes/ovary.d/fertilization.js +1 -0
  14. package/dist/classes/ovary.d/finished.js +1 -5
  15. package/dist/classes/ovary.d/initrd.d.ts +1 -1
  16. package/dist/classes/ovary.d/initrd.js +17 -19
  17. package/dist/classes/ovary.d/live-create-structure.js +1 -4
  18. package/dist/classes/ovary.d/luks-get-password.d.ts +12 -0
  19. package/dist/classes/ovary.d/luks-get-password.js +57 -0
  20. package/dist/classes/ovary.d/luks-home-support.d.ts +12 -0
  21. package/dist/classes/ovary.d/luks-home-support.js +75 -0
  22. package/dist/classes/ovary.d/luks-home.d.ts +15 -0
  23. package/dist/classes/ovary.d/luks-home.js +140 -0
  24. package/dist/classes/ovary.d/luks-root-bootstrap-builder.d.ts +11 -0
  25. package/dist/classes/ovary.d/luks-root-bootstrap-builder.js +45 -0
  26. package/dist/classes/ovary.d/luks-root.d.ts +15 -0
  27. package/dist/classes/ovary.d/luks-root.js +126 -0
  28. package/dist/classes/ovary.d/make-efi.js +1 -1
  29. package/dist/classes/ovary.d/make-squashfs.d.ts +1 -1
  30. package/dist/classes/ovary.d/make-squashfs.js +7 -3
  31. package/dist/classes/ovary.d/produce.d.ts +3 -3
  32. package/dist/classes/ovary.d/produce.js +76 -48
  33. package/dist/classes/ovary.d/syslinux.js +1 -1
  34. package/dist/classes/ovary.d/xorriso-command.d.ts +2 -2
  35. package/dist/classes/ovary.d/xorriso-command.js +27 -29
  36. package/dist/classes/ovary.d.ts +35 -16
  37. package/dist/classes/ovary.js +42 -16
  38. package/dist/classes/utils.d.ts +1 -0
  39. package/dist/classes/utils.js +3 -0
  40. package/dist/commands/config.d.ts +1 -1
  41. package/dist/commands/config.js +2 -2
  42. package/dist/commands/love.d.ts +3 -0
  43. package/dist/commands/love.js +40 -2
  44. package/dist/commands/produce.d.ts +3 -2
  45. package/dist/commands/produce.js +14 -17
  46. package/dist/commands/tools/{ppa.d.ts → repo.d.ts} +2 -2
  47. package/dist/commands/tools/{ppa.js → repo.js} +69 -67
  48. package/dracut/create-symlink +71 -0
  49. package/dracut/dracut-log.txt +3 -0
  50. package/dracut/dracut.conf.d/50-live.conf +24 -6
  51. package/dracut/dracut.conf.d/README.md +10 -0
  52. package/dracut/export +4 -0
  53. package/dracut/export-dracut-analysis +51 -0
  54. package/dracut/export-dracut-log +2 -0
  55. package/dracut/mkisofs +10 -0
  56. package/dracut/modules.d/00debug-shell/debug-hook.sh +13 -0
  57. package/dracut/modules.d/00debug-shell/module-setup.sh +20 -0
  58. package/dracut/modules.d/90block/README.md +7 -0
  59. package/dracut/modules.d/90block/block-cmdline.sh +3 -0
  60. package/dracut/modules.d/90block/module-setup.sh +15 -0
  61. package/dracut/modules.d/95iso-scan/README.md +3 -0
  62. package/dracut/modules.d/95iso-scan/iso-scan-fallback.sh +12 -0
  63. package/dracut/modules.d/95iso-scan/iso-scan.sh +92 -0
  64. package/dracut/modules.d/95iso-scan/module-setup.sh +18 -0
  65. package/dracut/modules.d/95luks-loop/README.md +9 -0
  66. package/dracut/modules.d/95luks-loop/luks-loop.sh +90 -0
  67. package/dracut/modules.d/95luks-loop/module-setup.sh +17 -0
  68. package/dracut/renew-initramfs +17 -0
  69. package/dracut/sbin2bin +10 -0
  70. package/dracut/update-dracut-conf-d +2 -0
  71. package/dracut/update-dracut-modules +62 -0
  72. package/manpages/doc/man/eggs.1.gz +0 -0
  73. package/manpages/doc/man/eggs.html +7 -661
  74. package/package.json +9 -8
  75. package/perrisbrewery/template/dependencies.yaml +6 -5
  76. package/scripts/_eggs +16 -31
  77. package/scripts/eggs.bash +4 -6
  78. package/scripts/luks-root-bootstrap-create.sh +235 -0
  79. package/scripts/luks-root-unlock.sh +172 -0
  80. package/scripts/mount-encrypted-home.sh +223 -0
  81. package/dist/commands/syncfrom.d.ts +0 -45
  82. package/dist/commands/syncfrom.js +0 -152
  83. package/dist/commands/syncto.d.ts +0 -40
  84. package/dist/commands/syncto.js +0 -175
@@ -0,0 +1,90 @@
1
+ #!/bin/bash
2
+ # 95luks-loop: Apre luks.img e lo rende disponibile per dmsquash-live
3
+
4
+ type info >/dev/null 2>&1 || info() { echo "[luks-loop] $*" >&2; }
5
+ type warn >/dev/null 2>&1 || warn() { echo "[luks-loop][WARN] $*" >&2; }
6
+
7
+ # Leggi parametri kernel
8
+ luks_img=$(getarg rd.luks.loop=)
9
+ luks_uuid=$(getarg eggs.luks.uuid=)
10
+
11
+ info "luks-loop starting..."
12
+ info "luks_img=$luks_img"
13
+ info "luks_uuid=$luks_uuid"
14
+
15
+ # Se non specificato, prova il path scritto da iso-scan
16
+ if [ -z "$luks_img" ] && [ -e /run/initramfs/luks.loop.path ]; then
17
+ luks_img=$(cat /run/initramfs/luks.loop.path)
18
+ info "luks_img from iso-scan: $luks_img"
19
+ fi
20
+
21
+ # Se ancora non c'è, esci
22
+ if [ -z "$luks_img" ]; then
23
+ info "no rd.luks.loop parameter, skipping"
24
+ exit 0
25
+ fi
26
+
27
+ # Attendi che il file sia disponibile
28
+ info "waiting for $luks_img..."
29
+ i=0
30
+ while [ ! -f "$luks_img" ]; do
31
+ sleep 1
32
+ i=$((i+1))
33
+ if [ $i -gt 30 ]; then
34
+ warn "timeout waiting for $luks_img"
35
+ exit 1
36
+ fi
37
+ done
38
+
39
+ info "found $luks_img"
40
+
41
+ # Setup loop device
42
+ loop_dev=$(losetup -f --show "$luks_img")
43
+ if [ -z "$loop_dev" ]; then
44
+ warn "losetup failed"
45
+ exit 1
46
+ fi
47
+
48
+ info "loop device: $loop_dev"
49
+
50
+ # Attendi che udev lo riconosca
51
+ udevadm settle --timeout=10
52
+
53
+ # Apri LUKS
54
+ crypt_name="crypted"
55
+
56
+ info "opening LUKS container as $crypt_name..."
57
+
58
+ # Prova con keyfile se esiste
59
+ if [ -f /run/initramfs/live.key ]; then
60
+ info "using keyfile"
61
+ cryptsetup luksOpen "$loop_dev" "$crypt_name" --key-file /run/initramfs/live.key
62
+ else
63
+ info "prompting for passphrase"
64
+ cryptsetup luksOpen "$loop_dev" "$crypt_name"
65
+ fi
66
+
67
+ # Verifica successo
68
+ if [ ! -b "/dev/mapper/$crypt_name" ]; then
69
+ warn "LUKS open failed!"
70
+ losetup -d "$loop_dev"
71
+ exit 1
72
+ fi
73
+
74
+ info "LUKS opened successfully: /dev/mapper/$crypt_name"
75
+
76
+ # Monta il filesystem decifrato in un punto temporaneo
77
+ # così dmsquash-live può trovare filesystem.squashfs dentro
78
+ mkdir -p /run/initramfs/crypted
79
+ mount -o ro /dev/mapper/$crypt_name /run/initramfs/crypted
80
+
81
+ if [ -f /run/initramfs/crypted/filesystem.squashfs ]; then
82
+ info "found filesystem.squashfs inside LUKS"
83
+ # Scrivi il path per dmsquash-live
84
+ echo "/run/initramfs/crypted/filesystem.squashfs" > /run/initramfs/live.squashfs.path
85
+ else
86
+ warn "filesystem.squashfs not found inside LUKS!"
87
+ fi
88
+
89
+ info "luks-loop completed"
90
+ exit 0
@@ -0,0 +1,17 @@
1
+ #!/bin/bash
2
+
3
+ check() {
4
+ return 0
5
+ }
6
+
7
+ depends() {
8
+ return 0
9
+ }
10
+
11
+ # RIMUOVI QUESTA FUNZIONE COMPLETAMENTE
12
+ # cmdline() { ... }
13
+
14
+ install() {
15
+ inst_multiple losetup cryptsetup blkid udevadm mount
16
+ inst_hook pre-mount 50 "$moddir/luks-loop.sh"
17
+ }
@@ -0,0 +1,17 @@
1
+ #!/bin/bash
2
+
3
+ if [[ $(id -u) -ne 0 ]]; then
4
+ echo "Errore: Questo script deve essere eseguito come root o con sudo." >&2
5
+ exit 1
6
+ fi
7
+
8
+ LOG="./dracut-log.txt"
9
+ CONFDIR="/usr/lib/penguins-eggs/dracut/dracut.conf.d"
10
+ LIVE="/home/eggs/iso/live"
11
+
12
+ dracut --force \
13
+ --confdir $CONFDIR \
14
+ --kmoddir /lib/modules/6.12.48+deb13-amd64 \
15
+ $LIVE/initrd.img-6.12.48+deb13-amd64 6.12.48+deb13-amd64 2>&1| tee $LOG
16
+
17
+ scp $LOG artisan@192.168.1.2:/home/artisan
@@ -0,0 +1,10 @@
1
+ # Crea i collegamenti simbolici
2
+ sudo ln -s /usr/sbin/cryptsetup /usr/bin/cryptsetup
3
+ sudo ln -s /usr/sbin/losetup /usr/bin/losetup
4
+ #sudo ln -s /usr/sbin/lsblk /usr/bin/lsblk già esiste
5
+
6
+ # Nota: il log mostra anche altri comandi, potrebbero servire anche questi
7
+ #sudo ln -s /bin/mount /usr/bin/mount # mount potrebbe essere in /bin
8
+ #sudo ln -s /bin/umount /usr/bin/umount # umount potrebbe essere in /bin
9
+ #sudo ln -s /usr/bin/find /usr/bin/find # find è già al posto giusto, di solito
10
+ #sudo ln -s /bin/cat /usr/bin/cat # cat è già al posto giusto, di solito
@@ -0,0 +1,2 @@
1
+ #!/bin/bash
2
+ sudo cp dracut.conf.d/*.conf /usr/lib/penguins-eggs/dracut/dracut.conf.d/
@@ -0,0 +1,62 @@
1
+ #!/bin/bash
2
+
3
+ MODULES_TO_REPLACE=("00debug-shell" "90block" "95iso-scan" "95luks" "95luks-loop")
4
+
5
+
6
+ DRACUT_MODULES_DIR="/usr/lib/penguins-eggs/dracut/modules.d"
7
+ SOURCE_MODULES_DIR="$(dirname "$0")/modules.d"
8
+
9
+
10
+ # --- FUNZIONE PRINCIPALE ---
11
+ main() {
12
+ echo "ATTENZIONE: adesso aggiorn $DRACUT_MODULES_DIR"
13
+
14
+ # 1. Controllo dei permessi
15
+ # Lo script deve essere eseguito come root per poter scrivere in /usr/lib
16
+ if [[ $(id -u) -ne 0 ]]; then
17
+ echo "Errore: Questo script deve essere eseguito come root o con sudo." >&2
18
+ exit 1
19
+ fi
20
+
21
+ # 2. Verifica che la cartella di origine esista
22
+ if [[ ! -d "$SOURCE_MODULES_DIR" ]]; then
23
+ echo "Errore: La directory di origine '$SOURCE_MODULES_DIR' non è stata trovata." >&2
24
+ exit 1
25
+ fi
26
+
27
+ echo "Avvio della sostituzione dei moduli Dracut..."
28
+
29
+ # 3. Ciclo for per ogni modulo nell'array
30
+ for module_name in "${MODULES_TO_REPLACE[@]}"; do
31
+ local dest_path="$DRACUT_MODULES_DIR/$module_name"
32
+ local source_path="$SOURCE_MODULES_DIR/$module_name"
33
+
34
+ echo "--- Elaborazione del modulo: $module_name ---"
35
+
36
+ # Controlla se il modulo di origine esiste prima di procedere
37
+ if [[ ! -d "$source_path" ]]; then
38
+ echo "Attenzione: Il modulo '$source_path' non esiste nella cartella di origine. Salto."
39
+ continue
40
+ fi
41
+
42
+ # Rimuovi la vecchia versione del modulo, se esiste
43
+ if [[ -d "$dest_path" ]]; then
44
+ echo "Rimuovendo la vecchia versione: $dest_path"
45
+ rm -rf "$dest_path"
46
+ fi
47
+
48
+ # Copia la nuova versione del modulo
49
+ echo "Copiando la nuova versione da: $source_path"
50
+ cp -r "$source_path" "$DRACUT_MODULES_DIR/"
51
+
52
+ echo "Modulo '$module_name' aggiornato con successo."
53
+ echo "------------------------------------"
54
+ done
55
+
56
+
57
+ echo "Operazione completata."
58
+ echo "Ricorda di rigenerare l'initramfs con 'dracut -f' o un comando simile."
59
+ }
60
+
61
+ # Esegui la funzione principale
62
+ main
Binary file