diff --git a/flake.nix b/flake.nix index 72c2a28..5e2584a 100644 --- a/flake.nix +++ b/flake.nix @@ -175,5 +175,9 @@ path = ./templates/go; description = "Go template."; }; + templates."perl" = { + path = ./templates/perl; + description = "Perl template."; + }; }; } diff --git a/templates/perl/.envrc b/templates/perl/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/templates/perl/.envrc @@ -0,0 +1 @@ +use flake diff --git a/templates/perl/flake.nix b/templates/perl/flake.nix new file mode 100644 index 0000000..3b803da --- /dev/null +++ b/templates/perl/flake.nix @@ -0,0 +1,47 @@ +{ + description = "thing: stuff and things"; + + inputs.nixpkgs.url = "nixpkgs/nixos-22.05"; + + outputs = { self, nixpkgs }: + let + supportedSystems = + [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; + forAllSystems = nixpkgs.lib.genAttrs supportedSystems; + nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; }); + in { + packages = forAllSystems (system: + let pkgs = nixpkgsFor.${system}; + in { + thing = pkgs.stdenv.mkDerivation { + pname = "thing"; + version = "v0.0.0"; + src = ./.; + buildInputs = with pkgs; [ perl ]; + + buildPhase = '' + gprbuild thing + ''; + + installPhase = '' + mkdir -p $out/bin + mv thing $out/bin + ''; + }; + }); + + defaultPackage = forAllSystems (system: self.packages.${system}.thing); + devShells = forAllSystems (system: + let pkgs = nixpkgsFor.${system}; + in { + default = pkgs.mkShell { + shellHook = '' + PS1='\u@\h:\@; ' + echo "Ada `${pkgs.gnat12}/bin/gnatmake --version`" + ''; + nativeBuildInputs = with pkgs; [ gnat12 gprbuild ]; + }; + }); + }; +} +