loomio-nix/pkg/loomio/default.nix
2024-08-23 10:24:36 +02:00

39 lines
963 B
Nix

{stdenv, writeText, callPackage, bundlerEnv, ruby_3_2 }:
let
gemfile-patch = callPackage ./gemfile-patch.nix {};
src = callPackage ./source.nix { patches = [gemfile-patch];};
gems = bundlerEnv {
name = "loomio-env";
ruby = ruby_3_2;
gemset = ./. + "/gemset.nix";
gemdir = src;
};
databaseConfig = writeText "database.yml" ''
production:
url: <%= ENV['DATABASE_URL'] %>
'';
in stdenv.mkDerivation {
name = "loomio";
inherit src;
buildInputs = [gems ruby_3_2];
installPhase = ''
mkdir -p $out/{bin,share/loomio}
cp -r * $out/share/loomio
bin=$out/bin/loomio
cp ${databaseConfig} $out/share/loomio/config/database.yml
cat > $bin <<EOF
#!/usr/bin/env bash
set -ex
export BUNDLE_FORCE_RUBY_PLATFORM=true
export RAILS_ENV=production
${gems}/bin/bundle exec rake -f $out/share/loomio/Rakefile db:prepare
${gems}/bin/bundle exec puma -C $out/share/loomio/config/puma.rb
EOF
chmod +x $bin
'';
}