There are use cases where pi-gen can be useful that need different
image generation that the current defaults. Rather than force such
users to require carrying modified versions of the default exports,
allow users to specify alternate exports (e.g. instead of export-image
and export-noobs, or in addition to these). We do this using a
mechanism similar to STAGE_LIST, except that the lists of images are
per-stage and default to paying attention to the presence of
EXPORT_IMAGE and EXPORT_NOOBS as is currently the case.
Signed-off-by: Daniel F. Dickinson <cshored@thecshore.com>
* SC1091: the `config` file might not be present, which is normal.
* SC2086: Double quote to prevent globbing and word splitting.
Tested clean output using: `find -name "*.sh" -exec shellcheck -x {} \;`
* Made more specific shellcheck disables
* Fixed variable quoting (SC2086,SC2064)
* Use `$*` expansion instead of `$@` when not using arrays (SC2124)
* Use cleaner `$()` syntax instead of back quotes (SC2006)
* Improved comparator (SC2166)
* Minor improvements in coding style
Tested clean output using: `find -name "*.sh" | xargs -n1 shellcheck -x`.
Check that the username is valid before doing any work. Use the default regex from debian's adduser.conf. Will also avoid risk of special characters causing issues.
* Occasionally, it is necessary to symbolically link the pi-gen/work
directory to a different place on the filesystem. This is true if
the current partition is low on space, or when building within
vagrant virtual machine shared mounts which do not support all
regular fs operations.
* Without this change, the pi-gen build will fail to unmount because
the OS 'mount' command returns canonical paths which fails to match
the symbolically linked path to 'work' dir.
* Add MAX_STAGES variable
If set, only runs up to that stage
* Show "Skipping stageX" message for all skipped stages
* Add RUN_STAGE variable to run a single stage
* Document RUN_STAGE and MAX_STAGE
* Removed SKIP file support for main stage
* build.sh: Support comments in package files
This patch allows the use of hash comments inside patch files. It's a
little ugly, but it strips comments and collapses all whitespace down to
single space characters between package names. It handles comments
anywhere in a line, as well.
Was unsure if \ continuation of the long sed line or the inclusion of a
couple of lines of comments explaining what the sed expressions are
doing would be appreciated, so didn't include them in this patch.
* build.sh: whitespace fix
* build.sh: Use sed script for packages files
Broke the sed expressions out of build.sh and put them their own
documented sed script. This greatly improves readability and avoids
build.sh getting messier.
Broke the substitution command into two separate subs. The first just
deletes comments, and the second collapses all whitespace into a single
space. This too is easier to read, and catches a couple of edge cases
that would result it not all whitespace being collapsed. The result may
still have (one) leading and/or trailing space, which is acceptable.
In that case (i.e. stage2/01-sys-tweaks and stage2/02-net-tweaks) a
directory with a same name (00-pc) is getting created for both quilt
patch sets. This might yield a situation when second patch set is not
applied.
The fix is to come up with a more sophisticated naming convention for intermediate
patchset directory (which .pc symlinks to) and create separate
directories for each patchset.