Finalize flake
This commit is contained in:
parent
1ebc189bb6
commit
e5d5ef5cb9
7
Makefile
7
Makefile
@ -1,7 +0,0 @@
|
||||
.PHONY: install result
|
||||
install: result; SHELL=/bin/sh pkexec $$PWD/switch $$PWD
|
||||
|
||||
secret.nix: secret.nix.gpg; gpg -dq $< > $@
|
||||
|
||||
result: secret.nix; ./build
|
||||
|
45
bootstrap
45
bootstrap
@ -1,45 +0,0 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p git gnupg
|
||||
|
||||
export IN_NIX_SHELL=
|
||||
|
||||
set -ex
|
||||
|
||||
mkdir -p /mnt/home/balsoft/projects
|
||||
nixos-generate-config --root /mnt
|
||||
cd /mnt/home/balsoft/projects
|
||||
[ -d nixos-config ] || git clone ssh://git@github.com/balsoft/nixos-config
|
||||
cd nixos-config
|
||||
|
||||
touch secret.nix
|
||||
while [[ ! -s secret.nix ]]
|
||||
do gpg -dq secret.nix.gpg > secret.nix
|
||||
done
|
||||
|
||||
[ -s hardware-configuration/$(hostname).nix ] || mv /mnt/etc/nixos/hardware-configuration.nix hardware-configuration/$(hostname).nix
|
||||
|
||||
mkdir -p /home/balsoft
|
||||
mount --rbind /mnt/home/balsoft /home/balsoft
|
||||
mount --rbind /mnt/etc/nixos /etc/nixos
|
||||
|
||||
export NIX_PATH=
|
||||
|
||||
nixpkgs=$(nix eval --raw '(import ./nix/sources.nix).nixpkgs')
|
||||
nix-store --repair-path $nixpkgs # Evaluating doesn't actually add it to store
|
||||
rm /tmp/nixpkgs -rf
|
||||
cp -r $nixpkgs /tmp/nixpkgs # Because we lose everything we added to store after we unmount it
|
||||
|
||||
export NIX_PATH=nixpkgs=/tmp/nixpkgs:nixos-config=/etc/nixos/configuration.nix
|
||||
|
||||
nix copy --all --to /mnt --no-require-sigs
|
||||
|
||||
echo The following operation is irreversible. RET to continue.
|
||||
read
|
||||
|
||||
umount -l /nix/.rw-store || echo "RW-store is not mounted."
|
||||
mount --rbind /mnt/nix /nix
|
||||
|
||||
nix build -f /tmp/nixpkgs/nixos system --substituters "https://cache.balsoft.ru https://cache.nixos.org" --no-require-sigs
|
||||
nixos-install --system ./result
|
||||
cd /mnt/home/balsoft
|
||||
chown 1000:100 . -R
|
24
build
24
build
@ -1,24 +0,0 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -p git -i bash
|
||||
|
||||
unset IN_NIX_SHELL
|
||||
|
||||
nixpkgs=$(nix eval --raw '(import ./nix/sources.nix).nixpkgs')
|
||||
|
||||
nix-store --realise $nixpkgs
|
||||
|
||||
export NIX_PATH=nixpkgs=$nixpkgs:nixos-config="`pwd`"
|
||||
|
||||
if [[ -n $INSIDE_EMACS ]]
|
||||
then
|
||||
nix-build $nixpkgs/nixos -A system $@
|
||||
else
|
||||
nix build -f $nixpkgs/nixos system $@
|
||||
fi &&
|
||||
{
|
||||
git add .
|
||||
d=$(date +%s)
|
||||
# The quickest way to commit
|
||||
git commit -t <(echo -n "Update "; echo -n $(git diff HEAD --name-only) | tr "\n" ", ") --no-edit --no-gpg-sign
|
||||
git tag latestBuild --force
|
||||
}
|
16
flake.lock
generated
16
flake.lock
generated
@ -185,18 +185,20 @@
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"info": {
|
||||
"lastModified": 1587944902,
|
||||
"narHash": "sha256-DS4R0WC23hcfTTuxb3b3lMdTQYaK5z/d+1ue9ZHUdtE="
|
||||
"lastModified": 1587452212,
|
||||
"narHash": "sha256-Sn9xtMrUYmXCT33yQjNh0tWFwY7jF5x4vCUrkcXDMCE="
|
||||
},
|
||||
"locked": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "92d9d07c61d06c044af0261ab1741340151e4d3b",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs-channels",
|
||||
"rev": "22a3bf9fb9edad917fb6cd1066d58b5e426ee975",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"type": "indirect"
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs-channels",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
|
@ -80,11 +80,6 @@
|
||||
repo = "weechat-notify-send";
|
||||
flake = false;
|
||||
};
|
||||
secrets = {
|
||||
type = "path";
|
||||
path = "./secret.nix";
|
||||
flake = false;
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { nixpkgs, ... }@inputs: {
|
||||
|
4
install
4
install
@ -1,4 +0,0 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -p gnumake gnupg -i bash
|
||||
|
||||
make
|
@ -63,6 +63,7 @@
|
||||
xdg_utils
|
||||
nheko
|
||||
gitAndTools.hub
|
||||
git-crypt
|
||||
nix-patch
|
||||
waypipe
|
||||
cachix
|
||||
|
@ -8,7 +8,7 @@ let
|
||||
in {
|
||||
home-manager.users.balsoft = {
|
||||
home.file.".weechat/python/autoload/notify_send.py".source =
|
||||
"${(import ../../nix/sources.nix).weechat-notify-send}/notify_send.py";
|
||||
"${inputs.weechat-notify-send}/notify_send.py";
|
||||
|
||||
home.file.".weechat/perl/autoload/multiline.pl".source =
|
||||
"${inputs.weechat-scripts}/perl/multiline.pl";
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ pkgs, config, lib, ... }:
|
||||
{ pkgs, config, lib, inputs, ... }:
|
||||
let
|
||||
module = toString (import ../nix/sources.nix).simple-nixos-mailserver;
|
||||
module = toString inputs.simple-nixos-mailserver;
|
||||
readCommandResult = command:
|
||||
builtins.readFile (pkgs.runCommand "cmd" { preferLocalBuild = true; }
|
||||
"echo -n $(${command}) > $out");
|
||||
|
@ -89,7 +89,7 @@ in rec {
|
||||
};
|
||||
};
|
||||
config = let
|
||||
secretnix = import inputs.secrets;
|
||||
secretnix = import ../secret.nix;
|
||||
secrets = if isNull secretnix then
|
||||
mapAttrs (n: v: null) options.secrets
|
||||
else
|
||||
|
273
nix/sources.json
273
nix/sources.json
@ -1,273 +0,0 @@
|
||||
{
|
||||
"NUR": {
|
||||
"branch": "master",
|
||||
"description": "Nix User Repository: User contributed nix packages [maintainer=@Mic92]",
|
||||
"homepage": "",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "ffd4ab4b9e3de6f695dd4501125b6cbe002edc62",
|
||||
"sha256": "15hw02m5mwbp7smy462kjzzqb4i0g4c5ncc4maq59mhgiy0cdn4x",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/nix-community/NUR/archive/ffd4ab4b9e3de6f695dd4501125b6cbe002edc62.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"UserChrome-Tweaks": {
|
||||
"branch": "master",
|
||||
"description": "A community maintained repository of userChrome.css tweaks for Firefox",
|
||||
"homepage": null,
|
||||
"owner": "Timvde",
|
||||
"repo": "UserChrome-Tweaks",
|
||||
"rev": "76affa52fd040f703fa7cdcc9f0459643c9883d1",
|
||||
"sha256": "1nz70d1l0mf4zqk5ng1cizzx8r4hxgkkx8wsw93wld3wdyhk7k3a",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/Timvde/UserChrome-Tweaks/archive/76affa52fd040f703fa7cdcc9f0459643c9883d1.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"all-hies": {
|
||||
"branch": "master",
|
||||
"description": "Cached Haskell IDE Engine Nix builds for all GHC versions",
|
||||
"homepage": "",
|
||||
"owner": "Infinisil",
|
||||
"repo": "all-hies",
|
||||
"rev": "4b984030c8080d944372354a7b558c49858057e7",
|
||||
"sha256": "0109l0ls7gh2gydrgx45168lg45kgmgwaw9jpjm8mwvwd1brssfk",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/Infinisil/all-hies/archive/4b984030c8080d944372354a7b558c49858057e7.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"base16-unclaimed-schemes": {
|
||||
"branch": "master",
|
||||
"description": "A collection of themes that have no repositories for homes :(",
|
||||
"homepage": null,
|
||||
"owner": "chriskempson",
|
||||
"repo": "base16-unclaimed-schemes",
|
||||
"rev": "d6b93456dc1012628faec572387814f59e0b854a",
|
||||
"sha256": "043ny56snl4w2ri1i0zzfh00zm2gf2h5jz57kgmf5jb9xj0sspb1",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/chriskempson/base16-unclaimed-schemes/archive/d6b93456dc1012628faec572387814f59e0b854a.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"home-manager": {
|
||||
"branch": "master",
|
||||
"description": "Manage a user environment using Nix",
|
||||
"homepage": "",
|
||||
"owner": "rycee",
|
||||
"repo": "home-manager",
|
||||
"rev": "5baa0c300f2c524e2a3f154cf4ee2688ef734f41",
|
||||
"sha256": "1jsk4q0z4d0wr5hcxkk2z73yyi1dq604whhdpag5nm4sqwm7484p",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/rycee/home-manager/archive/5baa0c300f2c524e2a3f154cf4ee2688ef734f41.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"materia-theme": {
|
||||
"branch": "master",
|
||||
"description": "A Material Design theme for GNOME/GTK based desktop environments",
|
||||
"homepage": "",
|
||||
"owner": "nana-4",
|
||||
"repo": "materia-theme",
|
||||
"rev": "b1e4c563146ae34fff6a697393b6a1bc66b612f5",
|
||||
"sha256": "1w65v7jl8v5h41d27gj79rnkbn8rw0avrj4gi57l8lvlhpn9q6a2",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/nana-4/materia-theme/archive/b1e4c563146ae34fff6a697393b6a1bc66b612f5.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"mopidy": {
|
||||
"branch": "v2.3.1",
|
||||
"description": "Mopidy is an extensible music server written in Python",
|
||||
"homepage": "https://mopidy.com",
|
||||
"owner": "mopidy",
|
||||
"repo": "mopidy",
|
||||
"rev": "6ee0379b0f4eee0da5721b3c415f520626e56b20",
|
||||
"sha256": "1qdflxr0an6l2m3j90h55bzyj7rjlkkwmxx945hwv8xi472rcgdj",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/mopidy/mopidy/archive/6ee0379b0f4eee0da5721b3c415f520626e56b20.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"mopidy-gmusic": {
|
||||
"branch": "master",
|
||||
"description": "Mopidy extension for playing music from Google Play Music",
|
||||
"homepage": "https://www.mopidy.com",
|
||||
"owner": "mopidy",
|
||||
"repo": "mopidy-gmusic",
|
||||
"rev": "88e71a18fd8b20b302b990abd97e2bf52cf678b8",
|
||||
"sha256": "08xi0pn1zvkfy1d27pll1dwj2m08mdf07g1bw4aqz2p59vy67v6v",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/mopidy/mopidy-gmusic/archive/88e71a18fd8b20b302b990abd97e2bf52cf678b8.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"mopidy-youtube": {
|
||||
"branch": "develop",
|
||||
"description": "Mopidy extension for playing music from YouTube",
|
||||
"homepage": "",
|
||||
"owner": "natumbri",
|
||||
"repo": "mopidy-youtube",
|
||||
"rev": "d2d9999111f382ce3cf2f6600701649deadaafde",
|
||||
"sha256": "1ld1w56nh8b527rr2g3a81dh0lxmabvn2pa3y8kv22m2vjbr7b04",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/natumbri/mopidy-youtube/archive/d2d9999111f382ce3cf2f6600701649deadaafde.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"mtxclient": {
|
||||
"branch": "0.3.0-dev",
|
||||
"description": "Client API library for Matrix, built on top of Boost.Asio",
|
||||
"homepage": "",
|
||||
"owner": "nheko-reborn",
|
||||
"repo": "mtxclient",
|
||||
"rev": "84c6778cc367bca79755e73e77b2cc69950375b2",
|
||||
"sha256": "13h5a0kdsirsfrgvmyi0r441cbjx247ymif5gk1b35h27vk1613k",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/nheko-reborn/mtxclient/archive/84c6778cc367bca79755e73e77b2cc69950375b2.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"nheko": {
|
||||
"branch": "0.7.0-dev",
|
||||
"description": "Desktop client for Matrix using Qt and C++14.",
|
||||
"homepage": "",
|
||||
"owner": "nheko-reborn",
|
||||
"repo": "nheko",
|
||||
"rev": "1943d1c74d5253ec9d2b7ee38f69d791d28e84c1",
|
||||
"sha256": "1r9fm3wzcw8jcg5amabpdj5rs3099dcx1mw1r6j559s9ymcfimwi",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/nheko-reborn/nheko/archive/1943d1c74d5253ec9d2b7ee38f69d791d28e84c1.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"niv": {
|
||||
"branch": "master",
|
||||
"description": "Easy dependency management for Nix projects",
|
||||
"homepage": "https://github.com/nmattia/niv",
|
||||
"owner": "nmattia",
|
||||
"repo": "niv",
|
||||
"rev": "49157afd2298749b8a5062fd21079542a6b2de35",
|
||||
"sha256": "0q7ymfrcgagcsw6kr93kprag7k358qj8znyzyri53ci1mrsak5y1",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/nmattia/niv/archive/49157afd2298749b8a5062fd21079542a6b2de35.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"nixfmt": {
|
||||
"branch": "master",
|
||||
"description": "A formatter for Nix code",
|
||||
"homepage": "https://nixfmt.serokell.io",
|
||||
"owner": "serokell",
|
||||
"repo": "nixfmt",
|
||||
"rev": "921bbd3bb9c95cf2d677a8558b1a27fca6cee597",
|
||||
"sha256": "0x08xsjal6db95y1sxxinwv9ks2k6fayvg8435s6zqy7zq42jxm4",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/serokell/nixfmt/archive/921bbd3bb9c95cf2d677a8558b1a27fca6cee597.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"nixpkgs": {
|
||||
"branch": "nixos-unstable",
|
||||
"builtin": false,
|
||||
"description": "The nix packages collection stable",
|
||||
"homepage": "https://github.com/nixos/nixpkgs",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs-channels",
|
||||
"rev": "22a3bf9fb9edad917fb6cd1066d58b5e426ee975",
|
||||
"sha256": "089hqg2r2ar5piw9q5z3iv0qbmfjc4rl5wkx9z16aqnlras72zsa",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/nixos/nixpkgs-channels/archive/22a3bf9fb9edad917fb6cd1066d58b5e426ee975.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"nixpkgs-old": {
|
||||
"branch": "nixos-19.03",
|
||||
"description": "Nix Packages collection",
|
||||
"homepage": null,
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c8db7a8a16ee9d54103cade6e766509e1d1c8d7b",
|
||||
"sha256": "1b3h4mwpi10blzpvgsc0191k4shaw3nw0qd2p82hygbr8vv4g9dv",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/nixos/nixpkgs/archive/c8db7a8a16ee9d54103cade6e766509e1d1c8d7b.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"branch": "nixos-unstable",
|
||||
"description": "The nix packages collection unstable",
|
||||
"homepage": "https://github.com/nixos/nixpkgs",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs-channels",
|
||||
"rev": "22a3bf9fb9edad917fb6cd1066d58b5e426ee975",
|
||||
"sha256": "089hqg2r2ar5piw9q5z3iv0qbmfjc4rl5wkx9z16aqnlras72zsa",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/nixos/nixpkgs-channels/archive/22a3bf9fb9edad917fb6cd1066d58b5e426ee975.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"pykka": {
|
||||
"branch": "v2.0.1",
|
||||
"description": "Pykka is a Python implementation of the actor model, which makes it easier to build concurrent applications",
|
||||
"homepage": "https://www.pykka.org",
|
||||
"owner": "jodal",
|
||||
"repo": "pykka",
|
||||
"rev": "1982e1caf63726c66b28616c80d548ae1bb4fe87",
|
||||
"sha256": "011rvv3vzj9rpwaq6vfpz9hfwm6gx1jmad4iri6z12g8nnlpydhs",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/jodal/pykka/archive/1982e1caf63726c66b28616c80d548ae1bb4fe87.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"scripts": {
|
||||
"branch": "master",
|
||||
"description": "Official scripts for WeeChat.",
|
||||
"homepage": "https://weechat.org/scripts/",
|
||||
"owner": "weechat",
|
||||
"repo": "scripts",
|
||||
"rev": "a69d3ff2fce34958f78395a85c0b8676f3d03b15",
|
||||
"sha256": "1x88bvdi9pqvpfqqwp8q59ic2ia937q07hcj2dkia17ncj2v27wd",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/weechat/scripts/archive/a69d3ff2fce34958f78395a85c0b8676f3d03b15.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"simple-nixos-mailserver": {
|
||||
"sha256": "08wcwc54b1k9gnx5z97yv4gm28lx50vnnsvk93l98zq209rpf7rq",
|
||||
"type": "tarball",
|
||||
"url": "https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/archive/0bf2bb0b54736df944c657a15069d19e01ab78a8/nixos-mailserver-0bf2bb0b54736df944c657a15069d19e01ab78a8.tar.gz",
|
||||
"url_template": "https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/archive/0bf2bb0b54736df944c657a15069d19e01ab78a8/nixos-mailserver-0bf2bb0b54736df944c657a15069d19e01ab78a8.tar.gz"
|
||||
},
|
||||
"sway": {
|
||||
"branch": "master",
|
||||
"description": "i3-compatible Wayland compositor",
|
||||
"homepage": "https://swaywm.org/",
|
||||
"owner": "swaywm",
|
||||
"repo": "sway",
|
||||
"rev": "ab77efc6caba50acc4c87e02ae3e6712ea808772",
|
||||
"sha256": "1wmjv8sj4zkmcfgfk5can2zmnq2dxggh2viaw575hzbn34nxi2pz",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/swaywm/sway/archive/ab77efc6caba50acc4c87e02ae3e6712ea808772.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"weechat-notify-send": {
|
||||
"branch": "master",
|
||||
"description": "A WeeChat script that sends highlight and message notifications through notify-send.",
|
||||
"homepage": "",
|
||||
"owner": "s3rvac",
|
||||
"repo": "weechat-notify-send",
|
||||
"rev": "b491e6acc1fe00fd1b91409444f9904587b2e588",
|
||||
"sha256": "1f9558a78ismd645c9v6p3lgda6hkgn3f63i8s4y5r8zdymx08d0",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/s3rvac/weechat-notify-send/archive/b491e6acc1fe00fd1b91409444f9904587b2e588.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"wl-clipboard": {
|
||||
"branch": "master",
|
||||
"description": "Command-line copy/paste utilities for Wayland",
|
||||
"homepage": "",
|
||||
"owner": "bugaevc",
|
||||
"repo": "wl-clipboard",
|
||||
"rev": "f3a45f69f7d14e7f7050bca4cbf6fea6697d1455",
|
||||
"sha256": "0c4w87ipsw09aii34szj9p0xfy0m00wyjpll0gb0aqmwa60p0c5d",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/bugaevc/wl-clipboard/archive/f3a45f69f7d14e7f7050bca4cbf6fea6697d1455.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"wlroots": {
|
||||
"branch": "master",
|
||||
"description": "A modular Wayland compositor library",
|
||||
"homepage": "https://swaywm.org",
|
||||
"owner": "swaywm",
|
||||
"repo": "wlroots",
|
||||
"rev": "57ffb35de009611d8edecb297bc2fd10a9a86702",
|
||||
"sha256": "0c0q1p9yss5kx4430ik3n89drqpmm2bvgl8fjlf6prac1a7xzqn8",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/swaywm/wlroots/archive/57ffb35de009611d8edecb297bc2fd10a9a86702.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
}
|
||||
}
|
134
nix/sources.nix
134
nix/sources.nix
@ -1,134 +0,0 @@
|
||||
# This file has been generated by Niv.
|
||||
|
||||
let
|
||||
|
||||
#
|
||||
# The fetchers. fetch_<type> fetches specs of type <type>.
|
||||
#
|
||||
|
||||
fetch_file = pkgs: spec:
|
||||
if spec.builtin or true then
|
||||
builtins_fetchurl { inherit (spec) url sha256; }
|
||||
else
|
||||
pkgs.fetchurl { inherit (spec) url sha256; };
|
||||
|
||||
fetch_tarball = pkgs: spec:
|
||||
if spec.builtin or true then
|
||||
builtins_fetchTarball { inherit (spec) url sha256; }
|
||||
else
|
||||
pkgs.fetchzip { inherit (spec) url sha256; };
|
||||
|
||||
fetch_git = spec:
|
||||
builtins.fetchGit { url = spec.repo; inherit (spec) rev ref; };
|
||||
|
||||
fetch_builtin-tarball = spec:
|
||||
builtins.trace
|
||||
''
|
||||
WARNING:
|
||||
The niv type "builtin-tarball" will soon be deprecated. You should
|
||||
instead use `builtin = true`.
|
||||
|
||||
$ niv modify <package> -a type=tarball -a builtin=true
|
||||
''
|
||||
builtins_fetchTarball { inherit (spec) url sha256; };
|
||||
|
||||
fetch_builtin-url = spec:
|
||||
builtins.trace
|
||||
''
|
||||
WARNING:
|
||||
The niv type "builtin-url" will soon be deprecated. You should
|
||||
instead use `builtin = true`.
|
||||
|
||||
$ niv modify <package> -a type=file -a builtin=true
|
||||
''
|
||||
(builtins_fetchurl { inherit (spec) url sha256; });
|
||||
|
||||
#
|
||||
# Various helpers
|
||||
#
|
||||
|
||||
# The set of packages used when specs are fetched using non-builtins.
|
||||
mkPkgs = sources:
|
||||
let
|
||||
sourcesNixpkgs =
|
||||
import (builtins_fetchTarball { inherit (sources.nixpkgs) url sha256; }) {};
|
||||
hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath;
|
||||
hasThisAsNixpkgsPath = <nixpkgs> == ./.;
|
||||
in
|
||||
if builtins.hasAttr "nixpkgs" sources
|
||||
then sourcesNixpkgs
|
||||
else if hasNixpkgsPath && ! hasThisAsNixpkgsPath then
|
||||
import <nixpkgs> {}
|
||||
else
|
||||
abort
|
||||
''
|
||||
Please specify either <nixpkgs> (through -I or NIX_PATH=nixpkgs=...) or
|
||||
add a package called "nixpkgs" to your sources.json.
|
||||
'';
|
||||
|
||||
# The actual fetching function.
|
||||
fetch = pkgs: name: spec:
|
||||
|
||||
if ! builtins.hasAttr "type" spec then
|
||||
abort "ERROR: niv spec ${name} does not have a 'type' attribute"
|
||||
else if spec.type == "file" then fetch_file pkgs spec
|
||||
else if spec.type == "tarball" then fetch_tarball pkgs spec
|
||||
else if spec.type == "git" then fetch_git spec
|
||||
else if spec.type == "builtin-tarball" then fetch_builtin-tarball spec
|
||||
else if spec.type == "builtin-url" then fetch_builtin-url spec
|
||||
else
|
||||
abort "ERROR: niv spec ${name} has unknown type ${builtins.toJSON spec.type}";
|
||||
|
||||
# Ports of functions for older nix versions
|
||||
|
||||
# a Nix version of mapAttrs if the built-in doesn't exist
|
||||
mapAttrs = builtins.mapAttrs or (
|
||||
f: set: with builtins;
|
||||
listToAttrs (map (attr: { name = attr; value = f attr set.${attr}; }) (attrNames set))
|
||||
);
|
||||
|
||||
# fetchTarball version that is compatible between all the versions of Nix
|
||||
builtins_fetchTarball = { url, sha256 }@attrs:
|
||||
let
|
||||
inherit (builtins) lessThan nixVersion fetchTarball;
|
||||
in
|
||||
if lessThan nixVersion "1.12" then
|
||||
fetchTarball { inherit url; }
|
||||
else
|
||||
fetchTarball attrs;
|
||||
|
||||
# fetchurl version that is compatible between all the versions of Nix
|
||||
builtins_fetchurl = { url, sha256 }@attrs:
|
||||
let
|
||||
inherit (builtins) lessThan nixVersion fetchurl;
|
||||
in
|
||||
if lessThan nixVersion "1.12" then
|
||||
fetchurl { inherit url; }
|
||||
else
|
||||
fetchurl attrs;
|
||||
|
||||
# Create the final "sources" from the config
|
||||
mkSources = config:
|
||||
mapAttrs (
|
||||
name: spec:
|
||||
if builtins.hasAttr "outPath" spec
|
||||
then abort
|
||||
"The values in sources.json should not have an 'outPath' attribute"
|
||||
else
|
||||
spec // { outPath = fetch config.pkgs name spec; }
|
||||
) config.sources;
|
||||
|
||||
# The "config" used by the fetchers
|
||||
mkConfig =
|
||||
{ sourcesFile ? ./sources.json
|
||||
, sources ? builtins.fromJSON (builtins.readFile sourcesFile)
|
||||
, pkgs ? mkPkgs sources
|
||||
}: rec {
|
||||
# The sources, i.e. the attribute set of spec name to spec
|
||||
inherit sources;
|
||||
|
||||
# The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers
|
||||
inherit pkgs;
|
||||
};
|
||||
in
|
||||
mkSources (mkConfig {}) // { __functor = _: settings: mkSources (mkConfig settings); }
|
Loading…
Reference in New Issue
Block a user