chore: Add nix flake with development shell
Signed-off-by: provokateurin <kate@provokateurin.de>pull/52952/head
parent
119727d74a
commit
0a9e6374bd
@ -0,0 +1,3 @@
|
|||||||
|
watch_file lib/versioncheck.php
|
||||||
|
watch_file package.json
|
||||||
|
use flake
|
||||||
@ -0,0 +1,61 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1747428706,
|
||||||
|
"narHash": "sha256-XVds9FkRrY59xRNNq14FNsFGqDiexXX/mlHcX4hPyyk=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "2e1496bf8652ff4af4e4d4737277f71e4a4f5cb2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-25.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
@ -0,0 +1,88 @@
|
|||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { nixpkgs, flake-utils, ... }:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system:
|
||||||
|
let
|
||||||
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
lib = pkgs.lib;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
devShells.default =
|
||||||
|
let
|
||||||
|
php_version = lib.strings.concatStrings (builtins.match ".*PHP_VERSION_ID < ([0-9])0([0-9])00.*" (builtins.readFile ./lib/versioncheck.php));
|
||||||
|
php = pkgs.pkgs."php${php_version}".buildEnv {
|
||||||
|
# Based off https://docs.nextcloud.com/server/latest/admin_manual/installation/php_configuration.html
|
||||||
|
extensions = ({ enabled, all }: enabled ++ (with all; [
|
||||||
|
# Required
|
||||||
|
ctype
|
||||||
|
curl
|
||||||
|
dom
|
||||||
|
fileinfo
|
||||||
|
filter
|
||||||
|
gd
|
||||||
|
mbstring
|
||||||
|
openssl
|
||||||
|
posix
|
||||||
|
session
|
||||||
|
simplexml
|
||||||
|
xmlreader
|
||||||
|
xmlwriter
|
||||||
|
zip
|
||||||
|
zlib
|
||||||
|
# Database connectors
|
||||||
|
pdo_sqlite
|
||||||
|
pdo_mysql
|
||||||
|
pdo_pgsql
|
||||||
|
# Recommended
|
||||||
|
intl
|
||||||
|
sodium
|
||||||
|
# Required for specific apps
|
||||||
|
ldap
|
||||||
|
smbclient
|
||||||
|
ftp
|
||||||
|
imap
|
||||||
|
# Recommended for specific apps (optional)
|
||||||
|
gmp
|
||||||
|
exif
|
||||||
|
# For enhanced server performance (optional)
|
||||||
|
apcu
|
||||||
|
memcached
|
||||||
|
redis
|
||||||
|
# For preview generation (optional)
|
||||||
|
imagick
|
||||||
|
# For command line processing (optional)
|
||||||
|
pcntl
|
||||||
|
|
||||||
|
# Debugging
|
||||||
|
xdebug
|
||||||
|
]));
|
||||||
|
|
||||||
|
extraConfig = ''
|
||||||
|
max_execution_time=300
|
||||||
|
memory_limit=-1
|
||||||
|
|
||||||
|
xdebug.mode=debug
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
node_version = builtins.substring 1 (-1) (builtins.elemAt (lib.strings.splitString "." (builtins.fromJSON (builtins.readFile ./package.json)).engines.node) 0);
|
||||||
|
node = pkgs."nodejs_${node_version}";
|
||||||
|
in
|
||||||
|
pkgs.mkShell {
|
||||||
|
NOCOVERAGE = 1;
|
||||||
|
|
||||||
|
packages = [
|
||||||
|
php
|
||||||
|
php.packages.composer
|
||||||
|
node
|
||||||
|
# Preview generation
|
||||||
|
pkgs.ffmpeg
|
||||||
|
pkgs.libreoffice
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue