From dda29ca7685d360d5428dd827d11a9e4139a0872 Mon Sep 17 00:00:00 2001 From: Justin Bedo Date: Thu, 6 Oct 2022 10:21:34 +1100 Subject: init --- day2/ex1-hello-world/default.nix | 22 ++++++++++++++++++++++ day2/ex1-hello-world/flake.lock | 1 + day2/ex1-hello-world/flake.nix | 20 ++++++++++++++++++++ day2/ex1-hello-world/solution.nix | 24 ++++++++++++++++++++++++ 4 files changed, 67 insertions(+) create mode 100644 day2/ex1-hello-world/default.nix create mode 120000 day2/ex1-hello-world/flake.lock create mode 100755 day2/ex1-hello-world/flake.nix create mode 100644 day2/ex1-hello-world/solution.nix (limited to 'day2/ex1-hello-world') diff --git a/day2/ex1-hello-world/default.nix b/day2/ex1-hello-world/default.nix new file mode 100644 index 0000000..8eaffa7 --- /dev/null +++ b/day2/ex1-hello-world/default.nix @@ -0,0 +1,22 @@ +/* + This first exercise demonstrates how to define a processing stage, +which is just instructions on how to compute an output (the +`buildCommand`) from some inputs (in this case, there are no inputs). +Each stage must minimally define a `name`, shell code to build the +output in `buildCommand`, and any software that's required in +`buildInputs`. Note that `buildInputs = []` if not defined, meaning no +extra requirements over the standard environment. + +Try replacing the echo below with output from the GNU hello program. +Hint: the GNU hello program is available at `pkgs.hello` and the +executable is called `hello`. +*/ +{bionix}: +with bionix; + stage { + name = "hello-world"; + + buildCommand = '' + echo hello world > $out + ''; + } diff --git a/day2/ex1-hello-world/flake.lock b/day2/ex1-hello-world/flake.lock new file mode 120000 index 0000000..981422e --- /dev/null +++ b/day2/ex1-hello-world/flake.lock @@ -0,0 +1 @@ +../../common/flake.lock \ No newline at end of file diff --git a/day2/ex1-hello-world/flake.nix b/day2/ex1-hello-world/flake.nix new file mode 100755 index 0000000..bfaca96 --- /dev/null +++ b/day2/ex1-hello-world/flake.nix @@ -0,0 +1,20 @@ +{ + inputs = { + nixpkgs.url = "github:nixos/nixpkgs"; + bionix.url = "github:papenfusslab/bionix"; + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = { + self, + nixpkgs, + bionix, + flake-utils, + }: + flake-utils.lib.eachDefaultSystem (system: let + pkgs = import nixpkgs {inherit system;}; + bionix' = import bionix {nixpkgs = pkgs;}; + in { + defaultPackage = bionix'.callBionix ./. {}; + }); +} diff --git a/day2/ex1-hello-world/solution.nix b/day2/ex1-hello-world/solution.nix new file mode 100644 index 0000000..d0531a2 --- /dev/null +++ b/day2/ex1-hello-world/solution.nix @@ -0,0 +1,24 @@ +/* + This first exercise demonstrates how to define a processing stage, +which is just instructions on how to compute an output (the +`buildCommand`) from some inputs (in this case, there are no inputs). +Each stage must minimally define a `name`, shell code to build the +output in `buildCommand`, and any software that's required in +`buildInputs`. Note that `buildInputs = []` if not defined, meaning no +extra requirements over the standard environment. + +Try replacing the echo below with output from the GNU hello program. +Hint: the GNU hello program is available at `pkgs.hello` and the +executable is called `hello`. +*/ +{bionix}: +with bionix; + stage { + name = "hello-world"; + + buildInputs = [pkgs.hello]; + + buildCommand = '' + hello > $out + ''; + } -- cgit v1.2.3