var subcommand is now referenced in
pkg subcommand has been added, to allow for direct interaction with the
pkg_*() utilities provided by Bashtard.
config_subkeys_for have been added, to look up
subkeys defined in config files. These can help when you want to use a list
somewhere in your configuration.
backup subcommand has been added. This backup system uses borg, which must
be installed, but should be generic enough to be usable by most people out of
Makefile has been extended with targets for creating packages for
$BASHTARD_PLATFORM variable now contains an additional entry,
allow for handling different init systems on GNU+Linux in a cleaner fashion.
file_hash utility function has been added. It currently uses
md5, but is
written in such a fashion that this can easily be updated for the future. Its
intent is to encapsulate differences between naming and usage of hashing
utilities found on different systems.
dir_hash utility function has been added, which will give you a hash based
on the file contents of a directory. This function will find files
recursively, calculate a hash for each of them, and then calculate a hash
based on the total result. The intended goal is to allow running before and
after templating some files, to deduce whether something actually changed.
diff subcommand has been added to show all non-committed changes. It is a
convenience wrapper to avoid having to change directory and run
git diff to
get an overview of all pending changes.
pull subcommand has been added to only pull the latest changes into the
$BASHTARD_ETCDIR, without running
sync on all the playbooks.
- A new global variable,
$BASHTARD_PLAYBOOK_VARS has been added. Currently,
its only purpose is to check for “required” variables to be used in the
playbook. Before an
sync, any variables declared to be
$BASHTARD_PLAYBOOK_VARS array will be checked to be non-empty. If any
are empty, an error will be thrown and the playbook will not be ran.
- A new directory has been added,
data.d, for data that should be shared
between playbook runs. This new directory is intended to create a clearer
seperation between a playbook and a user’s specific data used by the playbook,
which in turn should make re-using playbooks easier.
- A convenience function has been introduced,
playbook_path(), which can give
you the absolute path to the playbook’s base or data directory.
top subcommand has been added to give some generic information of all
nodes known to Bashtard. It uses information from the
which it will pull in through an
ssh subcommand’s configuration has been nested under
ssh.host is now
bashtard.ssh.host. It should also be correctly using this
value for establishing the SSH connection.
svc_enable() now checks for the
rc.d file to exist before running
pkg_*() functions no longer require a
pkg.* value to be defined. If one
is not set explicitly, a warning will be generated, but the original name
passed to the
pkg_*() function will be used by the host’s package manager.
datetime() now always passes
-u on to
- All manpages now include a
sync subcomman will now
stash any changes before it attempts to
stash pop will be ran to apply the last