<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Bashtard</title>
    <link>https://www.tyil.nl/projects/bashtard/releases/</link>
    <description>Bashtard Releases</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 02 Apr 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://www.tyil.nl/projects/bashtard/releases/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Bashtard v2.1.0</title>
      <link>https://www.tyil.nl/projects/bashtard/releases/2.1.0/</link>
      <pubDate>Tue, 02 Apr 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.tyil.nl/projects/bashtard/releases/2.1.0/</guid>
      <description>&lt;h3 id=&#34;added&#34;&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Configuration variables can be assigned values of other variables with the
&lt;code&gt;&amp;amp;=&lt;/code&gt; assignment. This allows a single value to be re-used dynamically, rather
than having to explicitly set the same value several times.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;zap&lt;/code&gt; command has been added to remove a playbook from the registry without
running the playbook&amp;rsquo;s &lt;code&gt;playbook_del()&lt;/code&gt; 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 &lt;code&gt;del&lt;/code&gt; subcommand cannot fix.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;changed&#34;&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;description.txt&lt;/code&gt; is now allowed to be used without the &lt;code&gt;.txt&lt;/code&gt; suffix.
Usage with the &lt;code&gt;.txt&lt;/code&gt; suffix continues to be supported as well.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;fixed&#34;&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Passing an empty string as default value to &lt;code&gt;config&lt;/code&gt; should now properly
return an empty string without a warning about the configuration key not
existing.&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Bashtard v2.0.2</title>
      <link>https://www.tyil.nl/projects/bashtard/releases/2.0.2/</link>
      <pubDate>Wed, 28 Feb 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.tyil.nl/projects/bashtard/releases/2.0.2/</guid>
      <description>&lt;h3 id=&#34;fixed&#34;&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Configuration values with &lt;code&gt;=&lt;/code&gt; in their value part should now work properly
with &lt;code&gt;file_template&lt;/code&gt;. Keys with &lt;code&gt;=&lt;/code&gt; in them are still &lt;em&gt;not supported&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Bashtard v2.0.1</title>
      <link>https://www.tyil.nl/projects/bashtard/releases/2.0.1/</link>
      <pubDate>Mon, 25 Sep 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.tyil.nl/projects/bashtard/releases/2.0.1/</guid>
      <description>&lt;h3 id=&#34;added&#34;&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;A new &lt;code&gt;make&lt;/code&gt; target has been added to build a .tar.gz distributable.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;changed&#34;&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;svc_&lt;/code&gt; utils should now check which init service you&amp;rsquo;re using when using a
linux system. The supported options are still only openrc and systemd.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;pull&lt;/code&gt; subcommand should now properly return with exit-code 0 if no
problem were encountered.&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Bashtard v2.0.0</title>
      <link>https://www.tyil.nl/projects/bashtard/releases/2.0.0/</link>
      <pubDate>Mon, 22 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.tyil.nl/projects/bashtard/releases/2.0.0/</guid>
      <description>&lt;h3 id=&#34;added&#34;&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;var&lt;/code&gt; subcommand is now referenced in &lt;code&gt;usage()&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;pkg&lt;/code&gt; subcommand has been added, to allow for direct interaction with the
&lt;code&gt;pkg_*()&lt;/code&gt; utilities provided by Bashtard.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;config_subkeys()&lt;/code&gt; and &lt;code&gt;config_subkeys_for&lt;/code&gt; 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.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;backup&lt;/code&gt; 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.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;Makefile&lt;/code&gt; has been extended with targets for creating packages for
GNU+Linux distributions.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;$BASHTARD_PLATFORM&lt;/code&gt; variable now contains an additional entry, &lt;code&gt;init&lt;/code&gt;, to
allow for handling different init systems on GNU+Linux in a cleaner fashion.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;file_hash&lt;/code&gt; utility function has been added. It currently uses &lt;code&gt;md5&lt;/code&gt;, 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.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;dir_hash&lt;/code&gt; 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.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;diff&lt;/code&gt; subcommand has been added to show all non-committed changes. It is a
convenience wrapper to avoid having to change directory and run &lt;code&gt;git diff&lt;/code&gt; to
get an overview of all pending changes.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;pull&lt;/code&gt; subcommand has been added to only pull the latest changes into the
&lt;code&gt;$BASHTARD_ETCDIR&lt;/code&gt;, without running &lt;code&gt;sync&lt;/code&gt; on all the playbooks.&lt;/li&gt;
&lt;li&gt;A new global variable, &lt;code&gt;$BASHTARD_PLAYBOOK_VARS&lt;/code&gt; has been added. Currently,
its only purpose is to check for &amp;ldquo;required&amp;rdquo; variables to be used in the
playbook. Before an &lt;code&gt;add&lt;/code&gt; or &lt;code&gt;sync&lt;/code&gt;, any variables declared to be &lt;code&gt;required&lt;/code&gt;
in the &lt;code&gt;$BASHTARD_PLAYBOOK_VARS&lt;/code&gt; array will be checked to be non-empty. If any
are empty, an error will be thrown and the playbook will not be ran.&lt;/li&gt;
&lt;li&gt;A new directory has been added, &lt;code&gt;data.d&lt;/code&gt;, 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&amp;rsquo;s specific data used by the playbook,
which in turn should make re-using playbooks easier.&lt;/li&gt;
&lt;li&gt;A convenience function has been introduced, &lt;code&gt;playbook_path()&lt;/code&gt;, which can give
you the absolute path to the playbook&amp;rsquo;s base or data directory.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;top&lt;/code&gt; subcommand has been added to give some generic information of all
nodes known to Bashtard. It uses information from the &lt;code&gt;sysinfo&lt;/code&gt; subcommand,
which it will pull in through an &lt;code&gt;ssh&lt;/code&gt; invocation.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;changed&#34;&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;ssh&lt;/code&gt; subcommand&amp;rsquo;s configuration has been nested under &lt;code&gt;bashtard&lt;/code&gt;, e.g.
&lt;code&gt;ssh.host&lt;/code&gt; is now &lt;code&gt;bashtard.ssh.host&lt;/code&gt;. It should also be correctly using this
value for establishing the SSH connection.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;svc_enable()&lt;/code&gt; now checks for the &lt;code&gt;rc.d&lt;/code&gt; file to exist before running &lt;code&gt;grep&lt;/code&gt;
on it.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pkg_*()&lt;/code&gt; functions no longer &lt;em&gt;require&lt;/em&gt; a &lt;code&gt;pkg.*&lt;/code&gt; value to be defined. If one
is not set explicitly, a warning will be generated, but the original name
passed to the &lt;code&gt;pkg_*()&lt;/code&gt; function will be used by the host&amp;rsquo;s package manager.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;datetime()&lt;/code&gt; now always passes &lt;code&gt;-u&lt;/code&gt; on to &lt;code&gt;date&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;All manpages now include a &lt;code&gt;NAME&lt;/code&gt; section.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;sync&lt;/code&gt; subcomman will now &lt;code&gt;stash&lt;/code&gt; any changes before it attempts to
&lt;code&gt;pull&lt;/code&gt;. Afterwards, &lt;code&gt;stash pop&lt;/code&gt; will be ran to apply the last &lt;code&gt;stash&lt;/code&gt;ed
changes again.&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Bashtard v1.0.0</title>
      <link>https://www.tyil.nl/projects/bashtard/releases/1.0.0/</link>
      <pubDate>Fri, 06 May 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.tyil.nl/projects/bashtard/releases/1.0.0/</guid>
      <description>&lt;p&gt;This is the initial release of Bashtard.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
