aboutsummaryrefslogtreecommitdiff
path: root/shell.nix
blob: 470168eb553b0001f473231323d288adf936b7bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
let

  name = "nix-shell.canory";

  pkgs = import (builtins.fetchTarball {
    url = "https://releases.nixos.org/nixos/23.05/nixos-23.05.563.70f7275b32f/nixexprs.tar.xz";
    sha256 = "09r197c4b1asjmqyna3k0bmjv5djijcaz5k6fbakrq32kd67sl36";
  }) { system = "x86_64-linux"; };

  hugo = pkgs.callPackage ({ lib, buildGoModule, fetchgit }:
    buildGoModule rec {
      pname = "hugo";
      version = "0.110.0";
      src = fetchgit {
        rev = "v${version}";
        url = "https://github.com/gohugoio/hugo.git";
        sha256 = "sha256-7B0C8191lUGsv81+0eKDrBm+5hLlFjID3RTuajSg/RM=";
      };
      doCheck = false;
      proxyVendor = true;
      vendorSha256 = "sha256-GtywXjtAF5Q4jUz2clfseUJVqiU+eSguG/ZoKy2TzuA=";
      tags = [ "extended" ];
      subPackages = [ "." ];
      meta = {
        license = lib.licenses.asl20;
        homepage = "https://gohugo.io";
        description = "A fast and modern static website engine";
      };
  }) { };

  shell = pkgs.writeShellApplication {
    inherit name;
    text = ''
      /usr/bin/env --ignore-environment /bin/sh -c ${
        pkgs.writeScript name ''
          export PS1='\h (${name}) \W \$ '
          export DENO_DIR=vendor
          export DENO_NO_UPDATE_CHECK=1
          export PATH=${pkgs.lib.strings.makeBinPath [
            hugo
            pkgs.busybox
            pkgs.caddy
            pkgs.check-jsonschema
            pkgs.curl
            pkgs.deno
            pkgs.entr
            pkgs.git
            pkgs.gnumake
            pkgs.jing
            pkgs.libxml2
            pkgs.libxslt
            pkgs.validator-nu
            pkgs.yj
          ]}
          /bin/sh
        ''
      };
    '';
  };

in pkgs.mkShell {
  inherit hugo;
  shellHook = "exec ${shell}/bin/${shell.name}";
}