chromium,chromedriver: 129.0.6668.91 -> 129.0.6668.100
[NixPkgs.git] / pkgs / by-name / if / ifm-web / package.nix
blob330334cb428415a4efaf35a916e31d0c191ffcfb
2   fetchurl,
3   stdenv,
4   lib,
5   php83,
6   writeShellScript,
7   nixosTests,
8 }:
9 let
10   version = "4.0.2";
11   src = fetchurl {
12     url = "https://github.com/misterunknown/ifm/releases/download/v${version}/cdn.ifm.php";
13     hash = "sha256-37WbRM6D7JGmd//06zMhxMGIh8ioY8vRUmxX4OHgqBE=";
14   };
16   serve_script = writeShellScript "ifm-serve" ''
17     if [ $# -ne 3 ]; then
18       echo "Usage: $0 <listen address> <port> <data directory>";
19       exit 1;
20     fi
22     SERVE_DIR=$(dirname "$0")/../php/
23     IFM_ROOT_DIR="$3" ${lib.getExe php83} -S "$1:$2" -t "$SERVE_DIR"
24   '';
26 stdenv.mkDerivation {
27   pname = "ifm";
28   inherit version src;
30   dontUnpack = true;
32   installPhase = ''
33     runHook preInstall
34     mkdir -p $out/bin $out/php
35     cp $src $out/php/index.php
36     cp ${serve_script} $out/bin/ifm
37     runHook postInstall
38   '';
40   passthru.tests = {
41     inherit (nixosTests) ifm;
42   };
44   meta = {
45     description = "Improved File Manager, a single-file web-based filemanager";
46     longDescription = ''
47       The IFM is a web-based filemanager, which comes as a single file solution using HTML5, CSS3, JavaScript and PHP.
48     '';
49     homepage = "https://github.com/misterunknown/ifm";
50     changelog = "https://github.com/misterunknown/ifm/releases/tag/v${version}";
51     license = lib.licenses.mit;
52     maintainers = with lib.maintainers; [ litchipi ];
53     mainProgram = "ifm";
54   };