diff options
| author | Christine Dodrill <me@christine.website> | 2020-07-16 15:32:30 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-07-16 15:32:30 -0400 |
| commit | 385d25c9f96c0acd5d932488e3bd0ed36ceb4dd7 (patch) | |
| tree | af789f7250519b23038a7e5ea0ae7f4f4c1ffdfc /site.nix | |
| parent | 449e934246c82d90dd0aac2644d67f928befeeb4 (diff) | |
| download | xesite-385d25c9f96c0acd5d932488e3bd0ed36ceb4dd7.tar.xz xesite-385d25c9f96c0acd5d932488e3bd0ed36ceb4dd7.zip | |
Rewrite site backend in Rust (#178)
* add shell.nix changes for Rust #176
* set up base crate layout
* add first set of dependencies
* start adding basic app modules
* start html templates
* serve index page
* add contact and feeds pages
* add resume rendering support
* resume cleanups
* get signalboost page working
* rewrite config to be in dhall
* more work
* basic generic post loading
* more tests
* initial blog index support
* fix routing?
* render blogposts
* X-Clacks-Overhead
* split blog handlers into blog.rs
* gallery index
* gallery posts
* fix hashtags
* remove instantpage (it messes up the metrics)
* talk support + prometheus
* Create rust.yml
* Update rust.yml
* Update codeql-analysis.yml
* add jsonfeed library
* jsonfeed support
* rss/atom
* go mod tidy
* atom: add posted date
* rss: add publishing date
* nix: build rust program
* rip out go code
* rip out go templates
* prepare for serving in docker
* create kubernetes deployment
* create automagic deployment
* build docker images on non-master
* more fixes
* fix timestamps
* fix RSS/Atom/JSONFeed validation errors
* add go vanity import redirecting
* templates/header: remove this
* atom feed: fixes
* fix?
* fix??
* fix rust tests
* Update rust.yml
* automatically show snow during the winter
* fix dates
* show commit link in footer
* sitemap support
* fix compiler warning
* start basic patreon client
* integrate kankyo
* fix patreon client
* add patrons page
* remove this
* handle patron errors better
* fix build
* clean up deploy
* sort envvars for deploy
* remove deps.nix
* shell.nix: remove go
* update README
* fix envvars for tests
* nice
* blog: add rewrite in rust post
* blog/site-update: more words
Diffstat (limited to 'site.nix')
| -rw-r--r-- | site.nix | 53 |
1 files changed, 38 insertions, 15 deletions
@@ -1,28 +1,51 @@ -{ pkgs ? import (import ./nix/sources.nix).nixpkgs { } }: +{ sources ? import ./nix/sources.nix, pkgs ? import sources.nixpkgs { } }: with pkgs; -assert lib.versionAtLeast go.version "1.13"; +let + srcNoTarget = dir: + builtins.filterSource + (path: type: type != "directory" || builtins.baseNameOf path != "target") + dir; -buildGoPackage rec { - name = "christinewebsite-HEAD"; - version = "latest"; - goPackagePath = "christine.website"; - src = ./.; - goDeps = ./nix/deps.nix; - allowGoReference = false; + naersk = pkgs.callPackage sources.naersk { }; + dhallpkgs = import sources.easy-dhall-nix { inherit pkgs; }; + src = srcNoTarget ./.; - preBuild = '' - export CGO_ENABLED=0 - buildFlagsArray+=(-pkgdir "$TMPDIR") - ''; + xesite = naersk.buildPackage { + inherit src; + buildInputs = [ pkg-config openssl git ]; + remapPathPrefix = true; + }; + + config = stdenv.mkDerivation { + pname = "xesite-config"; + version = "HEAD"; + buildInputs = [ dhallpkgs.dhall-simple ]; + + phases = "installPhase"; + + installPhase = '' + cd ${src} + dhall resolve < ${src}/config.dhall >> $out + ''; + }; - postInstall = '' +in pkgs.stdenv.mkDerivation { + inherit (xesite) name; + inherit src; + phases = "installPhase"; + + installPhase = '' + mkdir -p $out $out/bin + + cp -rf ${config} $out/config.dhall cp -rf $src/blog $out/blog cp -rf $src/css $out/css cp -rf $src/gallery $out/gallery cp -rf $src/signalboost.dhall $out/signalboost.dhall cp -rf $src/static $out/static cp -rf $src/talks $out/talks - cp -rf $src/templates $out/templates + + cp -rf ${xesite}/bin/xesite $out/bin/xesite ''; } |
