97 lines
3.0 KiB
Nix
97 lines
3.0 KiB
Nix
{
|
|
description = "A reliable testing environment";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
};
|
|
|
|
outputs = { self, nixpkgs, flake-utils, ... }:
|
|
flake-utils.lib.eachSystem [ "x86_64-darwin" "aarch64-darwin" "x86_64-linux" ]
|
|
(system:
|
|
let
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
|
|
leftovers-version = {
|
|
"selected" = "v0.70.0";
|
|
};
|
|
leftovers-prep = {
|
|
"x86_64-darwin" = {
|
|
"url" = "https://github.com/genevieve/leftovers/releases/download/${leftovers-version.selected}/leftovers-${leftovers-version.selected}-darwin-amd64";
|
|
"sha" = "sha256-HV12kHqB14lGDm1rh9nD1n7Jvw0rCnxmjC9gusw7jfo=";
|
|
};
|
|
"aarch64-darwin" = {
|
|
"url" = "https://github.com/genevieve/leftovers/releases/download/${leftovers-version.selected}/leftovers-${leftovers-version.selected}-darwin-arm64";
|
|
"sha" = "sha256-Tw7G538RYZrwIauN7kI68u6aKS4d/0Efh+dirL/kzoM=";
|
|
};
|
|
"x86_64-linux" = {
|
|
"url" = "https://github.com/genevieve/leftovers/releases/download/${leftovers-version.selected}/leftovers-${leftovers-version.selected}-linux-amd64";
|
|
"sha" = "sha256-D2OPjLlV5xR3f+dVHu0ld6bQajD5Rv9GLCMCk9hXlu8=";
|
|
};
|
|
};
|
|
leftovers = pkgs.stdenv.mkDerivation {
|
|
name = "leftovers-${leftovers-version.selected}";
|
|
src = pkgs.fetchurl {
|
|
url = leftovers-prep."${system}".url;
|
|
sha256 = leftovers-prep."${system}".sha;
|
|
};
|
|
phases = [ "installPhase" ];
|
|
installPhase = ''
|
|
mkdir -p $out/bin
|
|
cp $src $out/bin/leftovers
|
|
chmod +x $out/bin/leftovers
|
|
'';
|
|
};
|
|
aspellWithDicts = pkgs.aspellWithDicts (d: [d.en d.en-computers]);
|
|
|
|
devShellPackage = pkgs.symlinkJoin {
|
|
name = "dev-shell-package";
|
|
paths = with pkgs; [
|
|
actionlint
|
|
aspellWithDicts
|
|
awscli2
|
|
bashInteractive
|
|
curl
|
|
dig
|
|
gh
|
|
git
|
|
gitleaks
|
|
gnupg
|
|
go
|
|
golint
|
|
gotestfmt
|
|
gotestsum
|
|
jq
|
|
leftovers
|
|
less
|
|
openssh
|
|
openssl
|
|
shellcheck
|
|
tflint
|
|
tfsec
|
|
tfswitch
|
|
updatecli
|
|
vim
|
|
which
|
|
yq-go
|
|
];
|
|
};
|
|
|
|
in
|
|
{
|
|
packages.default = devShellPackage;
|
|
|
|
devShells.default = pkgs.mkShell {
|
|
buildInputs = [ devShellPackage ];
|
|
shellHook = ''
|
|
homebin=$HOME/bin;
|
|
install -d $homebin;
|
|
tfswitch -b $homebin/terraform 1.5.7 &>/dev/null;
|
|
export PATH="$homebin:$PATH";
|
|
export PS1="nix:# ";
|
|
'';
|
|
};
|
|
}
|
|
);
|
|
}
|