about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.envrc1
-rw-r--r--Makefile17
-rw-r--r--flake.lock26
-rw-r--r--flake.nix19
-rwxr-xr-xscripts/deploy.sh10
5 files changed, 57 insertions, 16 deletions
diff --git a/.envrc b/.envrc
new file mode 100644
index 0000000..3550a30
--- /dev/null
+++ b/.envrc
@@ -0,0 +1 @@
+use flake
diff --git a/Makefile b/Makefile
index 5414dde..e2731d4 100644
--- a/Makefile
+++ b/Makefile
@@ -5,22 +5,7 @@ DOCKER_IMAGE_REF := $(shell git rev-parse HEAD)
 DOCKERFILE := Dockerfile
 PROJECT_DIR := $(realpath $(CURDIR))
 
-.PHONY: server deploy docker-build docker-run worktree-clean
-
-server:
-	@echo "Running hugo server ..."
-	hugo server
-
-worktree-clean:
-	git diff --exit-code
-	git diff --staged --exit-code
-
-deploy: worktree-clean docker-build
-	@echo "Deploying to fly ..."
-	flyctl deploy
-	@git tag -a --message $$(flyctl info -j |jq -r '.App | "fcuny.net/v\(.Version)"') $$(flyctl info -j |jq -r '.App | "fcuny.net/v\(.Version)"')
-	@git push origin --all
-	@git push origin --tags
+.PHONY: docker-build docker-run
 
 docker-build:
 	@echo "Building Docker image ..."
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..d7426e1
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,26 @@
+{
+  "nodes": {
+    "nixpkgs": {
+      "locked": {
+        "lastModified": 1651345462,
+        "narHash": "sha256-4wf9sMUKGBjC2jWnUwG52ychtXRKlS3LfX/HEY6DjhM=",
+        "owner": "nixos",
+        "repo": "nixpkgs",
+        "rev": "870249df2cc640e2278cd0bc599ebbb246b00802",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nixos",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
+    "root": {
+      "inputs": {
+        "nixpkgs": "nixpkgs"
+      }
+    }
+  },
+  "root": "root",
+  "version": 7
+}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..59ef578
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,19 @@
+{
+  description = "Franck Cuny's personal website.";
+
+  inputs = { nixpkgs.url = "github:nixos/nixpkgs"; };
+
+  outputs = { self, nixpkgs }:
+    let pkgs = nixpkgs.legacyPackages.x86_64-linux;
+    in {
+      defaultApp.x86_64-linux = self.apps.server;
+      apps.server = pkgs.writers.writeBashBin "server" ''
+        set -e
+        set -o pipefail
+        PATH=${pkgs.lib.makeBinPath [ pkgs.hugo pkgs.git ]}
+        hugo server
+      '';
+      devShell.x86_64-linux =
+        pkgs.mkShell { buildInputs = with pkgs; [ hugo flyctl git ]; };
+    };
+}
diff --git a/scripts/deploy.sh b/scripts/deploy.sh
new file mode 100755
index 0000000..82919c6
--- /dev/null
+++ b/scripts/deploy.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+
+git diff --exit-code
+git diff --staged --exit-code
+
+VERSION=$(flyctl info -j |jq -r '.App | "fcuny.net/v\(.Version)"')
+
+git tag -a --message ${VERSION} ${VERSION}
+git push origin --all
+git push origin --tags