]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - flakes/mastodon/default.nix
Squash changes containing private information
[perso/Immae/Config/Nix.git] / flakes / mastodon / default.nix
similarity index 82%
rename from pkgs/webapps/mastodon/default.nix
rename to flakes/mastodon/default.nix
index ce015c5d7d4751d9525a1c152e6ab5d4278ff88b..5d32c23234b89e0103ebe662114ae397b7155974 100644 (file)
@@ -1,23 +1,21 @@
-{ varDir ? "/var/lib/mastodon", mylibs,
-  stdenv, writeText, runCommand,
+{ varDir ? "/var/lib/mastodon",
+  stdenv, src, writeText, runCommand,
   ruby_2_6, bundlerEnv, defaultGemConfig,
   jq, protobuf, protobufc, pkgconfig, libidn, pam, nodejs, yarn, yarn2nix-moretea }:
 let
-  info = mylibs.fetchedGithub ./mastodon.json // {
-    src = runCommand "mastodon-patched" {
-      source = (mylibs.fetchedGithub ./mastodon.json).src;
+  patched = runCommand "mastodon-patched" {
+      source = src;
     } ''
     cp -a $source $out
     chmod -R u+w $out
     sed -i -e "/fuubar/s/2.4.0/2.4.1/" $out/Gemfile.lock
     sed -i -e "s/ff00dc470b5b2d9f145a6d6e977a54de5df2b4c9/ff00dc470b5b2d9f145a6d6e977a54de5df2b4c9#4255dc41fa7df9c3a02c1595f058e248bc37b784/" $out/yarn.lock
     '';
-  };
   gems = bundlerEnv {
     name = "mastodon-env";
     ruby = ruby_2_6;
     gemset = ./gemset.nix;
-    gemdir = info.src;
+    gemdir = patched;
     groups = [ "default" "production" "test" "development" ];
     gemConfig = defaultGemConfig // {
       redis-rack = attrs: {
@@ -43,15 +41,15 @@ let
   };
   yarnModules = let
     packagejson = runCommand "package.json" { buildInputs = [ jq ]; } ''
-      cat ${info.src}/package.json | jq -r '.version = "${info.version}"' > $out
+      cat ${patched}/package.json | jq -r '.version = "${src.version}"' > $out
       '';
   in
     yarn2nix-moretea.mkYarnModules rec {
       name = "mastodon-yarn";
       pname = name;
-      version = info.version;
+      version = src.version;
       packageJSON = packagejson;
-      yarnLock = "${info.src}/yarn.lock";
+      yarnLock = "${patched}/yarn.lock";
       yarnNix = ./yarn-packages.nix;
       pkgConfig = {
         uws = {
@@ -61,16 +59,20 @@ let
         };
       };
     };
-  mastodon_with_yarn = stdenv.mkDerivation (info // rec {
+  mastodon_with_yarn = stdenv.mkDerivation {
+    pname = "mastodon";
+    version = src.version;
+    inherit src;
     installPhase = ''
       cp -a . $out
       cp -a ${yarnModules}/node_modules $out
     '';
     buildInputs = [ yarnModules ];
-  });
+  };
 in
 stdenv.mkDerivation {
   name = "mastodon";
+  version = src.version;
   inherit mastodon_with_yarn;
   builder = writeText "build_mastodon" ''
       source $stdenv/setup
@@ -88,5 +90,5 @@ stdenv.mkDerivation {
       ln -sf ${varDir}/tmp/cache tmp
   '';
   buildInputs = [ gems gems.ruby nodejs yarn ];
-  passthru = { inherit gems varDir; };
+  passthru = { inherit gems varDir nodejs; };
 }