nix develop: Go, gopls, shellcheck, make, curl, jq, Python, Node.js, oxipng and ImageMagick; on Linux also Ghostty, Xvfb, xdotool, DejaVu fonts and Chromium for the README screenshots and the webOS app. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
63 lines
2.1 KiB
Nix
63 lines
2.1 KiB
Nix
{
|
|
description = "arr-tui: a terminal UI (and webOS TV app) for Radarr, Sonarr and SABnzbd";
|
|
|
|
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
|
|
outputs = { self, nixpkgs }:
|
|
let
|
|
systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
|
|
forAll = f: nixpkgs.lib.genAttrs systems (system: f nixpkgs.legacyPackages.${system});
|
|
in
|
|
{
|
|
# nix develop: everything make test, the release script, the README
|
|
# screenshots (dev/screenshots) and the webOS app (webos/) need.
|
|
# Containers for dev/up.sh (docker or podman) come from the system.
|
|
devShells = forAll (pkgs: {
|
|
default = pkgs.mkShell {
|
|
packages = with pkgs; [
|
|
# arr-tui
|
|
go
|
|
gopls
|
|
gnumake
|
|
shellcheck
|
|
git
|
|
# scripts/release.sh, dev/up.sh
|
|
curl
|
|
jq
|
|
# dev/screenshots (fake services), webos (app, tests, ares CLI)
|
|
python3
|
|
nodejs_24
|
|
# README pictures: oxipng compresses them
|
|
oxipng
|
|
imagemagick
|
|
] ++ lib.optionals stdenv.hostPlatform.isLinux [
|
|
# dev/screenshots/take.sh: Ghostty on a virtual X display
|
|
ghostty
|
|
xvfb-run
|
|
xorg-server
|
|
xdotool
|
|
fontconfig
|
|
dejavu_fonts
|
|
# webos/dev/drive.mjs
|
|
chromium
|
|
];
|
|
|
|
# posters.sh asks fontconfig for the DejaVu fonts: the system's
|
|
# fonts plus DejaVu.
|
|
FONTCONFIG_FILE = pkgs.lib.optionalString pkgs.stdenv.hostPlatform.isLinux (pkgs.writeText "fonts.conf" ''
|
|
<?xml version="1.0"?>
|
|
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
|
<fontconfig>
|
|
<include ignore_missing="yes">/etc/fonts/fonts.conf</include>
|
|
<dir>${pkgs.dejavu_fonts}/share/fonts</dir>
|
|
</fontconfig>
|
|
'');
|
|
|
|
shellHook = pkgs.lib.optionalString pkgs.stdenv.hostPlatform.isLinux ''
|
|
export CHROMIUM=${pkgs.chromium}/bin/chromium
|
|
'';
|
|
};
|
|
});
|
|
};
|
|
}
|