diff options
| author | Xe Iaso <me@xeiaso.net> | 2023-09-27 11:56:48 -0400 |
|---|---|---|
| committer | Xe Iaso <me@xeiaso.net> | 2023-09-27 11:56:48 -0400 |
| commit | 500716dca543f6c7e47d085b455f81765c95994b (patch) | |
| tree | f85bd2a50ddf485d098f424548382c3368b211e9 | |
| parent | 1e19ac0b7ee67670cb7c2982e5af79244337bcd8 (diff) | |
| download | xesite-500716dca543f6c7e47d085b455f81765c95994b.tar.xz xesite-500716dca543f6c7e47d085b455f81765c95994b.zip | |
attempt a docker image
Signed-off-by: Xe Iaso <me@xeiaso.net>
| -rw-r--r-- | flake.lock | 24 | ||||
| -rw-r--r-- | flake.nix | 83 | ||||
| -rw-r--r-- | go.mod | 2 | ||||
| -rw-r--r-- | gomod2nix.toml | 138 |
4 files changed, 190 insertions, 57 deletions
@@ -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", @@ -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 @@ -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=" |
