dotfiles
My PC Dotfiles & Websitegit clone https://github.com/maydayv7/dotfiles
packages/_obsidian.nix (1559B)
1# Obsidian Package Builders #
2{
3 lib,
4 stdenvNoCC,
5 fetchFromGitHub,
6 fetchurl,
7}: {
8 mkTheme = {
9 pname,
10 meta ? {},
11 ...
12 } @ metadata:
13 stdenvNoCC.mkDerivation {
14 inherit pname;
15 version = builtins.substring 0 7 metadata.rev;
16
17 src = fetchFromGitHub {
18 inherit (metadata) owner repo rev;
19 hash = metadata.sha256;
20 };
21
22 dontBuild = true;
23 installPhase = ''
24 runHook preInstall
25 mkdir -p $out
26 cp manifest.json theme.css $out/
27 runHook postInstall
28 '';
29
30 meta = {maintainers = ["maydayv7"];} // meta;
31 };
32
33 mkPlugin = {
34 pname,
35 owner,
36 repo,
37 version,
38 hashes,
39 meta ? {},
40 ...
41 }: let
42 base = "https://github.com/${owner}/${repo}/releases/download/${version}";
43 main = fetchurl {
44 url = "${base}/main.js";
45 hash = hashes.main;
46 };
47 manifest = fetchurl {
48 url = "${base}/manifest.json";
49 hash = hashes.manifest;
50 };
51 styles =
52 if hashes ? styles
53 then
54 fetchurl {
55 url = "${base}/styles.css";
56 hash = hashes.styles;
57 }
58 else null;
59 in
60 stdenvNoCC.mkDerivation {
61 inherit pname version;
62
63 dontUnpack = true;
64 installPhase = ''
65 runHook preInstall
66 mkdir -p $out
67 cp ${main} $out/main.js
68 cp ${manifest} $out/manifest.json
69 ${lib.optionalString (styles != null) "cp ${styles} $out/styles.css"}
70 runHook postInstall
71 '';
72
73 meta = {maintainers = ["maydayv7"];} // meta;
74 };
75}