diff options
Diffstat (limited to 'pkgs/by-name/ei/eintopf')
-rw-r--r-- | pkgs/by-name/ei/eintopf/frontend.nix | 62 | ||||
-rw-r--r-- | pkgs/by-name/ei/eintopf/package.nix | 55 |
2 files changed, 117 insertions, 0 deletions
diff --git a/pkgs/by-name/ei/eintopf/frontend.nix b/pkgs/by-name/ei/eintopf/frontend.nix new file mode 100644 index 0000000000000..c87c850eeb066 --- /dev/null +++ b/pkgs/by-name/ei/eintopf/frontend.nix @@ -0,0 +1,62 @@ +{ stdenv +, fetchYarnDeps +, fixup-yarn-lock +, yarn +, src +, version +, nodejs +, eintopf +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "eintopf"; + inherit version src; + + sourceRoot = "${finalAttrs.src.name}/backstage"; + + offlineCache = fetchYarnDeps { + yarnLock = "${finalAttrs.src}/backstage/yarn.lock"; + hash = "sha256-7Br2FBhLZf7Cuul5n55EHfqyW8GbujB+yZ/RK6f7I4M="; + }; + + nativeBuildInputs = [ + fixup-yarn-lock + nodejs + yarn + ]; + + configurePhase = '' + runHook preConfigure + + export HOME=$(mktemp -d) + yarn config --offline set yarn-offline-mirror $offlineCache + fixup-yarn-lock yarn.lock + yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install + patchShebangs node_modules + + runHook postConfigure + ''; + + buildPhase = '' + runHook preBuild + + yarn --offline build + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + yarn --offline --production install + + mkdir -p "$out" + cp -r . $out/ + + runHook postInstall + ''; + + meta = { + inherit (eintopf.meta) homepage description license maintainers; + }; +}) diff --git a/pkgs/by-name/ei/eintopf/package.nix b/pkgs/by-name/ei/eintopf/package.nix new file mode 100644 index 0000000000000..fddd943b7af6a --- /dev/null +++ b/pkgs/by-name/ei/eintopf/package.nix @@ -0,0 +1,55 @@ +{ lib +, buildGoModule +, fetchFromGitea +, callPackage +, nixosTests +}: + +let + version = "0.14.1"; + src = fetchFromGitea { + domain = "codeberg.org"; + owner = "Klasse-Methode"; + repo = "eintopf"; + rev = "v${version}"; + hash = "sha256-+QEAUyAqFLcc3bhGI3v4FxhDt+3P6vBnxWsFPp56lfg="; + }; + frontend = callPackage ./frontend.nix { inherit src version; }; +in + +buildGoModule rec { + pname = "eintopf"; + inherit version src; + + vendorHash = "sha256-ODVCZWxkPWW8ZlONiVXwVQalsLIUl9x512JimLAUm6U="; + + ldflags = [ + "-s" + "-w" + "-X main.version=${version}" + "-X main.revision=${src.rev}" + ]; + + preConfigure = '' + cp -R ${frontend}/. backstage/ + ''; + + preCheck = '' + # Disable test, requires running Docker daemon + rm cmd/eintopf/main_test.go + rm service/email/email_test.go + ''; + + passthru.tests = { + inherit (nixosTests) eintopf; + }; + + meta = with lib; { + description = "A calendar for Stuttgart, showing events, groups and places"; + homepage = "https://codeberg.org/Klasse-Methode/eintopf"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ onny ]; + platforms = platforms.unix; + }; +} + |