adminer-pematon: init at 4.12 (#358530)
This commit is contained in:
commit
d1d5334c2f
45
pkgs/by-name/ad/adminer-pematon/index.php
Normal file
45
pkgs/by-name/ad/adminer-pematon/index.php
Normal file
@ -0,0 +1,45 @@
|
||||
<?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');
|
||||
}
|
75
pkgs/by-name/ad/adminer-pematon/package.nix
Normal file
75
pkgs/by-name/ad/adminer-pematon/package.nix
Normal file
@ -0,0 +1,75 @@
|
||||
{
|
||||
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…
Reference in New Issue
Block a user