Age | Commit message (Collapse) | Author |
|
This switch skips the deploy function as well as the cleanup process,
executing the extraction process before exiting. This will enable easier
debugging.
Note that this switch does not support a short version to avoid risk of
conflicting with downstream run.sh-provided switches (eg: -e).
|
|
Previously, we checked if the variable was empty and errored as if it
was unset. This did not allow for variables that needed an empty value.
Now we check if the variable is set and error on that. Empty is now a
valid value.
|
|
Some uploaders had an issue with the source file having '#' in the name.
Changing to '_' is still unique, but doesn't break client upload tools
(so far).
|
|
This automatically calculates sha512 and md5 checksums for the installer
when built.
|
|
This library provides the 'colorize' function. This function will color
any text from stdin with the specified escape sequence, resetting the
color changes at line end.
Useful for coloring output of commands by piping their stdout or stderr
to this function, specifying to color the output something unique.
|
|
This variable holds the absolute path to the parent directory that
contains the installer.
|
|
|
|
|
|
|
|
This provides the ensure::set function as well as the ERRNO_ENSURE
variable. The function checks if a variable is set, and returns code 1
if unset, or code 0 if set. It also distinguishes between unset and
empty (empty is considered set).
The ERRNO_ENSURE variable is set to 1 when an unset variable is passed
to ensure::set. This variable is useful for checking a list of variables
without the need to catch every return code (just check ERRNO_ENSURE for
code 1 at the end of the variable sequence).
|
|
|
|
|
|
The tar command always stores last modified timestamps. Because we are
streaming the data to tar via stdin, this data is not given to tar, so
timestamp is set to the time the package is built. This causes the
package checksums to *always* differ, which is horrible for reproducible
builds.
Since we don't really care that much about source system timestamps
since the installer becomes the source of truth, we now set last
modified timestamp to 1970-01-01. This ensures that a package built at
different times but with no modifications will yield the same checksum.
|
|
Simplified use of file variable, with a better explanation of when and
why it is used. We also now handle already-downloaded files, skipping
them.
Removed the source download loop from download_src function. Now the
function just downloads the one source uri and the loop occurs outside
this function. This enables its re-use outside of the main build
process.
|
|
|
|
Some systems are configured to display login banners for interractive
and/or non-interractive logins. This clutters up log output. Enabled
"Error" level messages only for scp command.
|
|
Previously we downloaded all sources into the current directory. For
packages that had a large number of sources, this cluttered up the
directory and made it easy to confuse included resources with external
downloaded resources.
Now we download to a local hidden directory which keeps external
resources seperated from included resources.
|
|
|
|
Install header now has a {{ DECOMPRESS }} variable that is interpolated
on run of pkgself with pkgself's value for ${DECOMPRESS}.
Also added DECOMPRESS, COMPRESS, and COMPRESSEXT variables to pkgself to
standardize compression tools and command calls across the script. This
will also make it easier to make compress tools selectable in the future
(eg: --gzip or --bzip2 will set the variables differently).
Moved install header size calculation after all interpolations with a
note that all interpolations need to occur before that line so the size
counts are accurate.
|
|
Previously, we extracted block=1B * sizeof(chunk). This was extremely
slow. Changing block size to sizeof(chunk) and count to 1, the process
is sped up by about 200x.
|
|
|
|
|
|
The libinstall resources will be used for packaging installation
libraries, such as a basic templating engine or simple shortcut
functions and aliases.
Updated LENS array to allow for an additional 8 byte archive. Also
updated archive index. Now...
1. header
2. libinstall
3. run.sh
4. payload
Added extract_libinstall function.
Along with this, also added the new libtemplate, which provides a very
basic templating engine to be used by the end user run.sh script if
needed.
|
|
|
|
Added new selfdir variable to provide the absolute path to the directory
containing the pkgself script. This will enable the easy inclusion of
installer resources (such as libraries).
Added check to ensure a Pkgfile is specified
|
|
|
|
extract_chunk_index: Added support for stdout extraction via the '-'
destination.
Added support for NOCLEANUP variable. If set, the removal of TMP will
not occur.
Added argument passthrough for install-header arguments to the deploy
function.
Some more comments
Added exports and comments for global variables SELF, TMP, PAYLOAD, and
NOCLEANUP.
Added PAYLOAD variable for the installation package to easily referece
the absolute path to its own install files within the payload archive.
|
|
Currently packages binary, creates payload index, etc. Installer
executes specified run script and cleans itself up after run.
NOTE: installer-header.sh is not released under any license at this
time, as it is packaged with other people's code. Pkgself.sh is however
GPLv3.
|