aboutsummaryrefslogtreecommitdiff
path: root/shell.nix
blob: f40739a53b307b065fe7bf2151d85839a43de114 (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
65
66
67
68
let

  name = "nix-shell.canory";

  pkgs = import (builtins.fetchTarball {
    url = "https://releases.nixos.org/nixos/22.11/nixos-22.11.466.596a8e828c5/nixexprs.tar.xz";
    sha256 = "1367bad5zz0mfm4czb6p0s0ni38f0x1ffh02z76rx4nranipqbgg";
  }) { system = "x86_64-linux"; };

  validatornu = pkgs.callPackage (pkgs.fetchurl {
    url = "https://raw.githubusercontent.com/tdro/dotfiles/032efcf7f4b1c7304ce5f3f64f64c175ba59eb6d/.config/nixpkgs/packages/validatornu/default.nix";
    sha256 = "1ify40x9547z04hcibk76m45d02xg3dlvwc57n8vxcbax82yb9pj";
  }) { };

  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 PATH=${pkgs.lib.strings.makeBinPath [
            hugo
            validatornu
            pkgs.busybox
            pkgs.caddy
            pkgs.check-jsonschema
            pkgs.curl
            pkgs.deno
            pkgs.entr
            pkgs.git
            pkgs.gnumake
            pkgs.jing
            pkgs.libxml2
            pkgs.libxslt
            pkgs.yj
          ]}
          /bin/sh
        ''
      };
    '';
  };

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