chore: Add nix flake with development shell
Signed-off-by: provokateurin <kate@provokateurin.de>pull/52891/head
parent
4b62b5785e
commit
0c2cc0e9e1
@ -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