Loading pkgs/by-name/ad/adminer-pematon/index.php 0 → 100644 +45 −0 Original line number Diff line number Diff line <?php declare(strict_types=1); namespace nixos { use AdminerPlugin; use function sprintf; function adminer_object(): object { require_once __DIR__ . '/plugins/plugin.php'; if (!file_exists(__DIR__ . '/plugins.json')) { return new AdminerPlugin(); } $plugins = array_map( static function (string $name): ?object { $plugin = sprintf('%s/plugins/%s.php', __DIR__, $name); if (!is_readable($plugin)) { return null; } require $plugin; preg_match_all('/(\w+)/', $name, $matches); return new sprintf('Adminer%s', implode('', array_map('ucfirst', $matches[1]))); }, json_decode(file_get_contents(sprintf('%s/plugins.json', __DIR__), true)) ); return new AdminerPlugin(array_filter($plugins)); } } namespace { function adminer_object() { return \nixos\adminer_object(); } require(__DIR__ . '/adminer.php'); } pkgs/by-name/ad/adminer-pematon/package.nix 0 → 100644 +75 −0 Original line number Diff line number Diff line { lib, stdenvNoCC, fetchFromGitHub, php, writeText, nix-update-script, theme ? null, plugins ? [ ], }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "adminer-pematon"; version = "4.12"; src = fetchFromGitHub { owner = "pematon"; repo = "adminer"; rev = "refs/tags/v${finalAttrs.version}"; hash = "sha256-ExCHEsZ+VFmrom3632/1OOjb3zbZgiaZJDapBkBGUnQ="; }; nativeBuildInputs = [ php ]; buildPhase = '' runHook preBuild php compile.php runHook postBuild ''; installPhase = '' runHook preInstall mkdir $out cp temp/adminer-${finalAttrs.version}.php $out/adminer.php cp ${./index.php} $out/index.php ${lib.optionalString (theme != null) '' cp designs/${theme}/adminer.css $out/adminer.css ''} # Copy base plugin mkdir -p $out/plugins cp plugins/plugin.php $out/plugins/plugin.php ${lib.optionalString (plugins != [ ]) '' cp plugins/*.php $out/plugins/ cp ${writeText "$out/plugins.json" '' ${toString (builtins.toJSON plugins)} ''} $out/plugins.json ''} runHook postInstall ''; passthru = { updateScript = nix-update-script { }; }; meta = { description = "Database management in a single PHP file (Pematon fork)"; homepage = "https://github.com/pematon/adminer"; license = with lib.licenses; [ asl20 gpl2Only ]; maintainers = with lib.maintainers; [ johnrtitor ]; platforms = lib.platforms.all; }; }) Loading
pkgs/by-name/ad/adminer-pematon/index.php 0 → 100644 +45 −0 Original line number Diff line number Diff line <?php declare(strict_types=1); namespace nixos { use AdminerPlugin; use function sprintf; function adminer_object(): object { require_once __DIR__ . '/plugins/plugin.php'; if (!file_exists(__DIR__ . '/plugins.json')) { return new AdminerPlugin(); } $plugins = array_map( static function (string $name): ?object { $plugin = sprintf('%s/plugins/%s.php', __DIR__, $name); if (!is_readable($plugin)) { return null; } require $plugin; preg_match_all('/(\w+)/', $name, $matches); return new sprintf('Adminer%s', implode('', array_map('ucfirst', $matches[1]))); }, json_decode(file_get_contents(sprintf('%s/plugins.json', __DIR__), true)) ); return new AdminerPlugin(array_filter($plugins)); } } namespace { function adminer_object() { return \nixos\adminer_object(); } require(__DIR__ . '/adminer.php'); }
pkgs/by-name/ad/adminer-pematon/package.nix 0 → 100644 +75 −0 Original line number Diff line number Diff line { lib, stdenvNoCC, fetchFromGitHub, php, writeText, nix-update-script, theme ? null, plugins ? [ ], }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "adminer-pematon"; version = "4.12"; src = fetchFromGitHub { owner = "pematon"; repo = "adminer"; rev = "refs/tags/v${finalAttrs.version}"; hash = "sha256-ExCHEsZ+VFmrom3632/1OOjb3zbZgiaZJDapBkBGUnQ="; }; nativeBuildInputs = [ php ]; buildPhase = '' runHook preBuild php compile.php runHook postBuild ''; installPhase = '' runHook preInstall mkdir $out cp temp/adminer-${finalAttrs.version}.php $out/adminer.php cp ${./index.php} $out/index.php ${lib.optionalString (theme != null) '' cp designs/${theme}/adminer.css $out/adminer.css ''} # Copy base plugin mkdir -p $out/plugins cp plugins/plugin.php $out/plugins/plugin.php ${lib.optionalString (plugins != [ ]) '' cp plugins/*.php $out/plugins/ cp ${writeText "$out/plugins.json" '' ${toString (builtins.toJSON plugins)} ''} $out/plugins.json ''} runHook postInstall ''; passthru = { updateScript = nix-update-script { }; }; meta = { description = "Database management in a single PHP file (Pematon fork)"; homepage = "https://github.com/pematon/adminer"; license = with lib.licenses; [ asl20 gpl2Only ]; maintainers = with lib.maintainers; [ johnrtitor ]; platforms = lib.platforms.all; }; })