Files
2026-09-24 18:49:34 +01:00

63 lines
1.2 KiB
Nix

{
description = "Infinsweeper";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
};
outputs =
{ nixpkgs, ... }:
let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
ruby = pkgs.ruby.withPackages (
p: with p; [
sqlite3
sequel
rackup
puma
sinatra
]
);
app = pkgs.stdenv.mkDerivation {
pname = "infinsweeper";
version = "0.1.0";
src = ./.;
buildInputs = [ ruby ];
installPhase = ''
mkdir -p $out
cp -r . $out/
'';
};
server = pkgs.writeShellApplication {
name = "infinsweeper";
runtimeInputs = [ ruby ];
text = ''
set -euo pipefail
export DB="''${INFINSWEEPER_DB:-/var/lib/infinsweeper.db}"
exec ruby ${app}/main.rb
'';
};
in
{
packages.${system}.default = app;
apps.${system}.default = {
type = "app";
program = "${server}/bin/infinsweeper";
};
devShells.${system}.default = pkgs.mkShell {
packages = [
ruby
pkgs.sqlite
];
env.INFINSWEEPER_DB = "./infinsweeper.db";
};
};
}