penguins-eggs 10.0.12 → 10.0.18

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.
@@ -634,13 +634,6 @@
634
634
  "allowNo": false,
635
635
  "type": "boolean"
636
636
  },
637
- "sidecar": {
638
- "description": "add a sidecar folder on your ISO with arbitrary contents",
639
- "name": "sidecar",
640
- "hasDynamicHelp": false,
641
- "multiple": false,
642
- "type": "option"
643
- },
644
637
  "standard": {
645
638
  "char": "f",
646
639
  "description": "standard compression: xz -b 1M",
@@ -1468,5 +1461,5 @@
1468
1461
  ]
1469
1462
  }
1470
1463
  },
1471
- "version": "10.0.12"
1464
+ "version": "10.0.18"
1472
1465
  }
package/README.md CHANGED
@@ -15,6 +15,7 @@ penguins-eggs
15
15
  # Index
16
16
  <!-- toc -->
17
17
  * [Index](#index)
18
+ * [Installation](#installation)
18
19
  * [Introduction](#introduction)
19
20
  * [Technology](#technology)
20
21
  * [Features](#features)
@@ -27,61 +28,91 @@ penguins-eggs
27
28
  <!-- tocstop -->
28
29
 
29
30
  ## Links
30
- * [Changelog](https://github.com/pieroproietti/penguins-eggs/blob/master/CHANGELOG.md#changelog)
31
- * [penguins' eggs user guide](https://penguins-eggs.net/docs/Tutorial/eggs-users-guide)
31
+ * [Blog](https://penguins-eggs.net/blog)
32
32
  * [Cook eggs in 5 minutes!](https://penguins-eggs.net/docs/Tutorial/eggs5)
33
+ * [Users guide](https://penguins-eggs.net/docs/Tutorial/eggs-users-guide)
33
34
  * [Wardrobe users' guide](https://penguins-eggs.net/docs/Tutorial/wardrobe-users-guide)
34
- * [Blog](https://penguins-eggs.net/blog)
35
+ * [Penguins' eggs book](https://penguins-eggs.gitbook.io/book)
36
+ * [FAQ](https://penguins-eggs.net/docs/faq)
37
+ * [Changelog](https://github.com/pieroproietti/penguins-eggs/blob/master/CHANGELOG.md#changelog)
35
38
 
36
- # Introduction
39
+ # Installation
37
40
 
38
- ## penguins-eggs-10.0.x versions installation
39
- `penguins-eggs-10.0.x` depend on `nodejs >18`, not directly available in all the distros. We can rely on [nodesource](https://github.com/nodesource/distributions?tab=readme-ov-file#debian-and-ubuntu-based-distributions) just adding them.
41
+ ## penguins-eggs-10.0.x installation
42
+ `penguins-eggs-10.0.x` depend on `nodejs >18`, not directly available in all the distros. We can rely on [nodesource](https://github.com/nodesource/distributions?tab=readme-ov-file#debian-and-ubuntu-based-distributions) adding them.
40
43
 
41
- ### Arch, Manjaro, Debian 12 bookworm, Ubuntu 24.04
42
- Just install penguins-eggs-10.0.x.
44
+ ### using get-eggs
45
+ It's the most pratical way and is valid for Arch, Debian, Devuan and Ubuntu. get-eggs configure automatically `nodesource` when need. Copy and paste:
46
+ ```
47
+ git clone https://github.com/pieroproietti/get-eggs
48
+ cd get-eggs
49
+ sudo ./get-eggs.sh
50
+ ```
51
+ ### manual installation
52
+
53
+ #### Arch, Manjaro, Debian 12 bookworm, Ubuntu 24.04
54
+ Just download and install penguins-eggs-10.0.x.
43
55
 
44
- ### Debian 10 buster, Debian 11 bullseye, Ubuntu 20.04, Ubuntu 22.04
56
+ #### Debian 10 buster, Debian 11 bullseye, Ubuntu 20.04, Ubuntu 22.04
45
57
  Before to install `penguins-eggs-10.x` add the repos from `nodesource`, follow this [indications](https://github.com/pieroproietti/penguins-eggs/issues/368) to get `nodejs>18` available.
46
58
 
47
- ### Debian 9 stretch, Ubuntu 18.04 bionic
59
+ #### Debian 9 stretch, Ubuntu 18.04 bionic
48
60
  Use the package `penguins-eggs-10.x.x-bionic-x` - compilated against node16 - and follow this [indications](https://github.com/pieroproietti/penguins-eggs/issues/368#issuecomment-2169961955) to get `nodejs>16` available.
49
61
 
62
+ # Introduction
63
+
64
+ `penguins-eggs` is the package name of `eggs` a console tool, under continuous development, that allows you to remaster your system and redistribute it as live images on USB sticks or via PXE.
65
+
66
+ The concept behind Penguins’ Eggs stems from the idea of “reproduction” and “population selection” applied to operating systems. During the era of popular remastering programs like Remastersys and Systemback, both of which experienced maintenance issues and were eventually abandoned, the need for a new, modern tool became evident.
67
+
68
+ The inspiration for Penguins’ Eggs led to the development of a new tool written in a modern, cross-distribution language, utilizing its own packaging system.
69
+
70
+ Initially built with javascript and then switched to Typescript as the main development language, the design of the tool resembles an egg production process, consisting of operations such as produce to create the eggs and hatch to install them (I changed a bit later: from hatch to install, then to krill as a tribute to calamares tribes).
50
71
 
51
- penguins-eggs is a console tool, under continuous development, that allows you to remaster your system and redistribute it as live images on USB sticks or via PXE. The concept behind Penguins’ Eggs stems from the idea of “reproduction” and “population selection” applied to operating systems. During the era of popular remastering programs like Remastersys and Systemback, both of which experienced maintenance issues and were eventually abandoned, the need for a new, modern tool became evident. The inspiration for Penguins’ Eggs led to the development of a new tool written in a modern, cross-distribution language, utilizing its own packaging system. Initially built with node.js and later transitioning to Typescript as the primary development language, the tool’s design resembles an egg production process, consisting of operations such as “produce” for creating the eggs, “hatch” for installation, and other commands like “kill” for removing produced ISOs, “update” for software updates, and “install” for configuring the graphical installer.
72
+ Other commands follow: like `kill` for removing produced ISOs, `calamares` for configuring the graphical installer, `mom` as interactive help, `dad` to configure eggs, `status`, `tools`, etc.
52
73
 
53
- > Considered a work-in-progress, the ultimate goal for Penguins Eggs is to implement a PXE server for local network distribution, drawing inspiration from the behavior of the cuckoo bird, which relies on others to hatch its eggs. Written primarily in TypeScript, Penguins’ Eggs is designed to be compatible with various Linux distributions, despite differences in package managers, file paths, and more. The tool currently supports Debian, Devuan, Ubuntu, Arch, Manjaro, and their derivatives, across multiple architectures including amd64, i386, and arm64. With the release of version 9.6.x, Penguins’ Eggs is now available as a Debian package, catering to a wide range of systems including PCs, older machines, and single-board ARM systems like the Raspberry Pi, across amd64, i386, and arm64 architectures. For more information and updates, visit the Penguins’ Eggs official website.
74
+ Considered a work-in-progress, the ultimate goal of Penguins' Eggs is to allow the creation of live ISOs from an installed system and their use for system installations. It can be used both to create images on USB devices - even [Ventoy](https://www.ventoy.net/en/index.html) - and as a PXE server to distribute the image itself over a local network. Inspired by the behavior of the cuckoo bird, which depends on others to hatch its eggs.
75
+
76
+ Written primarily in TypeScript, Penguins’ Eggs is designed to be compatible with various Linux distributions, despite differences in package managers, file paths, and more.
77
+
78
+ The tool currently supports Debian, Devuan, Ubuntu, Arch, Manjaro, and their derivatives, across multiple architectures including amd64, i386, and arm64.
79
+
80
+ From the release of version 9.6.x, Penguins’ Eggs is available as a [Debian package](https://sourceforge.net/projects/penguins-eggs/files/DEBS/), then was extended to Arch Linux creating the relative [PKGBUILD](https://aur.archlinux.org/packages/penguins-eggs).
81
+
82
+ So, catering to a wide range of systems including PCs, older machines, and single-board ARM systems like the Raspberry Pi, across amd64, i386, and arm64 architectures.
83
+
84
+ For more information and updates, visit the [Penguins’ Eggs official website](https://penguins-eggs.net).
54
85
 
55
86
 
56
87
  > [!TIP]
57
- > "Penguins-eggs" is an actively developed console tool designed to help you customize and distribute your system as live images on USB sticks or through PXE. By using this tool, you can remaster your system according to your preferences.
88
+ > `eggs` is an actively developed console tool designed to help you customize and distribute your system as live images on USB sticks or through PXE. By using this tool, you can remaster your system according to your preferences.
58
89
 
59
90
  > [!TIP]
60
- > By default, "penguins-eggs" completely removes the system's data and users. However, it also offers the option to remaster the system while including the data and accounts of existing users. This can be done using the "--clone" flag. Additionally, you can preserve the users and files by storing them in an encrypted LUKS file within the resulting ISO file, which can be achieved with the "--cryptedclone" flag.
91
+ > By default, `eggs` completely removes the system's data and users. However, it also offers the option to remaster the system while including the data and accounts of existing users. This can be done using the `--clone` flag. Additionally, you can preserve the users and files by storing them in an encrypted LUKS file within the resulting ISO file, which can be achieved with the `--cryptedclone` flag.
61
92
 
62
93
  > [!TIP]
63
- > The resulting live system can be easily installed using either the Calamares installer or the internal TUI Krill installer. Furthermore, if you prefer an unattended installation, you can utilize the "--unattended" flag.
94
+ > The resulting live system can be easily installed using either the calamares installer or the internal TUI krill installer. Furthermore, using `krill`, you can easily get an unattended installation, utilizing `--unattended` and various [krill](#eggs-krill) flags.
64
95
 
65
96
  > [!TIP]
66
- > One interesting feature of "penguins-eggs" is its integration with the "penguins-wardrobe." This allows you to create or utilize scripts to switch between different configurations. For example, you can start with a bare version of the system, featuring only a command-line interface (CLI), and then easily transition to a full graphical user interface (GUI) or server configurations.
97
+ > One interesting feature of `eggs` is its integration with the `penguins-wardrobe` This allows you to create or utilize scripts to switch between different configurations. For example, you can start with a bare version of the system, featuring only a command-line interface (CLI), and then easily transition to a full graphical user interface (GUI) or server configurations.
67
98
 
68
99
  > [!NOTE]
69
- > For more information and customization options, you can explore "penguins-wardrobe," a related project. You can fork it and adapt it to meet your specific needs.
100
+ > For more information and customization options, you can explore `penguins-wardrobe`. a related project. You can fork it and adapt it to meet your specific needs.
70
101
 
71
102
  See [penguins-wardrobe](https://github.com/pieroproietti/penguins-wardrobe), fork it, and adapt it to your needs.
72
103
 
73
104
  # Technology
74
- "eggs" is primarily written in TypeScript and is designed to be compatible with various Linux distributions. While there may be differences in package managers, paths, and other aspects, the underlying programs used to build the live system are generally the same.
105
+ `eggs` is primarily written in TypeScript and is designed to be compatible with various Linux distributions. While there may be differences in package managers, paths, and other aspects, the underlying programs used to build the live system are generally the same.
75
106
 
76
- Currently, "eggs" supports several Linux distributions, including [Debian](https://www.debian.org/), [Devuan](https://www.devuan.org/), [Ubuntu](https://ubuntu.com/), [Arch](https://archlinux.org/), [Manjaro](https://manjaro.org/) and [derivatives](./conf/derivatives.yaml).
107
+ Currently, `eggs` supports several Linux distributions, including [Debian](https://www.debian.org/), [Devuan](https://www.devuan.org/), [Ubuntu](https://ubuntu.com/), [Arch](https://archlinux.org/), [Manjaro](https://manjaro.org/) and [derivatives](./conf/derivatives.yaml).
77
108
 
78
109
  It also caters to different architectures, namely `amd64`, `i386`, and `arm64`.
79
110
 
80
- Starting from version 9.6.x, "Penguins' eggs" is released as a Debian package, available for amd64, i386, and arm64 architectures. This allows it to support a wide range of PCs, including older machines, as well as single-board ARM systems like the Raspberry Pi. You can learn more about this release in the article titled Triple Somersault! [Triple somersault!](https://penguins-eggs.net/blog/triple-somersault).
111
+ Starting from version 9.6.x, `penguins-eggs` is released as a Debian package, available for amd64, i386, and arm64 architectures. This allows it to support a wide range of PCs, including older machines, as well as single-board ARM systems like the Raspberry Pi. You can learn more about this release in the article titled Triple Somersault! [Triple somersault!](https://penguins-eggs.net/blog/triple-somersault).
81
112
 
82
113
  For more information on the supported distributions and architectures, you can visit the blog [blog](https://penguins-eggs.net/blog/distros-that-can-be-remastered-with-eggs).
83
114
 
84
- Additionally, you can find examples of remastered ISO images created with "eggs" on the project's SourceForge page [sourceforge page of the project](https://sourceforge.net/projects/penguins-eggs/files/ISOS/).
115
+ Additionally, you can find examples of remastered ISO images created with `eggs` on the project's SourceForge page [sourceforge page of the project](https://sourceforge.net/projects/penguins-eggs/files/ISOS/).
85
116
 
86
117
 
87
118
  # Features
@@ -125,9 +156,9 @@ Supports: i386, amd64 and arm64 architecture, from old PCs, and common PCs to si
125
156
 
126
157
 
127
158
  ## Wardrobe, Themes, and Addons
128
- In April 2022, the "wardrobe" feature was introduced to "eggs." This addition serves as a comprehensive tool to assist and streamline the process of creating a customized version of Linux, starting from a command-line interface (CLI) system. I have embraced wardrobe for all my editions to enhance convenience, enabling me to better organize, consolidate, and manage my work effectively.
159
+ In April 2022, the `wardrobe` command was introduced to `eggs`. This addition serves as a comprehensive tool to assist and streamline the process of creating a customized version of Linux, starting from a command-line interface (CLI) system. I have embraced wardrobe for all my editions to enhance convenience, enabling me to better organize, consolidate, and manage my work effectively.
129
160
  To add a unique touch to my customizations, I have assigned bird names to each edition. Except for the "naked" edition, there are various options available, including "Colibri," "eagle," "duck," "owl," and "chicks" under the bookworm and plastilinux distributions. [bookworm](https://sourceforge.net/projects/penguins-eggs/files/ISOS/debian/bookworm/) and [plastilinux](https://sourceforge.net/projects/penguins-eggs/files/ISOS/plastilinux/),.Furthermore, under Waydroid on the eggs' SourceForge page, you can find "wagtail" and "warbier."
130
- I have high hopes that people will take an interest in wardrobe and consider forking the main repository to incorporate their own customizations. By collaborating, we can achieve significant progress that would be challenging for a single developer to accomplish. If you would like to delve deeper into the wardrobe, I recommend reading the Penguins' eggs blog [Penguins' eggs blog](https://penguins-eggs.net/blog/wardrobe-colibri-duck-eagle-and-owl/). post titled Wardrobe: Colibri, Duck, Eagle, and Owl, which provides further insights into its features and benefits.
161
+ I have high hopes that people will take an interest in wardrobe and consider forking the main repository to incorporate their own customizations. By collaborating, we can achieve significant progress that would be challenging for a single developer to accomplish. If you would like to delve deeper into the wardrobe, I recommend reading the [Penguins' eggs blog](https://penguins-eggs.net/blog/wardrobe-colibri-duck-eagle-and-owl/). post titled Wardrobe: Colibri, Duck, Eagle, and Owl, which provides further insights into its features and benefits.
131
162
  Furthermore, addons, predominantly themes, have been organized under the vendor's folder in the penguin's wardrobe. I encourage utilizing your wardrobe for all your customization needs to maintain consistency and organization throughout your work.
132
163
 
133
164
  > [!NOTE]
@@ -136,35 +167,35 @@ Furthermore, addons, predominantly themes, have been organized under the vendor'
136
167
 
137
168
  ## Clone/Cryptedclone
138
169
  When creating a live distribution of your system, you have different options to consider: the default mode, clone, and cryptedclone.
139
- • The default mode, achieved by using the command "eggs produce," completely removes user data from the live distribution. This ensures that no private data remains in the live system.
170
+ • The default mode, achieved by using the command `eggs produce`, completely removes user data from the live distribution. This ensures that no private data remains in the live system.
140
171
 
141
- • The "eggs produce --clone" command allows you to save both user data and system data directly in the generated ISO. This means that if someone obtains a copy of the ISO, they will be able to see and access the
172
+ • The `eggs produce --clone` command allows you to save both user data and system data directly in the generated ISO. This means that if someone obtains a copy of the ISO, they will be able to see and access the
142
173
  user data directly from the live system. It's important to note that this data is not encrypted, so it may not be suitable for sensitive information.
143
174
 
144
- • On the other hand, the "eggs produce --cryptedclone" command saves the data within the generated ISO using a LUKS (Linux Unified Key Setup) volume. With this option, the user data will not be visible in the live system. However, it can be automatically reinstalled during the system installation process using the "krill" installer. Even if someone has the generated ISO, they won't be able to access the user data without the LUKS passphrase. This ensures that your data remains protected.
175
+ • On the other hand, the ìeggs produce --cryptedclone` command saves the data within the generated ISO using a LUKS (Linux Unified Key Setup) volume. With this option, the user data will not be visible in the live system. However, it can be automatically reinstalled during the system installation process using the "krill" installer. Even if someone has the generated ISO, they won't be able to access the user data without the LUKS passphrase. This ensures that your data remains protected.
145
176
 
146
177
  To summarize the available options:
147
178
 
148
- "eggs produce" (default): All private data is removed from the live system.
179
+ `eggs produce` (default): All private data is removed from the live system.
149
180
 
150
- "eggs produce --clone": All user data is included unencrypted directly in the live system.
181
+ `eggs produce --clone`: All user data is included unencrypted directly in the live system.
151
182
 
152
- "eggs produce --cryptedclone": All user data is included encrypted within a LUKS volume inside the ISO.
183
+ `eggs produce --cryptedclone`: All user data is included encrypted within a LUKS volume inside the ISO.
153
184
  > [!TIP]
154
185
  > During the installation process, you can use the "krill" installer to restore your crypted data automatically. By running the command "sudo eggs install" with the "krill" installer, your encrypted data will be securely transferred and made available in the installed system.
155
186
 
156
187
 
157
188
  ## calamares and krill
158
- Calamares and Krill are powerful tools in the Eggs project [calamares](https://calamares.io), offering versatile installation options for Linux systems. The Eggs project was specifically designed to utilize Calamares as the default system installer, providing users with the flexibility to customize their installations using themes. However, Eggs goes beyond Calamares by introducing its own installer called Krill, which focuses on command-line interface (CLI) installations, particularly for server environments.
189
+ Calamares and Krill are powerful tools in the Eggs project, [calamares](https://calamares.io), offering versatile installation options for Linux systems. The Eggs project was specifically designed to utilize Calamares as the default system installer, providing users with the flexibility to customize their installations using themes. However, Eggs goes beyond Calamares by introducing its own installer called Krill, which focuses on command-line interface (CLI) installations, particularly for server environments.
159
190
 
160
- Krill, like Calamares, adopts a CLI interface that closely resembles Calamares, ensuring a consistent user experience. Leveraging the same configuration files created by Eggs for Calamares, Krill maintains compatibility and allows for seamless transitions between desktop and server installations. By simply adding the flag during installation, Krill enables unattended installations, streamlining the process for system administrators. Fine-tuning installation parameters becomes effortless as the configuration values can be modified in the ```/etc/penguins-eggs.d/krill.yaml``` file, facilitating automated deployments.
191
+ Krill adopts a TUI interface that closely resembles Calamares, ensuring a consistent user experience. Leveraging the same configuration files created by Eggs for Calamares, Krill maintains compatibility and allows for seamless transitions between desktop and server installations. By simply adding the flag during installation, Krill enables unattended installations, streamlining the process for system administrators. Fine-tuning installation parameters becomes effortless as the configuration values can be modified in the ```/etc/penguins-eggs.d/krill.yaml``` file, facilitating automated deployments.
161
192
 
162
193
  > [!TIP]
163
- > Thanks to the Eggs project's integration of Calamares and the introduction of Krill, users can enjoy a comprehensive installation toolkit. Whether one prefers the graphical interface of Calamares or the command-line efficiency of Krill, Eggs caters to diverse installation needs, making Linux setup a breeze.
194
+ > Thanks to the Eggs project's integration of Calamares and the introduction of Krill, users can enjoy a comprehensive installation toolkit. Whether one prefers the graphical interface of Calamares or the command-line efficiency of Krill, Eggs caters to diverse installation needs, making Linux setup a breeze.
164
195
 
165
196
  ## cuckoo
166
- ust like the cuckoo bird lays its eggs in the nests of other birds, the Eggs project introduces a similar concept in the form of a self-configuring PXE service. This service allows you to boot and install your ISO on networked computers that are not originally configured for your specific ISO.
167
- With the command "cuckoo," you can deploy a newly created ISO on an already installed system, or you can live to boot the ISO itself. This means that you can either install your ISO on existing systems or directly run the ISO without the need for a permanent installation.
197
+ Just like the cuckoo bird lays its eggs in the nests of other birds, the Eggs project introduces a similar concept in the form of a self-configuring PXE service. This service allows you to boot and install your ISO on networked computers that are not originally configured for your specific ISO.
198
+ With the command `cuckoo` you can deploy a newly created ISO on an already installed system, or you can live to boot the ISO itself. This means that you can either install your ISO on existing systems or directly run the ISO without the need for a permanent installation.
168
199
 
169
200
  > [!TIP]
170
201
  > By leveraging the cuckoo command, the Eggs project provides a convenient method for deploying and testing your ISO on a variety of networked computers, expanding the possibilities for system installations and evaluations.
@@ -186,53 +217,61 @@ By adapting to the packaging systems used by different distributions, Eggs ensur
186
217
 
187
218
 
188
219
  ## Debian families
189
- Eggs caters to the Debian family of distributions, offering a seamless installation experience through deb packages. These deb packages are available for multiple architectures, including amd64, i386, and arm64.The availability of Eggs as a deb package simplifies the installation process for users of Debian-based distributions. Whether you are running a 64-bit (amd64) or 32-bit (i386) architecture, or even an arm64 architecture, Eggs has you covered. This ensures that users across a wide range of Debian-based systems can easily download, install, and utilize Eggs' features.
220
+ Eggs caters to the Debian family of distributions, offering a seamless installation experience through deb packages.
221
+
222
+ These deb packages are available for multiple architectures, including amd64, i386, and arm64.
223
+
224
+ The availability of `penguins-eggs` as a deb package simplifies the installation process for users of Debian-based distributions. Whether you are running a 64-bit (amd64) or 32-bit (i386) architecture, or even an arm64 architecture, Eggs has you covered. This ensures that users across a wide range of Debian-based systems can easily download, install, and utilize Eggs' features.
225
+
190
226
  By providing deb packages for various architectures, Eggs promotes accessibility and inclusivity, allowing users on different hardware platforms to benefit from its functionality. Whether you're using a traditional desktop computer or an ARM-based device, Eggs ensures compatibility and a consistent experience across the Debian family of distributions.
191
227
 
192
- The packages can be installed on Debian, Devuan, or Ubuntu-based distributions without the need to worry about the specific version. Whether you're using Buster, Bullseye, Bookworm, Trixie, Chimaera, Daedalus, Bionic, Focal, or Jammy, Eggs is reported to work across these versions. However, it's important to ensure compatibility with the respective processor architecture.
193
- The packages provided by Eggs include standard scripts for preinst, postinst, prerm, and postrm. These scripts play a crucial role in the installation and management of the packages. The preinst script is executed before the package is installed, allowing for any necessary preparations or configurations. The postinst script is executed after the package installation, enabling additional setup or customization. Similarly, the prerm script is executed before the package is removed, while the postrm script is executed after the package removal.
194
- In addition to the scripts, Eggs packages also include man pages. These man pages serve as documentation for the installed packages, providing detailed information on their usage, configuration options, and other relevant details. The inclusion of man pages ensures that users have access to comprehensive documentation, enabling them to effectively utilize and manage the Eggs packages.
228
+ The packages can be installed on Debian, Devuan, or Ubuntu-based distributions without the need to worry about the specific version. Whether you're using Buster, Bullseye, Bookworm, Trixie, Chimaera, Daedalus, Focal, Jammy or Noble, `eggs` is reported to work across these versions. However, it's important to ensure compatibility with the respective processor architecture.
229
+
230
+ Ubuntu bionic cannot install nodejs >16, so I packaged a specific version for bionic, still largely used.
231
+
232
+ The packages `penguins-eggs` provided include standard scripts for `preinst`, `postinst`, `prerm`, and `postrm`. These scripts play a crucial role in the installation and management of the packages. The preinst script is executed before the package is installed, allowing for any necessary preparations or configurations. The postinst script is executed after the package installation, enabling additional setup or customization. Similarly, the prerm script is executed before the package is removed, while the postrm script is executed after the package removal.
233
+
234
+ In addition to the scripts, `penguins-eggs` package also include man pages, bash-completion and other.
235
+
236
+ man pages serve as documentation for the installed packages, providing detailed information on their usage, configuration options, and other relevant details. The inclusion of man pages ensures that users have access to comprehensive documentation, enabling them to effectively utilize and manage the Eggs packages.
237
+
195
238
  Overall, Eggs' packages offer a comprehensive and user-friendly experience, with standard scripts and detailed documentation, making installation and management hassle-free on Debian, Devuan, and Ubuntu-based distributions.
196
239
 
197
240
 
198
241
  ### Install eggs
199
- there are multiple methods available, but one of the most practical approaches is to utilize the penguins-eggs-ppa repository.
200
- The penguins-eggs-ppa repository provides a convenient and reliable way to access and install Eggs on your system. By adding this repository to your package manager's sources list, you gain access to the latest versions of Eggs and can easily install or update it with a few simple commands.Adding the penguins-eggs-ppa repository ensures that you have a trusted and official source for Eggs, which simplifies the installation process and ensures that you receive updates and security patches on time.By leveraging the penguins-eggs-ppa repository, you can enjoy the benefits of a streamlined installation process, convenient updates, and a reliable source for Eggs. It's a practical solution that allows you to effortlessly install and manage Eggs as a .deb package, enhancing your overall experience with this powerful software.
242
+ There are multiple methods available, lately I prefer `get-eggs` way, working for all the supported distros: Arch, Debian, Devuan, Manjaro, Ubuntu and derivatives.:
243
+
244
+ ```
245
+ git clone https://github.com/pieroproietti/get-eggs
246
+ cd get-eggs
247
+ sudo ./get-eggs.sh
248
+ ```
249
+
250
+ `get-eggs` on Debian families add automatically the `penguins-eggs-ppa` repository and, when need, add `nodesource` repository. On Arch, `chaotic-aur` repo will be added.
201
251
 
252
+ This let to install, update, remove `penguins-eggs` like a native package.
202
253
 
203
- #### Download the package and install it with dpkg
254
+ #### Debian families
255
+ `penguins-eggs-10.0.x` depend on `nodejs >18`, not directly available in all the distros. We can rely on [nodesource](https://github.com/nodesource/distributions?tab=readme-ov-file#debian-and-ubuntu-based-distributions) adding them.
256
+
257
+ ##### Download and install penguins-eggs from sourceforge
258
+ To install Eggs, the simplest method is to download the package `penguins-eggs` from the project's SourceForge page [package eggs](https://sourceforge.net/projects/penguins-eggs/files/DEBS/) and install it on your system.
259
+
260
+ After downloading the appropriate package, based on your system's architecture, you can proceed with the installation. If you are using an amd64 system, run the following command in the terminal:
261
+
262
+ ```sudo dpkg -i penguins_eggs_10.0.x-1_amd64.deb```
204
263
 
205
- To install Eggs, the simplest method is to download the package from the project's SourceForge page [package eggs](https://sourceforge.net/projects/penguins-eggs/files/DEBS/) and install it on your system. You can find the Eggs package on the SourceForge page here.
206
- After downloading the appropriate package based on your system's architecture, you can proceed with the installation. If you are using an amd64 system, run the following command in the terminal:
207
- ```sudo dpkg -i penguins_eggs_10.0.0-1_amd64.deb```
208
264
  For i386 systems, the command would be:
209
- ```sudo dpkg -i penguins_eggs_10.0.0-1_i386.deb```
265
+ ```sudo dpkg -i penguins_eggs_10.0.x-1_i386.deb```
266
+
210
267
  Executing these commands will initiate the installation process and install Eggs on your system.
211
268
  Once Eggs is successfully installed, you have the option to enhance its functionality by adding the penguins-eggs-ppa repository. This repository provides additional tools and features for Eggs. To add the penguins-eggs-ppa repository, run the following command in the terminal:
212
269
  ```sudo eggs tools ppa --install```
213
270
  This command will add the penguins-eggs-ppa repository to your system, allowing you to access updated versions of Eggs and additional tools provided by the repository.
214
271
  By following these steps, you can easily install Eggs, add the penguins-eggs-ppa repository, [penguins-eggs-ppa](https://pieroproietti.github.io/penguins-eggs-ppa), and unlock further capabilities and enhancements for your Eggs installation.
215
272
 
216
- #### Using penguins-eggs-ppa (stable version)
217
- To simplify the process of using the penguins-eggs-ppa repository and installing Eggs, you can utilize a utility called `get-eggs`. Follow these steps to use `get-eggs`:
218
- 1. Clone the `get-eggs` repository by running the following command:
219
- ```
220
- git clone https://github.com/pieroproietti/get-eggs
221
- ```
222
-
223
- 2. Navigate into the `get-eggs` directory:
224
- ```
225
- cd get-eggs
226
- ```
227
-
228
- 3. Execute the utility with root privileges:
229
- ```
230
- sudo ./get-eggs
231
- ```
232
-
233
- On Debian, Devuan, and Ubuntu, running `get-eggs` will add the penguins-eggs-ppa repository and install Eggs seamlessly.
234
- > [!TIP]
235
- > For derivatives of Debian, Devuan, and Ubuntu, such as Linuxmint, LMDE, etc., `get-eggs` will typically work as well. However, if needed, you can manually add the penguins-eggs-ppa repository by copying and pasting the following two lines into a terminal:
273
+ ##### Using penguins-eggs-ppa
274
+ For derivatives of Debian, Devuan, and Ubuntu, such as Linuxmint, LMDE, etc., `get-eggs` will typically work as well. However, if needed, you can manually add the penguins-eggs-ppa repository by copying and pasting the following two lines into a terminal:
236
275
 
237
276
  ```
238
277
  curl -fsSL https://pieroproietti.github.io/penguins-eggs-ppa/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/penguins-eggs.gpg
@@ -247,11 +286,8 @@ sudo apt update && sudo apt install penguins_eggs
247
286
 
248
287
  Executing these commands will update your package sources and install Eggs on your system.
249
288
 
250
- > [!TIP]
251
- > By using the `get-eggs` utility or manually adding the penguins-eggs-ppa repository, you can easily install Eggs on various Debian, Devuan, and Ubuntu-based distributions, including their derivatives, ensuring a smooth and hassle-free installation process.
252
-
253
289
 
254
- ### Upgrade eggs
290
+ #### Upgrade eggs
255
291
  To upgrade Eggs, the process will vary depending on whether you are using the penguins-eggs-ppa repository or not. Here's how you can upgrade Eggs with both approaches:
256
292
  If you have already added the penguins-eggs-ppa repository, you can upgrade Eggs alongside other packages on your system by running the following command:
257
293
  ```
@@ -261,15 +297,15 @@ sudo apt upgrade
261
297
  > This command will check for updates for all installed packages, including Eggs, and upgrade them to their latest versions if available.
262
298
 
263
299
  > [!NOTE]
264
- > On the other hand, if you have not added the penguins-eggs-ppa repository, you can manually upgrade Eggs by downloading the new version from the SourceForge page [here](https://sourceforge.net/projects/penguins-eggs/files/DEBS/). Once you have downloaded the appropriate package for your system architecture, follow these steps:
300
+ > On the other hand, if you have not added the `penguins-eggs-ppa` repository, you can manually upgrade Eggs by downloading the new version from the SourceForge page [here](https://sourceforge.net/projects/penguins-eggs/files/DEBS/). Once you have downloaded the appropriate package for your system architecture, follow these steps:
265
301
 
266
302
  1. Install the package using the `gdebi` command (assuming you have `gdebi` installed):
267
303
  ```
268
- sudo gdebi penguins_eggs_10.0.0-1_amd64.deb
304
+ sudo gdebi penguins_eggs_10.0.x-1_amd64.deb
269
305
  ```
270
306
  or for i386 systems:
271
307
  ```
272
- sudo dpkg -i penguins_eggs_10.0.0-1_i386.deb
308
+ sudo dpkg -i penguins_eggs_10.0.x-1_i386.deb
273
309
  ```
274
310
 
275
311
  2. In case of any missing dependencies, you can resolve them by running the following command:
@@ -293,7 +329,7 @@ This will automatically install any required dependencies for Eggs.
293
329
 
294
330
 
295
331
  ### Arch
296
- To install penguins-eggs on Arch Linux, there are multiple methods available. One option is to install it directly from the Arch User Repository (AUR) by adding the Chaotic-AUR repository. Here's how you can do it:
332
+ To install penguins-eggs on Arch Linux, there are multiple methods available. One option is to install it directly from the Arch User Repository (AUR) by adding the `chaotic-AUR` repository. Here's how you can do it:
297
333
 
298
334
  1. Add the Chaotic-AUR repository to your system. You can find the repository at [https://aur.chaotic.cx/](https://aur.chaotic.cx/).
299
335
 
@@ -303,25 +339,9 @@ sudo pacman -Sy penguins-eggs
303
339
  ```
304
340
  This command will synchronize the package databases and install penguins-eggs on your system.
305
341
 
306
- Alternatively, you can use a utility called `get-eggs` that I have written. Here's how to use it:
307
-
308
- 1. Clone the `get-eggs` repository by running the following command:
309
- ```
310
- git clone https://github.com/pieroproietti/get-eggs
311
- ```
342
+ Alternatively, you can use a utility called `get-eggs`. This script will add the AUR repository and install penguins-eggs on your system.
312
343
 
313
- 2. Change to the `get-eggs` directory:
314
- ```
315
- cd get-eggs
316
- ```
317
-
318
- 3. Run the `get-eggs` script with sudo privileges:
319
- ```
320
- sudo ./get-eggs
321
- ```
322
- This script will add the AUR repository and install penguins-eggs on your system.
323
-
324
- Additionally, you have the option to use the popular AUR helper tool called `yay`. Simply run the following command:
344
+ It's possible too to use the popular AUR helper tool called `yay`. Simply run the following command:
325
345
  ```
326
346
  yay penguins-eggs
327
347
  ```
@@ -404,6 +424,7 @@ sudo eggs produce --cryptedclone
404
424
  ```
405
425
  This command will generate a live system with encrypted user data.
406
426
 
427
+ ## Compression
407
428
  By default, penguins-eggs uses fasted compression `zstd level 3` for efficiency during the creation process. However, if you want a more compressed ISO file, you can chooce `--pendrive` flag `zstd level 15` optimized for pendrives, `--standard` flag, use `xz`, or `--max` flag using `xz -Xbcj` to get the maximun level of compression. For example:
408
429
 
409
430
  ```
@@ -413,8 +434,7 @@ sudo eggs produce --standard
413
434
  sudo eggs produce --max
414
435
  ```
415
436
  > [!TIP]
416
- > This command will apply maximum compression to the ISO file, resulting in a smaller file size. In addition to the command descriptions provided in this README, you can refer to the [Penguins' eggs official guide](https://penguins-eggs.net/docs/Tutorial/eggs-users-guide) for more detailed information on how to use penguins-eggs and its various features. The official guide offers comprehensive documentation to help you make the most out of this tool.
417
-
437
+ > This command will apply differents compression to the ISO file, resulting in a smaller file size or in a longer process. Consult [Penguins' eggs official guide](https://penguins-eggs.net/docs/Tutorial/eggs-users-guide) for more detailed informations.
418
438
  # Commands
419
439
  <!-- commands -->
420
440
  * [`eggs adapt`](#eggs-adapt)
@@ -466,7 +486,7 @@ EXAMPLES
466
486
  $ eggs adapt
467
487
  ```
468
488
 
469
- _See code: [src/commands/adapt.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/adapt.ts)_
489
+ _See code: [src/commands/adapt.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/adapt.ts)_
470
490
 
471
491
  ## `eggs analyze`
472
492
 
@@ -487,7 +507,7 @@ EXAMPLES
487
507
  sudo eggs analyze
488
508
  ```
489
509
 
490
- _See code: [src/commands/analyze.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/analyze.ts)_
510
+ _See code: [src/commands/analyze.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/analyze.ts)_
491
511
 
492
512
  ## `eggs autocomplete [SHELL]`
493
513
 
@@ -551,7 +571,7 @@ EXAMPLES
551
571
  sudo eggs calamares --remove
552
572
  ```
553
573
 
554
- _See code: [src/commands/calamares.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/calamares.ts)_
574
+ _See code: [src/commands/calamares.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/calamares.ts)_
555
575
 
556
576
  ## `eggs config`
557
577
 
@@ -578,7 +598,7 @@ EXAMPLES
578
598
  sudo eggs config --clean --nointeractive
579
599
  ```
580
600
 
581
- _See code: [src/commands/config.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/config.ts)_
601
+ _See code: [src/commands/config.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/config.ts)_
582
602
 
583
603
  ## `eggs cuckoo`
584
604
 
@@ -598,7 +618,7 @@ EXAMPLES
598
618
  sudo eggs cuckoo
599
619
  ```
600
620
 
601
- _See code: [src/commands/cuckoo.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/cuckoo.ts)_
621
+ _See code: [src/commands/cuckoo.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/cuckoo.ts)_
602
622
 
603
623
  ## `eggs dad`
604
624
 
@@ -626,7 +646,7 @@ EXAMPLES
626
646
  sudo dad --default
627
647
  ```
628
648
 
629
- _See code: [src/commands/dad.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/dad.ts)_
649
+ _See code: [src/commands/dad.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/dad.ts)_
630
650
 
631
651
  ## `eggs export deb`
632
652
 
@@ -653,7 +673,7 @@ EXAMPLES
653
673
  $ eggs export deb --all
654
674
  ```
655
675
 
656
- _See code: [src/commands/export/deb.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/export/deb.ts)_
676
+ _See code: [src/commands/export/deb.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/export/deb.ts)_
657
677
 
658
678
  ## `eggs export iso`
659
679
 
@@ -678,7 +698,7 @@ EXAMPLES
678
698
  $ eggs export iso --clean
679
699
  ```
680
700
 
681
- _See code: [src/commands/export/iso.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/export/iso.ts)_
701
+ _See code: [src/commands/export/iso.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/export/iso.ts)_
682
702
 
683
703
  ## `eggs help [COMMAND]`
684
704
 
@@ -739,7 +759,7 @@ EXAMPLES
739
759
  sudo eggs install --chroot
740
760
  ```
741
761
 
742
- _See code: [src/commands/install.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/install.ts)_
762
+ _See code: [src/commands/install.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/install.ts)_
743
763
 
744
764
  ## `eggs kill`
745
765
 
@@ -762,7 +782,7 @@ EXAMPLES
762
782
  sudo eggs kill
763
783
  ```
764
784
 
765
- _See code: [src/commands/kill.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/kill.ts)_
785
+ _See code: [src/commands/kill.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/kill.ts)_
766
786
 
767
787
  ## `eggs krill`
768
788
 
@@ -821,7 +841,7 @@ EXAMPLES
821
841
  $ eggs mom
822
842
  ```
823
843
 
824
- _See code: [src/commands/mom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/mom.ts)_
844
+ _See code: [src/commands/mom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/mom.ts)_
825
845
 
826
846
  ## `eggs produce`
827
847
 
@@ -830,8 +850,7 @@ produce a live image from your system whithout your data
830
850
  ```
831
851
  USAGE
832
852
  $ eggs produce [--addons <value>...] [--basename <value>] [-c] [-C] [--excludes <value>...] [-h] [--links
833
- <value>...] [-m] [-N] [-n] [-p] [-P <value>] [--release] [-s] [--sidecar <value>] [-f] [--theme <value>] [-u] [-v]
834
- [-y]
853
+ <value>...] [-m] [-N] [-n] [-p] [-P <value>] [--release] [-s] [-f] [--theme <value>] [-u] [-v] [-y]
835
854
 
836
855
  FLAGS
837
856
  -C, --cryptedclone crypted clone
@@ -852,7 +871,6 @@ FLAGS
852
871
  --excludes=<value>... use: static, homes, home
853
872
  --links=<value>... desktop links
854
873
  --release release: remove penguins-eggs, calamares and dependencies after installation
855
- --sidecar=<value> add a sidecar folder on your ISO with arbitrary contents
856
874
  --theme=<value> theme for livecd, calamares branding and partitions
857
875
 
858
876
  DESCRIPTION
@@ -880,7 +898,7 @@ EXAMPLES
880
898
  sudo eggs produce --excludes home # exclude ~/*
881
899
  ```
882
900
 
883
- _See code: [src/commands/produce.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/produce.ts)_
901
+ _See code: [src/commands/produce.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/produce.ts)_
884
902
 
885
903
  ## `eggs status`
886
904
 
@@ -901,7 +919,7 @@ EXAMPLES
901
919
  $ eggs status
902
920
  ```
903
921
 
904
- _See code: [src/commands/status.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/status.ts)_
922
+ _See code: [src/commands/status.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/status.ts)_
905
923
 
906
924
  ## `eggs syncfrom`
907
925
 
@@ -927,7 +945,7 @@ EXAMPLES
927
945
  sudo eggs syncfrom --file /path/to/luks-volume
928
946
  ```
929
947
 
930
- _See code: [src/commands/syncfrom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/syncfrom.ts)_
948
+ _See code: [src/commands/syncfrom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/syncfrom.ts)_
931
949
 
932
950
  ## `eggs syncto`
933
951
 
@@ -954,7 +972,7 @@ EXAMPLES
954
972
  sudo eggs syncto --excludes
955
973
  ```
956
974
 
957
- _See code: [src/commands/syncto.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/syncto.ts)_
975
+ _See code: [src/commands/syncto.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/syncto.ts)_
958
976
 
959
977
  ## `eggs tools clean`
960
978
 
@@ -976,7 +994,7 @@ EXAMPLES
976
994
  sudo eggs tools clean
977
995
  ```
978
996
 
979
- _See code: [src/commands/tools/clean.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/tools/clean.ts)_
997
+ _See code: [src/commands/tools/clean.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/tools/clean.ts)_
980
998
 
981
999
  ## `eggs tools ppa`
982
1000
 
@@ -1002,7 +1020,7 @@ EXAMPLES
1002
1020
  sudo eggs tools ppa --remove
1003
1021
  ```
1004
1022
 
1005
- _See code: [src/commands/tools/ppa.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/tools/ppa.ts)_
1023
+ _See code: [src/commands/tools/ppa.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/tools/ppa.ts)_
1006
1024
 
1007
1025
  ## `eggs tools skel`
1008
1026
 
@@ -1026,7 +1044,7 @@ EXAMPLES
1026
1044
  sudo eggs tools skel --user user-to-be-copied
1027
1045
  ```
1028
1046
 
1029
- _See code: [src/commands/tools/skel.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/tools/skel.ts)_
1047
+ _See code: [src/commands/tools/skel.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/tools/skel.ts)_
1030
1048
 
1031
1049
  ## `eggs tools stat`
1032
1050
 
@@ -1052,7 +1070,7 @@ EXAMPLES
1052
1070
  $ eggs tools stat --year
1053
1071
  ```
1054
1072
 
1055
- _See code: [src/commands/tools/stat.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/tools/stat.ts)_
1073
+ _See code: [src/commands/tools/stat.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/tools/stat.ts)_
1056
1074
 
1057
1075
  ## `eggs tools yolk`
1058
1076
 
@@ -1073,7 +1091,7 @@ EXAMPLES
1073
1091
  sudo eggs tools yolk
1074
1092
  ```
1075
1093
 
1076
- _See code: [src/commands/tools/yolk.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/tools/yolk.ts)_
1094
+ _See code: [src/commands/tools/yolk.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/tools/yolk.ts)_
1077
1095
 
1078
1096
  ## `eggs update`
1079
1097
 
@@ -1094,7 +1112,7 @@ EXAMPLES
1094
1112
  $ eggs update
1095
1113
  ```
1096
1114
 
1097
- _See code: [src/commands/update.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/update.ts)_
1115
+ _See code: [src/commands/update.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/update.ts)_
1098
1116
 
1099
1117
  ## `eggs version`
1100
1118
 
@@ -1140,7 +1158,7 @@ EXAMPLES
1140
1158
  $ eggs wardrobe get your-wardrobe
1141
1159
  ```
1142
1160
 
1143
- _See code: [src/commands/wardrobe/get.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/wardrobe/get.ts)_
1161
+ _See code: [src/commands/wardrobe/get.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/wardrobe/get.ts)_
1144
1162
 
1145
1163
  ## `eggs wardrobe list [REPO]`
1146
1164
 
@@ -1169,7 +1187,7 @@ EXAMPLES
1169
1187
  $ eggs wardrobe list --distro arch
1170
1188
  ```
1171
1189
 
1172
- _See code: [src/commands/wardrobe/list.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/wardrobe/list.ts)_
1190
+ _See code: [src/commands/wardrobe/list.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/wardrobe/list.ts)_
1173
1191
 
1174
1192
  ## `eggs wardrobe show [REPO]`
1175
1193
 
@@ -1199,7 +1217,7 @@ EXAMPLES
1199
1217
  $ eggs wardrobe show accessories/
1200
1218
  ```
1201
1219
 
1202
- _See code: [src/commands/wardrobe/show.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/wardrobe/show.ts)_
1220
+ _See code: [src/commands/wardrobe/show.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/wardrobe/show.ts)_
1203
1221
 
1204
1222
  ## `eggs wardrobe wear [REPO]`
1205
1223
 
@@ -1230,14 +1248,14 @@ EXAMPLES
1230
1248
  sudo eggs wardrobe wear wagtail/waydroid
1231
1249
  ```
1232
1250
 
1233
- _See code: [src/commands/wardrobe/wear.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/wardrobe/wear.ts)_
1251
+ _See code: [src/commands/wardrobe/wear.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/wardrobe/wear.ts)_
1234
1252
  <!-- commandsstop -->
1235
1253
 
1236
1254
  # penGUI
1237
1255
  ![icon](https://github.com/pieroproietti/pengui/blob/main/assets/pengui.png?raw=true)
1238
1256
  ## penGUI take cure of eggs!
1239
1257
 
1240
- The development of a GUI for "penguins-eggs" with the penGUI project sounds promising. It's exciting to see that work on the GUI has started and is progressing rapidly. GUIs can greatly enhance the user experience and make it more accessible to a wider range of users. I hope the penGUI [penGUI](https://github.com/pieroproietti/pengui) project continues to thrive and brings a user-friendly interface to "penguins-eggs". If you have any specific questions or need further information about the penGUI project, feel free to ask!
1258
+ The development of a GUI for `eggs` with the penGUI project sounds promising. It's exciting to see that work on the GUI has started and is progressing rapidly. GUIs can greatly enhance the user experience and make it more accessible to a wider range of users. I hope the penGUI [penGUI](https://github.com/pieroproietti/pengui) project continues to thrive and brings a user-friendly interface to `penguins-eggs`. If you have any specific questions or need further information about the penGUI project, feel free to ask!
1241
1259
 
1242
1260
 
1243
1261
  ## That's all, Folks!
@@ -100,15 +100,12 @@
100
100
  - victoria # Linux Mint
101
101
  - virginia # LinuxMint
102
102
 
103
- - id: devel
103
+ - id: noble
104
104
  distroLike: Ubuntu
105
105
  family: debian
106
106
  ids:
107
- - devel # Rhino
108
- - lunar # Ubuntu lunar 23.04
109
- - mantic # Ubuntu lunar 23.10
110
- - noble # Ubuntu noble
111
107
  - wilma # Linux Mint 22
108
+ - devel # Rhino
112
109
 
113
110
  #
114
111
  # ARCH
@@ -0,0 +1,3 @@
1
+ # Ubuntu 24.04 noble
2
+
3
+ It take all configuration from Ubuntu focal
@@ -1,43 +1,4 @@
1
1
  ######################################################################################################
2
2
  # usr: use this exclusions, attention this can lead to lost something
3
- #usr/lib/snapd/*
4
- usr/bin/x86_64-w64-mingw32-cpp-win32
5
- usr/bin/x86_64-w64-mingw32-gcc-12-win32
6
- usr/bin/x86_64-w64-mingw32-gcc-ar-win32
7
- usr/bin/x86_64-w64-mingw32-gcc-nm-win32
8
- usr/bin/x86_64-w64-mingw32-gcc-ranlib-win32
9
- usr/bin/x86_64-w64-mingw32-gcc-win32
10
- usr/bin/x86_64-w64-mingw32-gcov-dump-win32
11
- usr/bin/x86_64-w64-mingw32-gcov-tool-win32
12
- usr/bin/x86_64-w64-mingw32-gcov-win32
13
- usr/bin/x86_64-w64-mingw32-lto-dump-win32
14
- usr/i686-w64-mingw32/*
15
- usr/include/gtkmm-3.0/*
16
- usr/lib/gcc/i686-w64-mingw32/*
17
- usr/lib/gcc/x86_64-w64-mingw32/*
18
- usr/lib/i386-linux-gnu/*
19
- usr/lib/i386-linux-gnu/libLLVM-12.so
20
- usr/lib/i386-linux-gnu/libLLVM-12.so.1
21
- usr/lib/llvm-11/*
22
- usr/lib/llvm-9/*
23
- usr/lib/mono/*
24
- usr/lib/x86_64-linux-gnu/libLLVM-10.so
25
- usr/lib/x86_64-linux-gnu/libLLVM-10.so.1
26
- usr/lib/x86_64-linux-gnu/libLLVM-11.so
27
- usr/lib/x86_64-linux-gnu/libLLVM-11.so.1
28
- usr/lib/x86_64-linux-gnu/libLLVM-12.so
29
- usr/lib/x86_64-linux-gnu/libLLVM-12.so.1
30
- usr/lib/x86_64-linux-gnu/libLLVM-14.so
31
- usr/lib/x86_64-linux-gnu/libLLVM-14.so.1
32
- usr/lib/x86_64-linux-gnu/libLLVM-9.so
33
- usr/lib/x86_64-linux-gnu/libLLVM-9.so.1
34
- usr/lib/x86_64-linux-gnu/openblas-pthread/*
35
- usr/share/dict/*
36
- usr/share/doc/*
37
- usr/share/eclipse/*
38
- usr/share/gimp/2.0/help/en/images/*
39
- usr/share/gtk-doc/html/*
40
- usr/share/krita/*
41
- usr/share/texmf/*
42
- usr/share/xemacs21/*
43
- usr/x86_64-w64-mingw32/*
3
+
4
+ # this list is intentionally blank
@@ -3,9 +3,8 @@
3
3
  var/backups/*
4
4
  var/cache/*
5
5
  var/lib/aide/*
6
-
7
- # look here for apt problem!
8
6
  var/lib/apt/*~
7
+ var/lib/apt/cache/*
9
8
  var/lib/apt/cdroms.list
10
9
  var/lib/apt/daily_lock
11
10
  var/lib/apt/extended_states
@@ -13,8 +12,6 @@ var/lib/apt/listchanges.db
13
12
  var/lib/apt/lists/
14
13
  var/lib/apt/mirrors/
15
14
  var/lib/apt/periodic/
16
- var/lib/apt/cache/*
17
- ##
18
15
  var/lib/aptitude/*.old
19
16
  var/lib/cache/*
20
17
  var/lib/dbus/machine-id
@@ -22,9 +19,11 @@ var/lib/dhcp/*
22
19
  var/lib/dkms/wireguard/*
23
20
  var/lib/dpkg/*~old
24
21
  var/lib/gems/2.7.0/cache/*
25
- #var/lib/snapd/*
26
22
  var/log/*.log
27
23
  var/log/*.log.?
28
24
  var/log/*/*
29
25
  var/spool/*
30
26
  var/tmp/*
27
+
28
+
29
+ #var/lib/snapd/*
package/conf/yolk.yaml ADDED
@@ -0,0 +1,52 @@
1
+ packages:
2
+ - cryptsetup
3
+ - grub-efi-amd64
4
+ - grub-pc
5
+ - keyutils
6
+ - shim-signed
7
+ ############################################
8
+ # optional packages: yoi can add or remove
9
+ ############################################
10
+ #- amd64-microcode_3.20230808.1.1~deb12u1_amd64.deb
11
+ #- atmel-firmware_1.3-7_all.deb
12
+ #- b43-fwcutter_019-8_amd64.deb
13
+ #- bluez-firmware_1.2-9_all.deb
14
+ #- cheese_43.0-1_amd64.deb
15
+ #- cheese-common_43.0-1_all.deb
16
+ #- cups_2.4.2-3+deb12u5_amd64.deb
17
+ #- cups-bsd_2.4.2-3+deb12u5_amd64.deb
18
+ #- cups-client_2.4.2-3+deb12u5_amd64.deb
19
+ #- cups-common_2.4.2-3+deb12u5_all.deb
20
+ #- cups-core-drivers_2.4.2-3+deb12u5_amd64.deb
21
+ #- cups-daemon_2.4.2-3+deb12u5_amd64.deb
22
+ #- cups-ipp-utils_2.4.2-3+deb12u5_amd64.deb
23
+ #- cups-ppdc_2.4.2-3+deb12u5_amd64.deb
24
+ #- cups-server-common_2.4.2-3+deb12u5_all.deb
25
+ #- dahdi-firmware-nonfree_2.11.1.0.20170917-2_all.deb
26
+ #- firmware-amd-graphics_20230210-5_all.deb
27
+ #- firmware-ast_20140808-7_all.deb
28
+ #- firmware-b43-installer_019-8_all.deb
29
+ #- firmware-b43legacy-installer_019-8_all.deb
30
+ #- firmware-bnx2_20230210-5_all.deb
31
+ #- firmware-bnx2x_20230210-5_all.deb
32
+ #- firmware-brcm80211_20230210-5_all.deb
33
+ #- firmware-intel-sound_20230210-5_all.deb
34
+ #- firmware-ipw2x00_20230210-5_all.deb
35
+ #- firmware-ivtv_20230210-5_all.deb
36
+ #- firmware-iwlwifi_20230210-5_all.deb
37
+ #- firmware-linux-nonfree_20230210-5_all.deb
38
+ #- firmware-realtek_20230210-5_all.deb
39
+ #- firmware-realtek-rtl8723cs-bt_20181104-2_all.deb
40
+ #- firmware-sof-signed_2.2.4-1_all.deb
41
+ #- firmware-zd1211_1.5-10_all.deb
42
+ #- intel-microcode_3.20231114.1~deb12u1_amd64.deb
43
+ #- libcheese-gtk25_43.0-1_amd64.deb
44
+ #- libcheese8_43.0-1_amd64.deb
45
+ #- libcups2_2.4.2-3+deb12u5_amd64.deb
46
+ #- libcupsimage2_2.4.2-3+deb12u5_amd64.deb
47
+ #- libsane_1.2.1-2_amd64.deb
48
+ #- libsane-common_1.2.1-2_all.deb
49
+ #- libsane1_1.2.1-2_amd64.deb
50
+ #- sane_1.0.14-17_amd64.deb
51
+ #- sane-airscan_0.99.27-1+b1_amd64.deb
52
+ #- sane-utils_1.2.1-2_amd64.deb
@@ -44,8 +44,8 @@ export default class Bleach {
44
44
  }
45
45
  await exec('apt-get clean', echo);
46
46
  await exec('apt-get autoclean', echo);
47
- const dest = '/var/lib/apt/lists/';
48
- rmdir(dest, verbose);
47
+ const lockFile = '/var/lib/apt/lists/lock';
48
+ await exec(`rm ${lockFile} -rf`, echo);
49
49
  }
50
50
  /**
51
51
  * cleanHistory
@@ -25,10 +25,8 @@ export default class Daddy {
25
25
  * @param verbose
26
26
  */
27
27
  async helpMe(reset = false, isCustom = false, fileCustom = '', verbose = false) {
28
- console.log("reset: ", reset);
29
- console.log("isCustom: ", isCustom);
30
28
  if (isCustom) {
31
- console.log("fileCustom: ", fileCustom);
29
+ console.log("using custom file: ", fileCustom);
32
30
  }
33
31
  // Controllo configurazione
34
32
  if (!Pacman.configurationCheck()) {
@@ -47,16 +45,17 @@ export default class Daddy {
47
45
  if (await this.settings.load()) {
48
46
  config = this.settings.config;
49
47
  config.compression = 'fast';
50
- if (reset) {
51
- // Reset configuration
48
+ if (reset || isCustom) {
52
49
  if (config.snapshot_prefix === '') {
53
50
  config.snapshot_prefix = Utils.snapshotPrefix(this.settings.distro.distroId, this.settings.distro.codenameId);
54
51
  }
55
52
  jsonConf = JSON.stringify(config);
56
- console.log("reset");
57
53
  }
58
- else if (isCustom) {
59
- // Custom configuration
54
+ else {
55
+ jsonConf = await this.editConfig(config);
56
+ }
57
+ // Custom configuration
58
+ if (isCustom) {
60
59
  const conf = fs.readFileSync(fileCustom, 'utf8');
61
60
  const confCustom = yaml.load(conf);
62
61
  config.snapshot_basename = confCustom.snapshot_basename;
@@ -67,11 +66,6 @@ export default class Daddy {
67
66
  config.theme = confCustom.theme;
68
67
  jsonConf = JSON.stringify(config);
69
68
  }
70
- else {
71
- // default configuration
72
- jsonConf = await this.editConfig(config);
73
- console.log("edit");
74
- }
75
69
  // Save new configuration
76
70
  const confNew = JSON.parse(jsonConf);
77
71
  config.snapshot_basename = confNew.snapshot_basename;
@@ -185,6 +185,12 @@ class Distro {
185
185
  this.codenameLikeId = 'jammy';
186
186
  break;
187
187
  }
188
+ case 'noble': {
189
+ // Ubuntu 24.04 noble LTS
190
+ this.distroLike = 'Ubuntu';
191
+ this.codenameLikeId = 'noble';
192
+ break;
193
+ }
188
194
  case 'devel': {
189
195
  // Ubuntu rhino
190
196
  this.distroLike = 'Ubuntu';
@@ -128,6 +128,11 @@ export default class Incubator {
128
128
  await jammy.create();
129
129
  break;
130
130
  }
131
+ case 'noble': {
132
+ const noble = new Focal(this.installer, this.remix, this.distro, this.user_opt, release, this.theme, this.isClone, this.verbose);
133
+ await noble.create();
134
+ break;
135
+ }
131
136
  case 'devel': {
132
137
  const devel = new Focal(this.installer, this.remix, this.distro, this.user_opt, release, this.theme, this.isClone, this.verbose);
133
138
  await devel.create();
@@ -28,7 +28,7 @@ export default class Ovary {
28
28
  theme: string;
29
29
  volid: string;
30
30
  toNull: string;
31
- sidecar: string;
31
+ genisoimage: boolean;
32
32
  verbose: boolean;
33
33
  /**
34
34
  * Add or remove exclusion
@@ -159,7 +159,7 @@ export default class Ovary {
159
159
  * @param unsecure
160
160
  * @param verbose
161
161
  */
162
- produce(clone: boolean | undefined, cryptedclone: boolean | undefined, scriptOnly: boolean | undefined, yolkRenew: boolean | undefined, release: boolean | undefined, myAddons: IAddons, myLinks: string[], excludes: IExcludes, nointeractive?: boolean, noicons?: boolean, unsecure?: boolean, sidecar?: string, verbose?: boolean): Promise<void>;
162
+ produce(clone: boolean | undefined, cryptedclone: boolean | undefined, scriptOnly: boolean | undefined, yolkRenew: boolean | undefined, release: boolean | undefined, myAddons: IAddons, myLinks: string[], excludes: IExcludes, nointeractive?: boolean, noicons?: boolean, unsecure?: boolean, verbose?: boolean): Promise<void>;
163
163
  /**
164
164
  * syslinux
165
165
  */
@@ -52,7 +52,7 @@ export default class Ovary {
52
52
  theme = '';
53
53
  volid = '';
54
54
  toNull = '';
55
- sidecar = '';
55
+ genisoimage = false;
56
56
  verbose = false;
57
57
  /**
58
58
  * Add or remove exclusion
@@ -93,7 +93,7 @@ export default class Ovary {
93
93
  */
94
94
  const dirs = fs.readdirSync('/');
95
95
  const startLine = '#############################################################';
96
- const titleLine = '# -----------------------------------------------------------';
96
+ const titleLine = '# ---------------------------------------------------------';
97
97
  const endLine = '# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n';
98
98
  let lnkDest = '';
99
99
  let cmd = '';
@@ -687,6 +687,9 @@ export default class Ovary {
687
687
  console.log();
688
688
  console.log('Remember, on liveCD user = ' + chalk.cyanBright(this.settings.config.user_opt) + '/' + chalk.cyanBright(this.settings.config.user_opt_passwd));
689
689
  console.log(' root = ' + chalk.cyanBright('root') + '/' + chalk.cyanBright(this.settings.config.root_passwd));
690
+ if (this.genisoimage) {
691
+ console.log(`Note: format UDF, generated by ${chalk.cyanBright('genisoimage')}`);
692
+ }
690
693
  }
691
694
  /**
692
695
  * initrdArch()
@@ -839,14 +842,6 @@ export default class Ovary {
839
842
  cmd = `cp ${path.resolve(__dirname, '../../conf/README.md')} ${this.settings.config.snapshot_dir}README.md`;
840
843
  this.tryCatch(cmd);
841
844
  }
842
- // sidecar
843
- if (this.sidecar !== '') {
844
- this.sidecar = path.resolve(this.sidecar);
845
- cmd = `mkdir -p ${this.settings.iso_work}sidecar`;
846
- this.tryCatch(cmd);
847
- cmd = `cp ${this.sidecar}/* ${this.settings.iso_work}sidecar -R`;
848
- this.tryCatch(cmd);
849
- }
850
845
  // Ovarium
851
846
  if (!fs.existsSync(this.settings.work_dir.ovarium)) {
852
847
  cmd = `mkdir -p ${this.settings.work_dir.ovarium}`;
@@ -1280,8 +1275,7 @@ export default class Ovary {
1280
1275
  * @param unsecure
1281
1276
  * @param verbose
1282
1277
  */
1283
- async produce(clone = false, cryptedclone = false, scriptOnly = false, yolkRenew = false, release = false, myAddons, myLinks, excludes, nointeractive = false, noicons = false, unsecure = false, sidecar = '', verbose = false) {
1284
- this.sidecar = sidecar;
1278
+ async produce(clone = false, cryptedclone = false, scriptOnly = false, yolkRenew = false, release = false, myAddons, myLinks, excludes, nointeractive = false, noicons = false, unsecure = false, verbose = false) {
1285
1279
  this.verbose = verbose;
1286
1280
  this.echo = Utils.setEcho(verbose);
1287
1281
  if (this.verbose) {
@@ -1701,6 +1695,27 @@ export default class Ovary {
1701
1695
  uefi_isohybridGptBasdat = '-isohybrid-gpt-basdat';
1702
1696
  uefi_noEmulBoot = '-no-emul-boot';
1703
1697
  }
1698
+ if (Pacman.packageIsInstalled('genisoimage')) {
1699
+ this.genisoimage = true;
1700
+ command = `genisoimage \
1701
+ -iso-level 3 \
1702
+ -allow-limited-size \
1703
+ -joliet-long \
1704
+ -r \
1705
+ -V ${this.volid} \
1706
+ -cache-inodes \
1707
+ -J \
1708
+ -l \
1709
+ -b isolinux/isolinux.bin \
1710
+ -c isolinux/boot.cat \
1711
+ -no-emul-boot \
1712
+ -boot-load-size 4 \
1713
+ -boot-info-table \
1714
+ -eltorito-alt-boot \
1715
+ -e boot/grub/efiboot.img \
1716
+ -o ${output} ${this.settings.iso_work}`;
1717
+ return command;
1718
+ }
1704
1719
  // xorriso
1705
1720
  command = `xorriso -as mkisofs \
1706
1721
  -J \
@@ -222,6 +222,7 @@ export default class Pacman {
222
222
  shx.cp(path.resolve(__dirname, '../../conf/tools.yaml'), config_tools);
223
223
  shx.cp(path.resolve(__dirname, '../../conf/krill.yaml'), confRoot);
224
224
  shx.cp(path.resolve(__dirname, '../../conf/derivatives.yaml'), confRoot);
225
+ shx.cp(path.resolve(__dirname, '../../conf/yolk.yaml'), confRoot);
225
226
  // init
226
227
  shx.cp(path.resolve(__dirname, '../../conf/init/unattended.sh'), '/etc/penguins-eggs.d/init');
227
228
  shx.chmod('+x', '/etc/penguins-eggs.d/init/unattended.sh');
@@ -384,11 +385,11 @@ export default class Pacman {
384
385
  await exec(`cp -r ${buster}/calamares/modules/unpackfs.yml ${dest}/calamares/modules/unpackfs.yml`, echo);
385
386
  await exec(`cp -r ${buster}/calamares/modules/displaymanager.yml ${dest}/calamares/modules/displaymanager.yml`, echo);
386
387
  /**
387
- * Ubuntu 21.10 impish: eredita da focal e buster
388
+ * Ubuntu 22.04 jammy: eredita da focal e buster
388
389
  */
389
390
  }
390
- else if (this.distro().codenameLikeId === 'impish') {
391
- const dest = '/etc/penguins-eggs.d/distros/impish';
391
+ else if (this.distro().codenameLikeId === 'jammy') {
392
+ const dest = '/etc/penguins-eggs.d/distros/jammy';
392
393
  const focal = `${rootPen}/conf/distros/focal/*`;
393
394
  await exec(`cp -r ${focal} ${dest}`, echo);
394
395
  await exec(`cp -r ${buster}/calamares/calamares-modules/cleanup ${dest}/calamares/calamares-modules/cleanup`, echo);
@@ -399,11 +400,12 @@ export default class Pacman {
399
400
  await exec(`cp -r ${buster}/calamares/modules/unpackfs.yml ${dest}/calamares/modules/unpackfs.yml`, echo);
400
401
  await exec(`cp -r ${buster}/calamares/modules/displaymanager.yml ${dest}/calamares/modules/displaymanager.yml`, echo);
401
402
  /**
402
- * Ubuntu 22.04 jammy: eredita da focal e buster
403
+ * Ubuntu noble: eredita da devel e buster
404
+ *
403
405
  */
404
406
  }
405
- else if (this.distro().codenameLikeId === 'jammy') {
406
- const dest = '/etc/penguins-eggs.d/distros/jammy';
407
+ else if (this.distro().codenameLikeId === 'noble') {
408
+ const dest = '/etc/penguins-eggs.d/distros/noble';
407
409
  const focal = `${rootPen}/conf/distros/focal/*`;
408
410
  await exec(`cp -r ${focal} ${dest}`, echo);
409
411
  await exec(`cp -r ${buster}/calamares/calamares-modules/cleanup ${dest}/calamares/calamares-modules/cleanup`, echo);
@@ -414,14 +416,14 @@ export default class Pacman {
414
416
  await exec(`cp -r ${buster}/calamares/modules/unpackfs.yml ${dest}/calamares/modules/unpackfs.yml`, echo);
415
417
  await exec(`cp -r ${buster}/calamares/modules/displaymanager.yml ${dest}/calamares/modules/displaymanager.yml`, echo);
416
418
  /**
417
- * Ubuntu lunar/rhino: eredita da devel e buster
419
+ * Ubuntu rhino: eredita da devel e buster
418
420
  *
419
421
  */
420
422
  }
421
423
  else if (this.distro().codenameLikeId === 'devel') {
422
424
  const dest = '/etc/penguins-eggs.d/distros/devel';
423
- const focal = `${rootPen}/conf/distros/devel/*`;
424
- await exec(`cp -r ${focal} ${dest}`, echo);
425
+ const devel = `${rootPen}/conf/distros/devel/*`;
426
+ await exec(`cp -r ${devel} ${dest}`, echo);
425
427
  await exec(`cp -r ${buster}/calamares/calamares-modules/cleanup ${dest}/calamares/calamares-modules/cleanup`, echo);
426
428
  await exec(`cp -r ${buster}/calamares/calamares-modules/sources-yolk ${dest}/calamares/calamares-modules/sources-yolk`, echo);
427
429
  await exec(`cp -r ${buster}/calamares/calamares-modules/sources-yolk-undo ${dest}/calamares/calamares-modules/sources-yolk-undo`, echo);
@@ -7,6 +7,7 @@
7
7
  */
8
8
  import fs from 'node:fs';
9
9
  import shx from 'shelljs';
10
+ import yaml from 'js-yaml';
10
11
  import { exec } from '../lib/utils.js';
11
12
  import Bleach from './bleach.js';
12
13
  import Pacman from './pacman.js';
@@ -51,11 +52,11 @@ export default class Yolk {
51
52
  await exec(`mkdir ${this.yolkDir} -p`, this.echo);
52
53
  await exec(`chown _apt:root ${this.yolkDir} -R`, this.echo);
53
54
  }
54
- // packages we need
55
- const pkgs = ['cryptsetup', 'grub-efi-amd64', 'grub-pc', 'keyutils', 'shim-signed'];
55
+ const yolk_yaml = '/etc/penguins-eggs.d/yolk.yaml';
56
+ const yolk = yaml.load(fs.readFileSync(yolk_yaml, 'utf8'));
56
57
  process.chdir(this.yolkDir);
57
58
  Utils.warning(`Downloading packages and its dependencies`);
58
- for (const pkg of pkgs) {
59
+ for (const pkg of yolk.packages) {
59
60
  Utils.warning(`- ${pkg}`);
60
61
  cmd = `apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances ${pkg} | grep "^\\w" | sort -u`;
61
62
  let depends = pkg + '\n';
@@ -24,7 +24,6 @@ export default class Produce extends Command {
24
24
  prefix: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
25
25
  release: import("@oclif/core/interfaces").BooleanFlag<boolean>;
26
26
  script: import("@oclif/core/interfaces").BooleanFlag<boolean>;
27
- sidecar: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
28
27
  standard: import("@oclif/core/interfaces").BooleanFlag<boolean>;
29
28
  theme: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
30
29
  unsecure: import("@oclif/core/interfaces").BooleanFlag<boolean>;
@@ -44,7 +44,6 @@ export default class Produce extends Command {
44
44
  prefix: Flags.string({ char: 'P', description: 'prefix' }),
45
45
  release: Flags.boolean({ description: 'release: remove penguins-eggs, calamares and dependencies after installation' }),
46
46
  script: Flags.boolean({ char: 's', description: 'script mode. Generate scripts to manage iso build' }),
47
- sidecar: Flags.string({ description: 'add a sidecar folder on your ISO with arbitrary contents' }),
48
47
  standard: Flags.boolean({ char: 'f', description: 'standard compression: xz -b 1M' }),
49
48
  theme: Flags.string({ description: 'theme for livecd, calamares branding and partitions' }),
50
49
  unsecure: Flags.boolean({ char: 'u', description: '/root contents are included on live' }),
@@ -143,13 +142,6 @@ export default class Produce extends Command {
143
142
  const yolkRenew = flags.yolk;
144
143
  const { nointeractive } = flags;
145
144
  const { noicon } = flags;
146
- const { sidecar } = flags;
147
- if (sidecar !== undefined) {
148
- if (!fs.existsSync(sidecar)) {
149
- Utils.warning('sidecar: ' + chalk.white(sidecar) + ' not found!');
150
- process.exit();
151
- }
152
- }
153
145
  // if clone or cryptedclone unsecure = true
154
146
  const unsecure = flags.unsecure || clone || cryptedclone;
155
147
  /**
@@ -196,7 +188,7 @@ export default class Produce extends Command {
196
188
  const ovary = new Ovary();
197
189
  Utils.warning('Produce an egg...');
198
190
  if (await ovary.fertilization(prefix, basename, theme, compression, !nointeractive)) {
199
- await ovary.produce(clone, cryptedclone, scriptOnly, yolkRenew, release, myAddons, myLinks, excludes, nointeractive, noicon, unsecure, sidecar, verbose);
191
+ await ovary.produce(clone, cryptedclone, scriptOnly, yolkRenew, release, myAddons, myLinks, excludes, nointeractive, noicon, unsecure, verbose);
200
192
  ovary.finished(scriptOnly);
201
193
  }
202
194
  }
Binary file
@@ -6,10 +6,10 @@
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1">
7
7
  </head>
8
8
  <body>
9
- <h1>eggs(1) -- the reproductive system of penguins: eggs v10.0.12</h1>
9
+ <h1>eggs(1) -- the reproductive system of penguins: eggs v10.0.18</h1>
10
10
  <h1>SYNOPSIS</h1>
11
11
  <p>Install Debian families (debian/devuan/ubuntu)</p>
12
- <pre><code>$ sudo dpkg -i penguins-eggs_10.0.12-bionic-1_amd64.deb
12
+ <pre><code>$ sudo dpkg -i penguins-eggs_10.0.18-bionic-1_amd64.deb
13
13
  </code></pre>
14
14
  <p>Install Arch families (Arch, manjaro Linux)</p>
15
15
  <p>Arch from AUR</p>
@@ -30,7 +30,7 @@ $ makepkg -si
30
30
  <h1>USAGE</h1>
31
31
  <pre><code>$ eggs (-v|--version|version)
32
32
 
33
- penguins-eggs/10.0.12
33
+ penguins-eggs/10.0.18
34
34
  $ eggs --help [COMMAND]
35
35
 
36
36
  USAGE
@@ -382,8 +382,7 @@ EXAMPLES
382
382
  <p>produce a live image from your system whithout your data</p>
383
383
  <pre><code>USAGE
384
384
  $ eggs produce [--addons &#x3C;value>...] [--basename &#x3C;value>] [-c] [-C] [--excludes &#x3C;value>...] [-h] [--links
385
- &#x3C;value>...] [-m] [-N] [-n] [-p] [-P &#x3C;value>] [--release] [-s] [--sidecar &#x3C;value>] [-f] [--theme &#x3C;value>] [-u] [-v]
386
- [-y]
385
+ &#x3C;value>...] [-m] [-N] [-n] [-p] [-P &#x3C;value>] [--release] [-s] [-f] [--theme &#x3C;value>] [-u] [-v] [-y]
387
386
 
388
387
  FLAGS
389
388
  -C, --cryptedclone crypted clone
@@ -404,7 +403,6 @@ FLAGS
404
403
  --excludes=&#x3C;value>... use: static, homes, home
405
404
  --links=&#x3C;value>... desktop links
406
405
  --release release: remove penguins-eggs, calamares and dependencies after installation
407
- --sidecar=&#x3C;value> add a sidecar folder on your ISO with arbitrary contents
408
406
  --theme=&#x3C;value> theme for livecd, calamares branding and partitions
409
407
 
410
408
  DESCRIPTION
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "penguins-eggs",
3
3
  "shortName": "eggs",
4
4
  "description": "A remaster system tool, compatible with Arch, Debian, Devuan, Ubuntu and others",
5
- "version": "10.0.12",
5
+ "version": "10.0.18",
6
6
  "author": "Piero Proietti",
7
7
  "bin": {
8
8
  "eggs": "./bin/run.js"
package/scripts/_eggs CHANGED
@@ -319,11 +319,11 @@ _arguments -S \
319
319
  "(-P --prefix)"{-P,--prefix}"[prefix]:file:_files" \
320
320
  --release"[release: remove penguins-eggs, calamares and dependencies after installation]" \
321
321
  "(-s --script)"{-s,--script}"[script mode. Generate scripts to manage iso build]" \
322
- --sidecar"[add a sidecar folder on your ISO with arbitrary contents]:file:_files" \
323
322
  "(-f --standard)"{-f,--standard}"[standard compression: xz -b 1M]" \
324
323
  --theme"[theme for livecd, calamares branding and partitions]:file:_files" \
325
324
  "(-u --unsecure)"{-u,--unsecure}"[/root contents are included on live]" \
326
325
  "(-v --verbose)"{-v,--verbose}"[verbose]" \
326
+ "(-U --udf)"{-U,--udf}"[use UDF format on ISO with genisoimage breacking 4.7 G limit]" \
327
327
  "(-y --yolk)"{-y,--yolk}"[force yolk renew]" \
328
328
  --help"[Show help for command]" \
329
329
  "*: :_files" ;;
package/scripts/eggs.bash CHANGED
@@ -23,7 +23,7 @@ install --btrfs --chroot --crypted --domain --halt --help --ip --nointeractive -
23
23
  krill --btrfs --chroot --crypted --domain --halt --help --ip --nointeractive --none --pve --random --small --suspend --unattended --verbose
24
24
  kill --help --isos --nointeractive --verbose
25
25
  mom --help
26
- produce --addons --basename --clone --cryptedclone --excludes --help --links --max --noicon --nointeractive --pendrive --prefix --release --script --sidecar --standard --theme --unsecure --verbose --yolk
26
+ produce --addons --basename --clone --cryptedclone --excludes --help --links --max --noicon --nointeractive --pendrive --prefix --release --script --standard --theme --unsecure --verbose --udf --yolk
27
27
  status --help --verbose
28
28
  syncfrom --delete --file --help --rootdir --verbose
29
29
  syncto --excludes --file --help --verbose