initial commit

This commit is contained in:
2025-09-04 16:07:30 -05:00
commit 96c718d0dd
6 changed files with 174 additions and 0 deletions

8
README.md Normal file
View File

@@ -0,0 +1,8 @@
# Testaform
Testing terraform out
---
Add `dotenv` to .envrc after other nix stuff, and store keys in .env, which is fine for a testing project.

62
flake.lock generated Normal file
View File

@@ -0,0 +1,62 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1755615617,
"narHash": "sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs+StOp19xNsbqdOg=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "20075955deac2583bb12f07151c2df830ef346b4",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1754340878,
"narHash": "sha256-lgmUyVQL9tSnvvIvBp7x1euhkkCho7n3TMzgjdvgPoU=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "cab778239e705082fe97bb4990e0d24c50924c04",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs",
"treefmt-nix": "treefmt-nix"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1755934250,
"narHash": "sha256-CsDojnMgYsfshQw3t4zjRUkmMmUdZGthl16bXVWgRYU=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "74e1a52d5bd9430312f8d1b8b0354c92c17453e5",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

48
flake.nix Normal file
View File

@@ -0,0 +1,48 @@
{
description = "Basic flake and files - change me";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
treefmt-nix.url = "github:numtide/treefmt-nix";
};
outputs =
{ nixpkgs, ... }@inputs:
let
supportedSystems = [ "x86_64-linux" ];
pkgsFor =
system:
let
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
in
pkgs.extend (
nixpkgs.lib.composeManyExtensions [ ]
# nixpkgs.lib.composeManyExtensions ([ ] ++ builtins.attrValues self.overlays)
);
eachSystem = f: nixpkgs.lib.genAttrs supportedSystems (system: f (pkgsFor system));
treefmtEval = eachSystem (pkgs: inputs.treefmt-nix.lib.evalModule pkgs ./treefmt.nix);
in
{
# nix fmt formatter
formatter = eachSystem (pkgs: treefmtEval.${pkgs.system}.config.build.wrapper);
# default devshell
devShells = eachSystem (pkgs: {
default = pkgs.mkShell {
packages = with pkgs; [
just
awscli2
terraform
];
# Will be executed before entering the shell
# or running a command
shellHook = '''';
};
});
};
}

25
justfile Normal file
View File

@@ -0,0 +1,25 @@
# by default list all just commands
default:
just --list
# run all tests
test:
#!/usr/bin/env bash
set -euxo pipefail
# would love test: fmt to make sure formatting happens but in WSL formatting is slow...
# poor filesystem access performance
echo "testing..."
nix flake check
# uv run ruff check src tests
#
# format code
fmt:
#!/usr/bin/env bash
set -euxo pipefail
nix fmt
# shouldn't actually be that hard to put into nix fmt but lazyyy
terraform fmt

10
terraform.tf Normal file
View File

@@ -0,0 +1,10 @@
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.92"
}
}
required_version = ">= 1.2"
}

21
treefmt.nix Normal file
View File

@@ -0,0 +1,21 @@
# treefmt.nix
{ ... }:
{
projectRootFile = "treefmt.nix";
settings.global.excludes = [
"*.toml"
"*.txt"
".gitattributes"
"CLAUDE.md"
".python-version"
];
programs.deadnix.enable = true;
programs.mdsh.enable = true;
programs.nixfmt.enable = true;
programs.shellcheck.enable = true;
programs.shfmt.enable = true;
programs.yamlfmt.enable = true;
programs.just.enable = true;
}