From 0122c877ac46038f2b5ec441f7039bb2010f17ee Mon Sep 17 00:00:00 2001 From: Kiana Sheibani Date: Thu, 4 Sep 2025 21:05:45 -0400 Subject: [PATCH] feat(assign1): add basic "Hello World" program --- .gitignore | 1 + assign1/c-programs/hello.c | 8 ++++++++ assign1/default.nix | 12 ++++++++++++ flake.nix | 14 ++++++++++++-- 4 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 assign1/c-programs/hello.c create mode 100644 assign1/default.nix diff --git a/.gitignore b/.gitignore index 2cafb9a..3d8789c 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,4 @@ dkms.conf # Nix related things .direnv/ +result*/ diff --git a/assign1/c-programs/hello.c b/assign1/c-programs/hello.c new file mode 100644 index 0000000..a936748 --- /dev/null +++ b/assign1/c-programs/hello.c @@ -0,0 +1,8 @@ +#include + +int main() { + printf("Welcome to OwlTech Industries!\n"); + printf("Systems Programming Division\n"); + + return 0; +} diff --git a/assign1/default.nix b/assign1/default.nix new file mode 100644 index 0000000..e9e368b --- /dev/null +++ b/assign1/default.nix @@ -0,0 +1,12 @@ +{ + assign1-hello = { stdenv }: + stdenv.mkDerivation { + name = "hello"; + src = ./.; + buildPhase = "gcc c-programs/hello.c -o hello"; + installPhase = '' + mkdir -p $out/bin + install hello $out/bin/hello + ''; + }; +} diff --git a/flake.nix b/flake.nix index bccf8ee..902c9c6 100644 --- a/flake.nix +++ b/flake.nix @@ -7,11 +7,21 @@ }; outputs = { self, nixpkgs, systems, ... }: - let eachSystem = nixpkgs.lib.genAttrs (import systems); + let + subdirs = [ + "assign1" + ]; + + eachSystem = nixpkgs.lib.genAttrs (import systems); in { packages = eachSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; - in {}); + in pkgs.lib.mergeAttrsList + (builtins.map (d: + builtins.mapAttrs + (_: v: pkgs.callPackage v {}) + (import ./${d})) + subdirs)); devShells = eachSystem (system: let pkgs = nixpkgs.legacyPackages.${system};