diff options
| author | Quentin Aristote <quentin@aristote.fr> | 2022-11-14 22:28:58 +0100 |
|---|---|---|
| committer | Quentin Aristote <quentin@aristote.fr> | 2022-11-14 22:28:58 +0100 |
| commit | 8d45a910b271cf6bfa26c0ed4007392635866dc8 (patch) | |
| tree | 840d5921e513d305665c12bd81a941886353c7e0 | |
| parent | 19a0c33863da3223145e4e1c1315d5332ff53df5 (diff) | |
separate pkgs from the rest of the code
| -rw-r--r-- | default.nix | 57 | ||||
| -rw-r--r-- | flake.nix | 21 | ||||
| -rw-r--r-- | pkgs/default.nix | 5 | ||||
| -rw-r--r-- | pkgs/line-awesome-css.nix | 17 |
4 files changed, 55 insertions, 45 deletions
diff --git a/default.nix b/default.nix index 10afdef..cd1bdfe 100644 --- a/default.nix +++ b/default.nix @@ -27,43 +27,24 @@ let "printing" "grid" ] // setOption "navpos" "fixed")); - lineAwesomeCSS = { fontsRelativeDirectory ? "./webfonts" }: - pkgs.stdenv.mkDerivation rec { - name = "line-awesome-css"; - version = "v1.2.1"; - src = pkgs.fetchurl { - url = - "https://raw.githubusercontent.com/icons8/line-awesome/${version}/dist/line-awesome/css/line-awesome.css"; - sha256 = "sha256:GU24Xz6l3Ww4ZCcL2ByssTe04fHBRz9k2aZVRdj0xm4="; - }; +in pkgs.callPackage ({ + # Packages + line-awesome, line-awesome-css, yuicompressor, + # Source files + index-html ? indexHTML, classless-css ? classlessCSS, files ? data.files + , icon ? ./static/icon.png }: + let compress = "'${yuicompressor}/bin/yuicompressor'"; + in pkgs.runCommand "webpage" { } '' + mkdir "$out" + ln -sT "${index-html}" "$out/index.html" + mkdir "$out/static" + ln -sT "${icon}" "$out/static/icon.png" + ln -sT "${files}" "$out/static/files" + mkdir -p "$out/static/css" + ${compress} "${classless-css}" --type css -o "$out/static/css/classless.min.css" + mkdir -p "$out/static/css/fonts/line-awesome" + ln -sT "${line-awesome}/share/fonts/woff2" "$out/static/css/fonts/line-awesome/webfonts" + ${compress} "${line-awesome-css}" --type css -o "$out/static/css/fonts/line-awesome/line-awesome.min.css" + '') { } - phases = [ "installPhase" ]; - installPhase = '' - cp $src $out - substituteInPlace $out --replace '../fonts' '${fontsRelativeDirectory}' - ''; - }; - - webpage = { # Packages - line-awesome, yuicompressor, - # Source files - index-html ? indexHTML, classless-css ? classlessCSS - , line-awesome-css ? lineAwesomeCSS, files ? data.files - , icon ? ./static/icon.png }: - let compress = "'${yuicompressor}/bin/yuicompressor'"; - in pkgs.runCommand "webpage" { } '' - mkdir "$out" - ln -sT "${index-html}" "$out/index.html" - mkdir "$out/static" - ln -sT "${icon}" "$out/static/icon.png" - ln -sT "${files}" "$out/static/files" - mkdir -p "$out/static/css" - ${compress} "${classless-css}" --type css -o "$out/static/css/classless.min.css" - mkdir -p "$out/static/css/fonts/line-awesome" - ln -sT "${line-awesome}/share/fonts/woff2" "$out/static/css/fonts/line-awesome/webfonts" - ${compress} "${ - line-awesome-css { } - }" --type css -o "$out/static/css/fonts/line-awesome/line-awesome.min.css" - ''; -in pkgs.callPackage webpage { } @@ -12,14 +12,21 @@ outputs = { self, nixpkgs, flake-utils, data }: { lib = import ./lib { inherit (nixpkgs) lib; }; + overlays.default = final: prev: import ./pkgs { pkgs = final; }; } // flake-utils.lib.eachDefaultSystem (system: - let pkgs = nixpkgs.legacyPackages.${system}; - in rec { - packages.webpage = import ./default.nix { - inherit pkgs; - inherit (self.lib.pp) html; - data = data.formatWith."${system}" self.lib.pp.html; + let + pkgs = import nixpkgs { + inherit system; + overlays = [ self.overlays.default ]; }; - defaultPackage = packages.webpage; + in { + packages = import ./pkgs { inherit pkgs; } // { + webpage = import ./default.nix { + inherit pkgs; + inherit (self.lib.pp) html; + data = data.formatWith."${system}" self.lib.pp.html; + }; + }; + defaultPackage = self.packages."${system}".webpage; }); } diff --git a/pkgs/default.nix b/pkgs/default.nix new file mode 100644 index 0000000..af2ab5e --- /dev/null +++ b/pkgs/default.nix @@ -0,0 +1,5 @@ +{ pkgs }: + +{ + line-awesome-css = pkgs.callPackage ./line-awesome-css.nix {}; +} diff --git a/pkgs/line-awesome-css.nix b/pkgs/line-awesome-css.nix new file mode 100644 index 0000000..a00e128 --- /dev/null +++ b/pkgs/line-awesome-css.nix @@ -0,0 +1,17 @@ +{ stdenv, fetchurl, fontsRelativeDirectory ? "./webfonts" }: +stdenv.mkDerivation rec { + name = "line-awesome-css"; + version = "v1.2.1"; + + src = fetchurl { + url = + "https://raw.githubusercontent.com/icons8/line-awesome/${version}/dist/line-awesome/css/line-awesome.css"; + sha256 = "sha256:GU24Xz6l3Ww4ZCcL2ByssTe04fHBRz9k2aZVRdj0xm4="; + }; + + phases = [ "installPhase" ]; + installPhase = '' + cp $src $out + substituteInPlace $out --replace '../fonts' '${fontsRelativeDirectory}' + ''; +} |
