1
0
Fork 0
nixos-config/nixos/roles/laminar/kassandra.nix
2021-12-09 23:10:09 +01:00

52 lines
1.7 KiB
Nix

{ pkgs, lib, config, ... }:
let
path = [ pkgs.git pkgs.nix pkgs.gnutar pkgs.gzip pkgs.openssh pkgs.laminar ];
setup = ''
set -e
export PATH=${lib.makeBinPath path}:$PATH
'';
repo = "/var/www/fdroid";
deploy = "${pkgs.writeShellScript "deploy" ''
systemctl restart kassandra
cd /var/cache/gc-links/kassandra-android
FILENAME=$(${pkgs.fd}/bin/fd .apk)
rm -f ${repo}/repo/*.apk
cp $FILENAME ${repo}/unsigned
cd ${repo}
export PATH=/run/current-system/sw/bin:$PATH
export ANDROID_HOME=${pkgs.androidsdk_9_0}/libexec/android-sdk
fdroid publish
fdroid update
''}";
target = name: ''
${setup}
export HOME=$PWD
git clone git@localhost:kassandra2 .
git show -q
nix-build release.nix -A ${name} --builders '@/etc/nix/machines' --show-trace -o /var/cache/gc-links/$JOB
'';
in
{
security.sudo.extraRules = [{
commands = [{
command = deploy;
options = [ "NOPASSWD" ];
}];
users = [ "laminar" ];
}];
services.laminar.cfgFiles.jobs = {
"kassandra.run" = pkgs.writeShellScript "kassandra" ''
${setup}
echo Launching and waiting for jobs lib, app, android and server
export LAMINAR_REASON="Started kassandra build $JOB:#$RUN"
laminarc run kassandra-lib kassandra-android kassandra-app kassandra-server
/run/wrappers/bin/sudo ${deploy}
'';
"kassandra-lib.run" = pkgs.writeShellScript "kassandra-lib" (target "lib");
"kassandra-app.run" = pkgs.writeShellScript "kassandra-app" (target "app");
"kassandra-android.run" =
pkgs.writeShellScript "kassandra-android" (target "android");
"kassandra-server.run" =
pkgs.writeShellScript "kassandra-server" (target "server");
};
}