If there is a space in the base anywhere, the scripts fails to start.
This is due to the default separator used in bash (which is a space).
This default separator can be change by setting the variable $IFS.
In `build.sh`, the old IFS variable is saved and then replaced by
`\n\b`. At the end of the script, the saved IFS is set back.
In `build-docker.sh`, a simple double quote was enough.
Exposed RELEASE as a configurable variable and updated README.md. As a
bonus, there is only on place to change the release name when the next
release is stable now.
* 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.