-
Notifications
You must be signed in to change notification settings - Fork 1
/
derivation.nix
50 lines (46 loc) · 1.42 KB
/
derivation.nix
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
{ lib, pkgs, arouteserver, ... }:
let
python3 = pkgs.python3.withPackages (pp: with pp; [ matrix-client mysqlclient ]);
ansible-general = pkgs.fetchFromGitHub {
owner = "ansible-collections";
repo = "community.general";
rev = "9.0.1";
hash = "sha256-3lAzegva3j1wy21d9xdWfXBXUjCVOrjYPU1jSRSg/E4=";
};
ddix-ansible-ixp = pkgs.stdenv.mkDerivation {
name = "ddix-ansible-ixp";
src = lib.cleanSource ./.;
installPhase = ''
mkdir -p $out
mv ./* $out
mkdir -p $out/collections/ansible_collections/community
ln -s ${ansible-general} $out/collections/ansible_collections/community/general
'';
};
in
{
ddix-ixp-deploy = pkgs.writeShellApplication {
name = "ddix-ixp-deploy";
runtimeInputs = with pkgs; [
arouteserver
bgpq4
openssh
];
text = ''
export PYTHONPATH="${python3}/${python3.sitePackages}"
cd ${ddix-ansible-ixp}/plays
exec ${pkgs.util-linux}/bin/flock /tmp/ddix-ansible-ixp.lock -c "${pkgs.ansible}/bin/ansible-playbook deploy.yml ''$*"
'';
};
ddix-ixp-commit = pkgs.writeShellApplication {
name = "ddix-ixp-commit";
runtimeInputs = with pkgs; [
openssh
];
text = ''
export PYTHONPATH="${python3}/${python3.sitePackages}"
cd ${ddix-ansible-ixp}/plays
exec ${pkgs.util-linux}/bin/flock /tmp/ddix-ansible-ixp.lock -c "${pkgs.ansible}/bin/ansible-playbook commit.yml ''$*"
'';
};
}