Make module more general
This commit is contained in:
parent
97a064b5fc
commit
837b39fe56
|
@ -17,7 +17,7 @@
|
|||
in {
|
||||
packages = forAllSystems (system: pkgs: {
|
||||
default = self.packages.${system}.gitea-theme-monokai;
|
||||
gitea-theme-monokai = pkgs.callPackage ./default.nix { };
|
||||
gitea-theme-monokai = pkgs.callPackage ./themes/monokai { };
|
||||
|
||||
test-machine = let
|
||||
system = "x86_64-linux";
|
||||
|
@ -35,10 +35,10 @@
|
|||
system.stateVersion = "23.11";
|
||||
boot.isContainer = true;
|
||||
}
|
||||
{
|
||||
({pkgs, ... }: {
|
||||
services.gitea.enable = true;
|
||||
services.gitea-themes.monokai.enable = true;
|
||||
}
|
||||
services.gitea-themes."monokai" = pkgs.gitea-theme-monokai;
|
||||
})
|
||||
];
|
||||
}).config.system.build.toplevel;
|
||||
});
|
||||
|
|
33
module.nix
33
module.nix
|
@ -1,22 +1,27 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
cfg = config.services.gitea-themes.monokai;
|
||||
cfg = config.services.gitea-themes;
|
||||
giteaCfg = config.services.gitea;
|
||||
in
|
||||
{
|
||||
options.services.gitea-themes.monokai = {
|
||||
enable = lib.mkEnableOption "monokai theme for gitea";
|
||||
package = lib.mkPackageOption pkgs "gitea-theme-monokai" { };
|
||||
options.services.gitea-themes = lib.mkOption {
|
||||
description = ''
|
||||
Derivations containing gitea themes to install.
|
||||
|
||||
The theme should be named `theme-<name>.css`, and reside in `$out/share/gitea/public/assets/css/`.
|
||||
'';
|
||||
default = { };
|
||||
type = with lib.types; attrsOf path;
|
||||
};
|
||||
|
||||
config = lib.mkIf (cfg.enable && giteaCfg.enable) {
|
||||
services.gitea.settings.ui.THEMES = lib.strings.concatStringsSep "," [
|
||||
config = lib.mkIf (cfg != { }) {
|
||||
services.gitea.settings.ui.THEMES = lib.strings.concatStringsSep "," ([
|
||||
"gitea"
|
||||
"arc-green"
|
||||
"monokai"
|
||||
];
|
||||
] ++ lib.attrNames cfg);
|
||||
|
||||
systemd.services.install-gitea-theme-monokai = {
|
||||
systemd.services.install-gitea-themes = {
|
||||
description = "Install gitea themes in gitea's CUSTOM_DIR";
|
||||
wantedBy = [ "gitea.service" ];
|
||||
requiredBy = [ "gitea.service" ];
|
||||
|
||||
|
@ -25,13 +30,11 @@ in
|
|||
User = giteaCfg.user;
|
||||
Group = giteaCfg.group;
|
||||
};
|
||||
script = ''
|
||||
script = lib.concatMapStringsSep "\n" (theme-package: ''
|
||||
mkdir -p "${giteaCfg.customDir}/public/assets/css"
|
||||
if ! [ -f "${giteaCfg.customDir}/public/assets/css/theme-monokai.css" ]; then
|
||||
ln -s "${cfg.package}/share/gitea/public/assets/css/theme-monokai.css" "${giteaCfg.customDir}/public/assets/css/theme-monokai.css"
|
||||
ln -s "${cfg.package}/share/gitea/public/css/theme-monokai.css" "${giteaCfg.customDir}/public/css/theme-monokai.css"
|
||||
fi
|
||||
'';
|
||||
find "${theme-package}/share/gitea/public/assets/css" -name '*.css' -exec install -Dm444 -t "${giteaCfg.customDir}/public/assets/css/" \;
|
||||
find "${theme-package}/share/gitea/public/assets/css" -name '*.css' -exec install -Dm444 -t "${giteaCfg.customDir}/public/css/" \;
|
||||
'') (lib.attrValues cfg);
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -6,5 +6,5 @@ runCommand "gitea-monokai-theme" {
|
|||
buildInputs = [ lessc ];
|
||||
} ''
|
||||
mkdir $out
|
||||
lessc ${./theme-monokai.less} $out/share/gitea/custom/public/assets/css/theme-monokai.css
|
||||
lessc ${./theme-monokai.less} $out/share/gitea/public/assets/css/theme-monokai.css
|
||||
''
|
Loading…
Reference in New Issue