dicemaiden-flake/flake.nix

42 lines
1.2 KiB
Nix

{
description = "Dice roller discord bot";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
outputs = { self, nixpkgs }: let
pkgs = import nixpkgs { system = "x86_64-linux"; };
src = pkgs.fetchFromGitHub {
owner = "Humblemonk";
repo = "DiceMaiden";
rev = "0c94c97bb01bda9e39742e67454ca3a236911a09";
sha256 = "090g5cn0k930x4dm1p10z9729fdk8nnr3znh9ssmgk3n8wz37nlw";
};
gems = pkgs.bundlerEnv {
name = "dicemaiden-env";
gemfile = "${src}/Gemfile";
lockfile = ./Gemfile.lock;
gemset = ./gemset.nix;
ignoreCollisions = true;
};
in rec {
packages.x86_64-linux = rec {
default = dicemaiden;
dicemaiden = pkgs.stdenv.mkDerivation {
name = "dicemaiden";
src = src;
buildInputs = [ gems pkgs.ruby ];
installPhase = ''
mkdir -p $out/{bin,share/dicemaiden}
cp -r * $out/share/dicemaiden
bin=$out/bin/dicemaiden
cat > $bin <<EOF
#!/bin/sh -e
exec ${gems}/bin/bundle exec ${pkgs.ruby}/bin/ruby $out/share/dicemaiden/dice_maiden.rb "\$@"
EOF
chmod +x $bin
'';
};
};
};
}