Files
infinsweeper/flake.nix
T
2026-09-24 16:45:18 +01:00

63 lines
1.3 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
data_dir="''${INFINSWEEPER_DATA_DIR:-/var/lib/infinsweeper}"
DB="$data_dir/infinsweeper.db"
mkdir -p "$data_dir"
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
];
};
};
}