From 522d87f51da8920ae67d0c0cefce3fe2912d29fe Mon Sep 17 00:00:00 2001 From: Andreas Schaafsma Date: Wed, 18 Feb 2026 02:57:25 +0100 Subject: [PATCH] add cs-demo-manager appimage package, and group with postgresql for cs-tools module. --- modules/nixos/cs-tools/default.nix | 24 ++++++++++++++++ packages/cs-demo-manager/default.nix | 43 ++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 modules/nixos/cs-tools/default.nix create mode 100644 packages/cs-demo-manager/default.nix diff --git a/modules/nixos/cs-tools/default.nix b/modules/nixos/cs-tools/default.nix new file mode 100644 index 0000000..b09c373 --- /dev/null +++ b/modules/nixos/cs-tools/default.nix @@ -0,0 +1,24 @@ +{ lib, pkgs, config, namespace, ... }: + +let + cfg = config.${namespace}.cs-tools; +in +{ + options.${namespace}.cs-tools = { + enable = lib.mkEnableOption "CS tools including CS Demo Manager and PostgreSQL"; + }; + + config = lib.mkIf cfg.enable { + services.postgresql = { + enable = true; + ensureDatabases = [ "csdm" ]; + ensureUsers = [{ + name = "csdm"; + }]; + }; + environment.systemPackages = with pkgs; [ + my-namespace.cs-demo-manager + postgresql + ]; + }; +} \ No newline at end of file diff --git a/packages/cs-demo-manager/default.nix b/packages/cs-demo-manager/default.nix new file mode 100644 index 0000000..0309a7c --- /dev/null +++ b/packages/cs-demo-manager/default.nix @@ -0,0 +1,43 @@ +{ lib +, stdenv +, fetchurl +, appimageTools +, postgresql +, procps +, ... +}: + +let + pname = "cs-demo-manager"; + version = "3.18.2"; + + src = fetchurl { + url = "https://github.com/akiver/cs-demo-manager/releases/download/v${version}/CS-Demo-Manager-${version}.AppImage"; + hash = "sha256-REEhqvfYSKD7EyIYJVlbkQu0h5FZcofc8X7Zhu1xZnA="; # You need to add the hash after first build attempt + }; + + appimageContents = appimageTools.extractType2 { + inherit pname version src; + }; +in +appimageTools.wrapType2 { + inherit pname version src; + + extraPkgs = pkgs: [ postgresql procps ]; + + extraInstallCommands = '' + install -m 444 -D ${appimageContents}/cs-demo-manager.desktop $out/share/applications/cs-demo-manager.desktop + install -m 444 -D ${appimageContents}/cs-demo-manager.png $out/share/icons/hicolor/512x512/apps/cs-demo-manager.png + + substituteInPlace $out/share/applications/cs-demo-manager.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + ''; + + meta = with lib; { + description = "An application to manage Counter-Strike demos"; + homepage = "https://github.com/akiver/cs-demo-manager"; + license = licenses.gpl2Plus; + platforms = [ "x86_64-linux" ]; + maintainers = [ ]; + }; +} \ No newline at end of file