aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXe Iaso <me@xeiaso.net>2023-09-27 11:56:48 -0400
committerXe Iaso <me@xeiaso.net>2023-09-27 11:56:48 -0400
commit500716dca543f6c7e47d085b455f81765c95994b (patch)
treef85bd2a50ddf485d098f424548382c3368b211e9
parent1e19ac0b7ee67670cb7c2982e5af79244337bcd8 (diff)
downloadxesite-500716dca543f6c7e47d085b455f81765c95994b.tar.xz
xesite-500716dca543f6c7e47d085b455f81765c95994b.zip
attempt a docker image
Signed-off-by: Xe Iaso <me@xeiaso.net>
-rw-r--r--flake.lock24
-rw-r--r--flake.nix83
-rw-r--r--go.mod2
-rw-r--r--gomod2nix.toml138
4 files changed, 190 insertions, 57 deletions
diff --git a/flake.lock b/flake.lock
index 78ad5c3..f6335b0 100644
--- a/flake.lock
+++ b/flake.lock
@@ -197,6 +197,29 @@
"type": "github"
}
},
+ "gomod2nix": {
+ "inputs": {
+ "flake-utils": [
+ "flake-utils"
+ ],
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1694616124,
+ "narHash": "sha256-c49BVhQKw3XDRgt+y+uPAbArtgUlMXCET6VxEBmzHXE=",
+ "owner": "nix-community",
+ "repo": "gomod2nix",
+ "rev": "f95720e89af6165c8c0aa77f180461fe786f3c21",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "gomod2nix",
+ "type": "github"
+ }
+ },
"iosevka": {
"inputs": {
"nixpkgs": "nixpkgs",
@@ -271,6 +294,7 @@
"deno2nix": "deno2nix",
"flake-compat": "flake-compat_2",
"flake-utils": "flake-utils",
+ "gomod2nix": "gomod2nix",
"iosevka": "iosevka",
"naersk": "naersk",
"nixpkgs": "nixpkgs_2",
diff --git a/flake.nix b/flake.nix
index 7a7f053..e1837d5 100644
--- a/flake.nix
+++ b/flake.nix
@@ -21,6 +21,12 @@
inputs.flake-utils.follows = "flake-utils";
};
+ gomod2nix = {
+ url = "github:nix-community/gomod2nix";
+ inputs.nixpkgs.follows = "nixpkgs";
+ inputs.flake-utils.follows = "flake-utils";
+ };
+
# Explicitly pulling from that version of nixpkgs to avoid font duplication.
iosevka.url = "github:Xe/iosevka";
@@ -29,7 +35,7 @@
};
outputs =
- { self, nixpkgs, flake-utils, naersk, deno2nix, iosevka, typst, ... }:
+ { self, nixpkgs, flake-utils, naersk, deno2nix, iosevka, typst, gomod2nix, ... }:
flake-utils.lib.eachSystem [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" ] (system:
let
graft = pkgs: pkg: pkg.override {
@@ -46,6 +52,7 @@
gotools = graft prev prev.gotools;
gopls = graft prev prev.gopls;
})
+ gomod2nix.overlays.default
];
};
naersk-lib = naersk.lib."${system}";
@@ -64,73 +71,37 @@
name = "typst";
text = ''
${pkgs.typst-dev}/bin/typst \
+ compile \
--font-path ${fontsConf} \
"$@"
'';
runtimeInputs = [ ];
};
+
+ # Generate a user-friendly version number.
+ version = builtins.substring 0 8 self.lastModifiedDate;
in rec {
packages = rec {
- config = pkgs.stdenv.mkDerivation {
- pname = "xesite-config";
- inherit (bin) version;
- inherit src;
- buildInputs = with pkgs; [ dhall dhallPackages.Prelude ];
-
- phases = "installPhase";
-
- installPhase = ''
- mkdir -p $out
- cp -rf ${pkgs.dhallPackages.Prelude}/.cache .cache
- chmod -R u+w .cache
- export XDG_CACHE_HOME=.cache
- export DHALL_PRELUDE=${pkgs.dhallPackages.Prelude}/binary.dhall;
- dhall resolve --file $src/config.dhall >> $out/config.dhall
- '';
- };
-
- resumePDF = pkgs.stdenv.mkDerivation {
- pname = "xesite-resume-pdf";
- inherit (bin) version;
- inherit src;
- buildInputs = with pkgs; [
- dhall-json
- dhallPackages.Prelude
- tex
- pandoc
- typst-dev
- ];
-
- phases = "installPhase";
-
- installPhase = ''
- mkdir -p $out/static/resume
-
- cp -rf ${pkgs.dhallPackages.Prelude}/.cache .cache
- chmod -R u+w .cache
- export XDG_CACHE_HOME=.cache
- export DHALL_PRELUDE=${pkgs.dhallPackages.Prelude}/binary.dhall;
-
- mkdir -p icons
- cp -vrf $src/dhall/resume/* .
- dhall-to-json --file $src/dhall/resume.dhall --output resume.json
-
- typst compile --font-path ${fontsConf} resume.typ $out/static/resume/resume.pdf
- '';
- };
-
- default = pkgs.symlinkJoin {
- name = "xesite-${bin.version}";
- paths = [ config resumePDF ];
+ bin = pkgs.buildGoApplication {
+ pname = "xesite_v4";
+ inherit version;
+ src = ./.;
+ modules = ./gomod2nix.toml;
+ subPackages = [ "xesite" ];
};
docker = pkgs.dockerTools.buildLayeredImage {
name = "xena/xesite";
- tag = bin.version;
- contents = [ default ];
+ tag = version;
+ contents = with pkgs; [ ca-certificates typstWithIosevka dhall-json deno ];
config = {
Cmd = [ "${bin}/bin/xesite" ];
- WorkdingDir = "${default}";
+ Env = [
+ "TMPDIR=/data"
+ ];
+ Volumes = {
+ "/data" = {};
+ };
};
};
};
@@ -148,7 +119,7 @@
dhall-json
tex
pandoc
- typstWithIosevka
+ #typstWithIosevka
pagefind
# frontend
diff --git a/go.mod b/go.mod
index 4cfe12b..ad15f2a 100644
--- a/go.mod
+++ b/go.mod
@@ -1,6 +1,6 @@
module xeiaso.net/v4
-go 1.21.1
+go 1.21
require (
github.com/donatj/hmacsig v1.1.0
diff --git a/gomod2nix.toml b/gomod2nix.toml
new file mode 100644
index 0000000..c3d1685
--- /dev/null
+++ b/gomod2nix.toml
@@ -0,0 +1,138 @@
+schema = 3
+
+[mod]
+ [mod."dario.cat/mergo"]
+ version = "v1.0.0"
+ hash = "sha256-jlpc8dDj+DmiOU4gEawBu8poJJj9My0s9Mvuk9oS8ww="
+ [mod."github.com/Microsoft/go-winio"]
+ version = "v0.6.1"
+ hash = "sha256-BL0BVaHtmPKQts/711W59AbHXjGKqFS4ZTal0RYnR9I="
+ [mod."github.com/ProtonMail/go-crypto"]
+ version = "v0.0.0-20230828082145-3c4c8a2d2371"
+ hash = "sha256-YxAaQgQoTOhD8hE+aT+T8ytKKxcQW6tgoL2MAU7nTvo="
+ [mod."github.com/acomagu/bufpipe"]
+ version = "v1.0.4"
+ hash = "sha256-gO76ADEf7bzVUhmZbRU/LNA+L9qCdb/aaAAavvj26mA="
+ [mod."github.com/beorn7/perks"]
+ version = "v1.0.1"
+ hash = "sha256-h75GUqfwJKngCJQVE5Ao5wnO3cfKD9lSIteoLp/3xJ4="
+ [mod."github.com/cespare/xxhash/v2"]
+ version = "v2.2.0"
+ hash = "sha256-nPufwYQfTkyrEkbBrpqM3C2vnMxfIz6tAaBmiUP7vd4="
+ [mod."github.com/cloudflare/circl"]
+ version = "v1.3.3"
+ hash = "sha256-ItdVkU53Ep01553/tJ4MdAwoTpPljRxiBW9sAd7p0xI="
+ [mod."github.com/cyphar/filepath-securejoin"]
+ version = "v0.2.4"
+ hash = "sha256-heCD0xMxlwnHCHcRBgTjVexHOLyWI2zRW3E8NFKoLzk="
+ [mod."github.com/donatj/hmacsig"]
+ version = "v1.1.0"
+ hash = "sha256-/T7mWqQwZt+AFD/2QAYCAW/TsZptawFMl8CGWPmyhtE="
+ [mod."github.com/emirpasic/gods"]
+ version = "v1.18.1"
+ hash = "sha256-hGDKddjLj+5dn2woHtXKUdd49/3xdsqnhx7VEdCu1m4="
+ [mod."github.com/facebookgo/ensure"]
+ version = "v0.0.0-20200202191622-63f1cf65ac4c"
+ hash = "sha256-ZvQLMu0LBtRB4lMgY4DlsKxiRUzmh8W4KvGYJF4icRc="
+ [mod."github.com/facebookgo/flagenv"]
+ version = "v0.0.0-20160425205200-fcd59fca7456"
+ hash = "sha256-Dx2QQ7FngN64CDL1I3jQG4JOzzCKnt6MsbnVRzzh7jA="
+ [mod."github.com/facebookgo/stack"]
+ version = "v0.0.0-20160209184415-751773369052"
+ hash = "sha256-o6JL8oyrSBcgbdkvjUi4PT5OnfwgyXgbPQDA82sB2R8="
+ [mod."github.com/facebookgo/subset"]
+ version = "v0.0.0-20200203212716-c811ad88dec4"
+ hash = "sha256-oBhWz9Haw/ZuqJofQ7psThNrr1f6GHHgxq8agev7TOo="
+ [mod."github.com/go-git/gcfg"]
+ version = "v1.5.1-0.20230307220236-3a3c6141e376"
+ hash = "sha256-f4k0gSYuo0/q3WOoTxl2eFaj7WZpdz29ih6CKc8Ude8="
+ [mod."github.com/go-git/go-billy/v5"]
+ version = "v5.5.0"
+ hash = "sha256-4XUoD2bOCMCdu83egb/y8kY/Fm0s1rWgPMtiahh38OQ="
+ [mod."github.com/go-git/go-git/v5"]
+ version = "v5.9.0"
+ hash = "sha256-Ik1vexK/9hnkb3b4ZE5S4PRPmcvek1X+XFWiimUcfR8="
+ [mod."github.com/golang/groupcache"]
+ version = "v0.0.0-20210331224755-41bb18bfe9da"
+ hash = "sha256-7Gs7CS9gEYZkbu5P4hqPGBpeGZWC64VDwraSKFF+VR0="
+ [mod."github.com/golang/protobuf"]
+ version = "v1.5.3"
+ hash = "sha256-svogITcP4orUIsJFjMtp+Uv1+fKJv2Q5Zwf2dMqnpOQ="
+ [mod."github.com/jbenet/go-context"]
+ version = "v0.0.0-20150711004518-d14ea06fba99"
+ hash = "sha256-VANNCWNNpARH/ILQV9sCQsBWgyL2iFT+4AHZREpxIWE="
+ [mod."github.com/joho/godotenv"]
+ version = "v1.5.1"
+ hash = "sha256-kA0osKfsc6Kp+nuGTRJyXZZlJt1D/kuEazKMWYCWcQ8="
+ [mod."github.com/kevinburke/ssh_config"]
+ version = "v1.2.0"
+ hash = "sha256-Ta7ZOmyX8gG5tzWbY2oES70EJPfI90U7CIJS9EAce0s="
+ [mod."github.com/matttproud/golang_protobuf_extensions"]
+ version = "v1.0.4"
+ hash = "sha256-uovu7OycdeZ2oYQ7FhVxLey5ZX3T0FzShaRldndyGvc="
+ [mod."github.com/pjbgf/sha1cd"]
+ version = "v0.3.0"
+ hash = "sha256-kX9BdLh2dxtGNaDvc24NORO+C0AZ7JzbrXrtecCdB7w="
+ [mod."github.com/prometheus/client_golang"]
+ version = "v1.15.1"
+ hash = "sha256-9DCIuhmOYrfp0d2Y8g4m8vLRwAy0+pf0bkpLD/HObJo="
+ [mod."github.com/prometheus/client_model"]
+ version = "v0.4.0"
+ hash = "sha256-4P0sPWpxa69gGM6zm3dA06cH6twaeopq22VVDJjucHA="
+ [mod."github.com/prometheus/common"]
+ version = "v0.42.0"
+ hash = "sha256-dJqoPZKtY2umWFWwMeRYY9I2JaFlpcMX4atkEcN5+hs="
+ [mod."github.com/prometheus/procfs"]
+ version = "v0.9.0"
+ hash = "sha256-imZN+1HRpMvgmrot2V+AK5ueYLmsp49vZfHtx2N6Wek="
+ [mod."github.com/sergi/go-diff"]
+ version = "v1.3.1"
+ hash = "sha256-XLA/BLIPuUU76yikXqIeRSXr7T7A3Uz6I27+mDxGj7w="
+ [mod."github.com/skeema/knownhosts"]
+ version = "v1.2.0"
+ hash = "sha256-D5xB9lLablPhYUqTbdu8Ub366n//+JTgK3jcnMHlwYs="
+ [mod."github.com/xanzy/ssh-agent"]
+ version = "v0.3.3"
+ hash = "sha256-l3pGB6IdzcPA/HLk93sSN6NM2pKPy+bVOoacR5RC2+c="
+ [mod."go4.org/mem"]
+ version = "v0.0.0-20220726221520-4f986261bf13"
+ hash = "sha256-H2Fsuvzbqp/6JKzC03XPTQTSQBcGs+B5VGsBjrQDY3c="
+ [mod."go4.org/netipx"]
+ version = "v0.0.0-20230728180743-ad4cb58a6516"
+ hash = "sha256-Ok/oFoaNWAd4/YDyqpEE/Fo3rof1B+U3EGWqCzMzJ2o="
+ [mod."golang.org/x/crypto"]
+ version = "v0.13.0"
+ hash = "sha256-4ThyrEJI4i9XBwx/q/R4jR41VJBZ/TSR0+UCkjTH95A="
+ [mod."golang.org/x/exp"]
+ version = "v0.0.0-20230725093048-515e97ebf090"
+ hash = "sha256-MynD8x+mg/OAZGFcrN89I243j+b29bzmqTYHZeIs87I="
+ [mod."golang.org/x/mod"]
+ version = "v0.12.0"
+ hash = "sha256-M/oXnzm7odpJdQzEnG6W0pNYtl0uhOM/l7qgfGVpU2M="
+ [mod."golang.org/x/net"]
+ version = "v0.15.0"
+ hash = "sha256-k0hgSwNmZz9nN9cqqACNHdnejV50AAwzxnoyTs9liXw="
+ [mod."golang.org/x/oauth2"]
+ version = "v0.12.0"
+ hash = "sha256-tjNUICkISajnbZ03I3nsWEPLGqb4ZBIJE7FomynLykQ="
+ [mod."golang.org/x/sys"]
+ version = "v0.12.0"
+ hash = "sha256-Ht/PhBJGWNBg4ksmdUu4+7hJjFypSwoUN/8DJricd+0="
+ [mod."golang.org/x/tools"]
+ version = "v0.13.0"
+ hash = "sha256-OCgLOwia8fNHxfdogXVApf0/qK6jE2ukegOx7lkOzfo="
+ [mod."google.golang.org/appengine"]
+ version = "v1.6.7"
+ hash = "sha256-zIxGRHiq4QBvRqkrhMGMGCaVL4iM4TtlYpAi/hrivS4="
+ [mod."google.golang.org/protobuf"]
+ version = "v1.31.0"
+ hash = "sha256-UdIk+xRaMfdhVICvKRk1THe3R1VU+lWD8hqoW/y8jT0="
+ [mod."gopkg.in/mxpv/patreon-go.v1"]
+ version = "v1.0.0-20171031001022-1d2f253ac700"
+ hash = "sha256-vo6C8nU/lG0LdtrO4396YHvVEypkXFHia5FAGjb0qoQ="
+ [mod."gopkg.in/warnings.v0"]
+ version = "v0.1.2"
+ hash = "sha256-ATVL9yEmgYbkJ1DkltDGRn/auGAjqGOfjQyBYyUo8s8="
+ [mod."tailscale.com"]
+ version = "v1.48.2"
+ hash = "sha256-9Rv984aDeq+a1BGNzeWbkLidJJTSeEkFF2TgbH1DEYc="