Why go slower & without portability?

root

================================================================================
Dash Nix
================================================================================
--------------------------------------------------------------------------------
Why go slower & without portability?
--------------------------------------------------------------------------------

:author: toastal

.. role:: ac
.. role:: t


Purpose
================================================================================

Basic Scripts for Nix that allow Dash to be used instead of its default, Bash.
Dash has faster startup time, faster execution time, & is POSIX-compatible
thereby being more portable. It would be nice to have the larger conversation
about why Nix is using Bash anyhow.

Links on that info:

• https://www.baeldung.com/linux/dash-vs-bash-performance
• https://wiki.ubuntu.com/DashAsBinSh
• https://lists.debian.org/debian-release/2007/07/msg00027.html


Usage
================================================================================

Include the overlay at ``nix/overlay/default.nix``, then you can just use it.

Classic Nix (using Nixtamal)
--------------------------------------------------------------------------------

.. code:: kdl

	// manifest.kdl
	version "0.1.0"
	inputs {
		dash-nix {
			darcs {
				repository "https://darcs.toastal.in.th/dash-nix"
				mirrors "https://smeder.ee/~toastal/dash-nix.darcs"
					"https://hub.darcs.net/toastal/darcs-nix"
			}
			latest-cmd {
				$ curl -fsL "https://darcs.toastal.in.th/dash-nix/_darcs/weak_hash"
			}
		}
	}

.. code:: nix

	# release.nix
	let
		inputs = import ./nix/tamal { };

		pkgs = import inputs.nixpkgs {
			overlays = [
				(import (inputs.dash-nix.outPath + "/nix/overlay"))
				/* … */
			];
		};
	in
	{ /* … */ }


Flakes Nix
--------------------------------------------------------------------------------

There is a ``flake.nix`` which has ``overlays``, but the joke’s on you since
Flakes don’t support Darcs (or many other) inputs 🙃. You could try the
tarballs from one of the mirrors — or use something more stable/flexible, like
*not Flakes*.


License
================================================================================

This project is licensed under :t:`Blue Oak Model License 1.0.0`
(``BlueOak-1.0.0``). For details read ``LICENSE.md``.


Pitching in
================================================================================

Currently the best way to send a question or patchset is to :ac:`DM` or email me
to one of my `contact <https://toast.al/contact/>`_ options.


Funding
================================================================================

See choices at the `maker’s website <https://toast.al/funding/>`_.

.. vim: set textwidth=80