Implement nix-based build system

This commit is contained in:
Konstantin Nazarov 2023-06-11 18:41:26 +01:00
parent b8b7ee2ac5
commit fd1e4e66f6
Signed by: knazarov
GPG key ID: 4CFE0A42FA409C22
8 changed files with 95 additions and 8 deletions

View file

@ -1,4 +1,8 @@
ifeq ($(PREFIX),)
PREFIX := /usr/local
endif
ODIR=output
PAGES_SRC := $(wildcard content/pages/*)
PAGES_DST := $(patsubst content/pages/%,$(ODIR)/%/index.html,$(PAGES_SRC))
@ -41,5 +45,9 @@ clean:
deploy:
rsync -avP --delete output/ root@knazarov.com:/var/www/knazarov.com/
install:
install -d $(DESTDIR)$(PREFIX)/srv/knazarov.com
rsync -av --no-o --no-g output/ $(DESTDIR)$(PREFIX)/srv/knazarov.com
analytics:
ssh root@knazarov.com "cat /var/log/nginx/access.log" | ./bin/analytics.sh
ssh root@knazarov.com "cat /var/log/nginx/access.log" | ./bin/analytics.sh

View file

@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/sh
set -e

View file

@ -1,8 +1,8 @@
#!/bin/bash
#!/bin/sh
expand() {
TITLE="$1"
cat <<-"EOF"
TITLE="$1"
cat <<-"EOF"
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">

View file

@ -1,7 +1,7 @@
#!/bin/bash
#!/bin/sh
remove_nbsp() {
sed 's#\&nbsp;# #g'
sed 's#\&nbsp;# #g'
}
date_rfc_822() {

View file

@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/sh
set -e

26
flake.lock Normal file
View file

@ -0,0 +1,26 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1686503661,
"narHash": "sha256-s20xJMC8j8RRluqJixb7fLYkNiGNGebw82/R3ozcvzI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "089f5788fbfefe3adcb930a908d4874e1ce5c0ce",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

33
flake.nix Normal file
View file

@ -0,0 +1,33 @@
{
description = "Nix flake for knazarov.com";
# Flake inputs
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs"; # also valid: "nixpkgs";
};
# Flake outputs
outputs = { self, nixpkgs }:
let
# Systems supported
allSystems = [
"x86_64-linux" # 64-bit Intel/AMD Linux
"aarch64-linux" # 64-bit ARM Linux
"x86_64-darwin" # 64-bit Intel macOS
"aarch64-darwin" # 64-bit ARM macOS
];
# Helper to provide system-specific attributes
forAllSystems = f: nixpkgs.lib.genAttrs allSystems (system: f {
pkgs = import nixpkgs { inherit system; };
});
in
{
packages = forAllSystems( {pkgs }:
{
"knazarov.com" = (pkgs.callPackage ./knazarov.com.nix {});
default = (pkgs.callPackage ./knazarov.com.nix {});
}
);
};
}

20
knazarov.com.nix Normal file
View file

@ -0,0 +1,20 @@
{
pkgs,
stdenv
}:
stdenv.mkDerivation rec {
pname = "knazarov.com";
version = "0.1.0";
dontPatch = true;
installFlags = "PREFIX=${placeholder "out"} VERSION=${version}";
buildInputs = with pkgs; [
gawk
gnused
rsync
];
src = ./.;
}