From 4565d0858fc62064d619454b558689649af28712 Mon Sep 17 00:00:00 2001 From: notgne2 Date: Mon, 27 Apr 2020 18:50:31 -0700 Subject: [PATCH] fix n format --- default.nix | 369 +++++++++++++++++++++++++++++----------------------- 1 file changed, 207 insertions(+), 162 deletions(-) diff --git a/default.nix b/default.nix index 0c7ddf3..c1048df 100644 --- a/default.nix +++ b/default.nix @@ -1,16 +1,26 @@ -{ pkgs, google-chrome, symlinkJoin, stdenv, elmPackages, libjpeg, optipng -, pngquant, libwebp, ... }: - +{ pkgs +, google-chrome +, symlinkJoin +, stdenv +, elmPackages +, libjpeg +, optipng +, pngquant +, libwebp +, ... +}: let workingElmPackages = if elmPackages.elmVersion == "0.19.1" then elmPackages else - (import { }).elmPackages; + (import {}).elmPackages; - pnpm2nix = pkgs.callPackage (builtins.fetchGit { - url = "https://github.com/notgne2/pnpm2nix.git"; - rev = "909accd35d23664254b43109ee58cd0c3d83a6d9"; - }) { }; + pnpm2nix = pkgs.callPackage ( + builtins.fetchGit { + url = "https://github.com/notgne2/pnpm2nix.git"; + rev = "909accd35d23664254b43109ee58cd0c3d83a6d9"; + } + ) {}; nodeCleanSourceFilter = name: type: pkgs.lib.cleanSourceFilter name type @@ -36,179 +46,214 @@ let pnpmLock = ./pnpm-lock.yaml; src = nodeCleanSource ./.; overrides = pnpm2nix.defaultPnpmOverrides // { - puppeteer = (drv: - drv.overrideAttrs (oldAttrs: { - preBuild = '' - # Define the local chromium directory - local_chromium=$HOME/node_modules/puppeteer/.local-chromium/linux-686378 - # Make sure that directory exists - mkdir -p $local_chromium - # Link pkgs' standard google chrome into place - cp -r --no-preserve=mode,ownership ${google-chrome}/share/google/chrome $local_chromium/chrome-linux - cp ${google-chrome}/bin/google-chrome-stable $local_chromium/chrome-linux/chrome - chmod +x $local_chromium/chrome-linux/chrome - ''; - })); - imagemin-pngquant = (drv: - drv.overrideAttrs - (oldAttrs: { buildInputs = oldAttrs.buildInputs ++ [ pkgs.libpng ]; })); - pngquant-bin = (drv: - drv.overrideAttrs (oldAttrs: { - preBuild = '' - mkdir -p $HOME/node_modules/pngquant-bin/vendor - ln -s ${pngquant}/bin/pngquant $HOME/node_modules/pngquant-bin/vendor/pngquant - ''; - })); + puppeteer = ( + drv: + drv.overrideAttrs ( + oldAttrs: { + preBuild = '' + # Define the local chromium directory + local_chromium=$HOME/node_modules/puppeteer/.local-chromium/linux-686378 + # Make sure that directory exists + mkdir -p $local_chromium + # Link pkgs' standard google chrome into place + cp -r --no-preserve=mode,ownership ${google-chrome}/share/google/chrome $local_chromium/chrome-linux + cp ${google-chrome}/bin/google-chrome-stable $local_chromium/chrome-linux/chrome + chmod +x $local_chromium/chrome-linux/chrome + ''; + } + ) + ); + imagemin-pngquant = ( + drv: + drv.overrideAttrs + (oldAttrs: { buildInputs = oldAttrs.buildInputs ++ [ pkgs.libpng ]; }) + ); + pngquant-bin = ( + drv: + drv.overrideAttrs ( + oldAttrs: { + preBuild = '' + mkdir -p $HOME/node_modules/pngquant-bin/vendor + ln -s ${pngquant}/bin/pngquant $HOME/node_modules/pngquant-bin/vendor/pngquant + ''; + } + ) + ); - gifsicle = (drv: - drv.overrideAttrs (oldAttrs: { - buildInputs = oldAttrs.buildInputs ++ [ pkgs.autoconf pkgs.automake ]; - })); + gifsicle = ( + drv: + drv.overrideAttrs ( + oldAttrs: { + buildInputs = oldAttrs.buildInputs ++ [ pkgs.autoconf pkgs.automake ]; + } + ) + ); optipng = (drv: drv.overrideAttrs (oldAttrs: { buildInputs = [ optipng ]; })); - optipng-bin = (drv: - drv.overrideAttrs (oldAttrs: { - preBuild = '' - mkdir -p $HOME/node_modules/optipng-bin/vendor - ln -s ${optipng}/bin/optipng $HOME/node_modules/optipng-bin/vendor/optipng - ''; - })); + optipng-bin = ( + drv: + drv.overrideAttrs ( + oldAttrs: { + preBuild = '' + mkdir -p $HOME/node_modules/optipng-bin/vendor + ln -s ${optipng}/bin/optipng $HOME/node_modules/optipng-bin/vendor/optipng + ''; + } + ) + ); jpegtran = (drv: drv.overrideAttrs (oldAttrs: { buildInputs = [ libjpeg ]; })); - jpegtran-bin = (drv: - drv.overrideAttrs (oldAttrs: { - preBuild = '' - mkdir -p $HOME/node_modules/jpegtran-bin/vendor - ln -s ${libjpeg}/bin/jpegtran $HOME/node_modules/jpegtran-bin/vendor/jpegtran - ''; - })); + jpegtran-bin = ( + drv: + drv.overrideAttrs ( + oldAttrs: { + preBuild = '' + mkdir -p $HOME/node_modules/jpegtran-bin/vendor + ln -s ${libjpeg}/bin/jpegtran $HOME/node_modules/jpegtran-bin/vendor/jpegtran + ''; + } + ) + ); - cwebp-bin = (drv: - drv.overrideAttrs (oldAttrs: { - buildPhase = '' - mkdir -p $HOME/node_modules/cwebp-bin/vendor/ - ln -s ${libwebp}/bin/cwebp $HOME/node_modules/cwebp-bin/vendor/cwebp - ''; - })); + cwebp-bin = ( + drv: + drv.overrideAttrs ( + oldAttrs: { + buildPhase = '' + mkdir -p $HOME/node_modules/cwebp-bin/vendor/ + ln -s ${libwebp}/bin/cwebp $HOME/node_modules/cwebp-bin/vendor/cwebp + ''; + } + ) + ); }; }; - mkWandardFront = { name, prettyName ? name, description ? "" - , themeColor ? "#000000", backgroundColor ? "#000000", src - , nodePackages ? [ ], routes ? [ "/" ], }: - let - nodeSource = symlinkJoin { - name = "${name}-node-sources"; - paths = [ builderPkg.lib ] ++ nodePackages; - }; + mkWandardFront = + { name + , prettyName ? name + , description ? "" + , themeColor ? "#000000" + , backgroundColor ? "#000000" + , src + , nodePackages ? [] + , routes ? [ "/" ] + , + }: + let + nodeSource = symlinkJoin { + name = "${name}-node-sources"; + paths = [ builderPkg.lib ] ++ nodePackages; + }; - baseWebpackConfig = builtins.readFile ./webpack.config.js; - webpackConfig = '' - const ROUTES = ${builtins.toJSON routes} - const PRETTY_NAME = ${builtins.toJSON prettyName} - const DESCRIPTION = ${builtins.toJSON description} - const THEME_COLOR = ${builtins.toJSON themeColor} - const BACKGROUND_COLOR = ${builtins.toJSON backgroundColor} - '' + "\n" + baseWebpackConfig; - webpackConfigFile = pkgs.writeText "${name}-webpack-config" webpackConfig; + baseWebpackConfig = builtins.readFile ./webpack.config.js; + webpackConfig = '' + const ROUTES = ${builtins.toJSON routes} + const PRETTY_NAME = ${builtins.toJSON prettyName} + const DESCRIPTION = ${builtins.toJSON description} + const THEME_COLOR = ${builtins.toJSON themeColor} + const BACKGROUND_COLOR = ${builtins.toJSON backgroundColor} + '' + "\n" + baseWebpackConfig; + webpackConfigFile = pkgs.writeText "${name}-webpack-config" webpackConfig; - wandInit = pkgs.writeText "wand.js" '' - document.body.innerHTML = ''' - const sourceTarget = document.createElement('script') - sourceTarget.src = '/main.js' - document.body.appendChild(sourceTarget) - ''; + wandInit = pkgs.writeText "wand.js" '' + document.body.innerHTML = ''' + const sourceTarget = document.createElement('script') + sourceTarget.src = '/main.js' + document.body.appendChild(sourceTarget) + ''; - templateHtml = pkgs.writeText "template.html" '' - - - - - ${prettyName} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ''; - in stdenv.mkDerivation { - inherit name; + templateHtml = pkgs.writeText "template.html" '' + + + + + ${prettyName} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ''; + in stdenv.mkDerivation { + inherit name; - src = elmCleanSource src; + src = elmCleanSource src; - buildInputs = with workingElmPackages; [ elm elm-format nodeSource ]; + buildInputs = with workingElmPackages; [ elm nodeSource ]; - patchPhase = '' - ln -sf ${nodeSource}/node_modules . - cp ${webpackConfigFile} webpack.config.js - cp ${ - ./imagemin-jpgify-webpack-plugin.js + patchPhase = '' + ln -sf ${nodeSource}/node_modules . + cp ${webpackConfigFile} webpack.config.js + cp ${ + ./imagemin-jpgify-webpack-plugin.js } .imagemin-jpgify-webpack-plugin.js - cp ${wandInit} wand.js - cp ${templateHtml} template.html - ''; + cp ${wandInit} wand.js + cp ${templateHtml} template.html + ''; - shellHook = '' - ln -sf ${nodeSource}/node_modules . - rm -f webpack.config.js - rm -f wand.js - rm -f template.html - cp ${webpackConfigFile} webpack.config.js - cp ${ - ./imagemin-jpgify-webpack-plugin.js + shellHook = '' + ln -sf ${nodeSource}/node_modules . + rm -f webpack.config.js + rm -f wand.js + rm -f template.html + cp ${webpackConfigFile} webpack.config.js + cp ${ + ./imagemin-jpgify-webpack-plugin.js } .imagemin-jpgify-webpack-plugin.js - cp ${wandInit} wand.js - cp ${templateHtml} template.html - export NODE_PATH=$PWD/node_modules - ''; + cp ${wandInit} wand.js + cp ${templateHtml} template.html + export NODE_PATH=$PWD/node_modules + ''; - buildPhase = workingElmPackages.fetchElmDeps { - elmPackages = import (src + "/elm-srcs.nix"); - registryDat = src + "/registry.dat"; - elmVersion = "0.19.1"; + buildPhase = workingElmPackages.fetchElmDeps { + elmPackages = import (src + "/elm-srcs.nix"); + registryDat = src + "/registry.dat"; + elmVersion = "0.19.1"; + }; + + installPhase = '' + mkdir -p $out + ${nodeSource}/node_modules/webpack-cli/bin/cli.js --mode production + mv dist/* $out + ''; }; - - installPhase = '' - mkdir -p $out - ${nodeSource}/node_modules/webpack-cli/bin/cli.js --mode production - mv dist/* $out - ''; - }; -in { inherit mkWandardFront; } +in +{ inherit mkWandardFront; }