diff options
Diffstat (limited to 'content/projects/bashtard')
-rw-r--r-- | content/projects/bashtard/_index.md | 17 | ||||
-rw-r--r-- | content/projects/bashtard/releases/1.0.0.md | 9 | ||||
-rw-r--r-- | content/projects/bashtard/releases/2.0.0.md | 68 | ||||
-rw-r--r-- | content/projects/bashtard/releases/2.0.1.md | 19 | ||||
-rw-r--r-- | content/projects/bashtard/releases/2.0.2.md | 13 | ||||
-rw-r--r-- | content/projects/bashtard/releases/2.1.0.md | 29 | ||||
-rw-r--r-- | content/projects/bashtard/releases/_index.md | 4 |
7 files changed, 159 insertions, 0 deletions
diff --git a/content/projects/bashtard/_index.md b/content/projects/bashtard/_index.md new file mode 100644 index 0000000..9e31798 --- /dev/null +++ b/content/projects/bashtard/_index.md @@ -0,0 +1,17 @@ +--- +title: Bashtard +repository: https://git.tyil.nl/bashtard +languages: +- Bash +--- + +Bashtard is a configuration management system built on the idea of simplicity +for the user. It lets you write reasonably simple Bash scripts to configure +your systems, while providing just enough abstractions to make it easy to +work with various base systems. + +It is similar in purpose as other configuration management tools, such as +Ansible and Puppet, however Bashtard tries to keep dependencies to a minimum +while still providing some abstractions to make the process easier. This +allows Bashtard to run in more constrained environments, with the abstractions +allowing it to manage a varied array of systems in a single network. diff --git a/content/projects/bashtard/releases/1.0.0.md b/content/projects/bashtard/releases/1.0.0.md new file mode 100644 index 0000000..ef54893 --- /dev/null +++ b/content/projects/bashtard/releases/1.0.0.md @@ -0,0 +1,9 @@ +--- +title: Bashtard v1.0.0 +date: 2022-05-06 +type: project-release +packages: + bashtard-1.0.0.tar.gz: https://dist.tyil.nl/packages/bashtard/bashtard-1.0.0.tar.gz +--- + +This is the initial release of Bashtard. diff --git a/content/projects/bashtard/releases/2.0.0.md b/content/projects/bashtard/releases/2.0.0.md new file mode 100644 index 0000000..29623a7 --- /dev/null +++ b/content/projects/bashtard/releases/2.0.0.md @@ -0,0 +1,68 @@ +--- +title: Bashtard v2.0.0 +date: 2023-05-22 +type: project-release +packages: + bashtard-2.0.0.deb: https://dist.tyil.nl/bashtard/bashtard-2.0.0/bashtard-2.0.0.deb + bashtard-2.0.0.tar.gz: https://dist.tyil.nl/bashtard/bashtard-2.0.0/bashtard-2.0.0.tar.gz +--- + +### Added + +- The `var` subcommand is now referenced in `usage()`. +- A `pkg` subcommand has been added, to allow for direct interaction with the + `pkg_*()` utilities provided by Bashtard. +- `config_subkeys()` and `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. +- A `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 + the box. +- The `Makefile` has been extended with targets for creating packages for + GNU+Linux distributions. +- The `$BASHTARD_PLATFORM` variable now contains an additional entry, `init`, to + allow for handling different init systems on GNU+Linux in a cleaner fashion. +- A `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. +- A `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. +- A `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. +- A `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 `add` or `sync`, any variables declared to be `required` + in the `$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. +- A `top` subcommand has been added to give some generic information of all + nodes known to Bashtard. It uses information from the `sysinfo` subcommand, + which it will pull in through an `ssh` invocation. + +### Changed + +- The `ssh` subcommand's configuration has been nested under `bashtard`, e.g. + `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 `grep` + on it. +- `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 `date`. +- All manpages now include a `NAME` section. +- The `sync` subcomman will now `stash` any changes before it attempts to + `pull`. Afterwards, `stash pop` will be ran to apply the last `stash`ed + changes again. diff --git a/content/projects/bashtard/releases/2.0.1.md b/content/projects/bashtard/releases/2.0.1.md new file mode 100644 index 0000000..e8bf49c --- /dev/null +++ b/content/projects/bashtard/releases/2.0.1.md @@ -0,0 +1,19 @@ +--- +title: Bashtard v2.0.1 +date: 2023-09-25 +type: project-release +packages: + bashtard-2.0.1.deb: https://dist.tyil.nl/bashtard/bashtard-2.0.1/bashtard-2.0.1.deb + bashtard-2.0.1.tar.gz: https://dist.tyil.nl/bashtard/bashtard-2.0.1/bashtard-2.0.1.tar.gz +--- + +### Added + +- A new `make` target has been added to build a .tar.gz distributable. + +### Changed + +- The `svc_` utils should now check which init service you're using when using a + linux system. The supported options are still only openrc and systemd. +- The `pull` subcommand should now properly return with exit-code 0 if no + problem were encountered. diff --git a/content/projects/bashtard/releases/2.0.2.md b/content/projects/bashtard/releases/2.0.2.md new file mode 100644 index 0000000..5acaaa9 --- /dev/null +++ b/content/projects/bashtard/releases/2.0.2.md @@ -0,0 +1,13 @@ +--- +title: Bashtard v2.0.2 +date: 2024-02-28 +type: project-release +packages: + bashtard-2.0.2.deb: https://dist.tyil.nl/bashtard/bashtard-2.0.2/bashtard-2.0.2.deb + bashtard-2.0.2.tar.gz: https://dist.tyil.nl/bashtard/bashtard-2.0.2/bashtard-2.0.2.tar.gz +--- + +### Fixed + +- Configuration values with `=` in their value part should now work properly + with `file_template`. Keys with `=` in them are still *not supported*. diff --git a/content/projects/bashtard/releases/2.1.0.md b/content/projects/bashtard/releases/2.1.0.md new file mode 100644 index 0000000..24caa53 --- /dev/null +++ b/content/projects/bashtard/releases/2.1.0.md @@ -0,0 +1,29 @@ +--- +title: Bashtard v2.1.0 +date: 2024-04-02 +type: project-release +packages: + bashtard-2.1.0.deb: https://dist.tyil.nl/bashtard/bashtard-2.1.0/bashtard-2.1.0.deb + bashtard-2.1.0.tar.gz: https://dist.tyil.nl/bashtard/bashtard-2.1.0/bashtard-2.1.0.tar.gz +--- + +### Added + +- Configuration variables can be assigned values of other variables with the + `&=` assignment. This allows a single value to be re-used dynamically, rather + than having to explicitly set the same value several times. +- A `zap` command has been added to remove a playbook from the registry without + running the playbook's `playbook_del()` function. This is intended to easily + remove registry entries when a playbook itself has been deleted or is + otherwise broken in a way that the regular `del` subcommand cannot fix. + +### Changed + +- The `description.txt` is now allowed to be used without the `.txt` suffix. + Usage with the `.txt` suffix continues to be supported as well. + +### Fixed + +- Passing an empty string as default value to `config` should now properly + return an empty string without a warning about the configuration key not + existing. diff --git a/content/projects/bashtard/releases/_index.md b/content/projects/bashtard/releases/_index.md new file mode 100644 index 0000000..c98ddda --- /dev/null +++ b/content/projects/bashtard/releases/_index.md @@ -0,0 +1,4 @@ +--- +title: Bashtard +type: project-release +--- |