From 3d237e7099638ea0faf99d1a40ee9ca8f75faa9d Mon Sep 17 00:00:00 2001 From: Timothy DeHerrera Date: Tue, 1 Nov 2022 17:23:22 -0600 Subject: [PATCH] personalize --- .envrc | 2 + .gitignore | 3 + README.md | 52 - flake.lock | 237 + flake.nix | 15 + nix/automation/devshells.nix | 21 + nix/automation/packages/astro/default.nix | 17 + nix/automation/packages/astro/node-env.nix | 686 ++ .../packages/astro/node-packages.nix | 5760 +++++++++++++++++ nix/automation/packages/default.nix | 6 + public/assets/logo.svg | 13 +- public/astro-ink-logo.png | Bin 75181 -> 0 bytes src/config.ts | 13 +- tailwind.theme.config.js | 8 +- 14 files changed, 6758 insertions(+), 75 deletions(-) create mode 100644 .envrc delete mode 100644 README.md create mode 100644 flake.lock create mode 100755 flake.nix create mode 100755 nix/automation/devshells.nix create mode 100755 nix/automation/packages/astro/default.nix create mode 100755 nix/automation/packages/astro/node-env.nix create mode 100755 nix/automation/packages/astro/node-packages.nix create mode 100755 nix/automation/packages/default.nix delete mode 100644 public/astro-ink-logo.png diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..9cbfabe --- /dev/null +++ b/.envrc @@ -0,0 +1,2 @@ +. "$(nix eval --raw .#__std.direnv_lib)" +use std cells //automation/devshells:default diff --git a/.gitignore b/.gitignore index a25bbd1..6f29e00 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,6 @@ yarn-error.log* # Local Netlify folder .netlify netlify + +# Nix +.std diff --git a/README.md b/README.md deleted file mode 100644 index 7b36683..0000000 --- a/README.md +++ /dev/null @@ -1,52 +0,0 @@ -
- -
-
-
Astro Ink is a minimal theme created to serve minimalistic markdown-based blog needs. It ships with almost all the basic Astro components that you might need while creating light-weight, performant, personal blogs, that focus on shipping less Javascript by default.
-
- -
-
- PRs welcome! - License - - Follow @aftabbuddy - -
-
- -Astro Banner - -It's hugely inspired by [Hugo](https://github.com/knadh/hugo-ink)'s Ink theme and strives to remain light, while providing the basis for a beautiful, minimal blog. - -## Features -- __Minimal, Crisp, Markdown-Blog Ready__ -- __Uses `astro 1.1.5`__ - It uses Astro's latest `1.1.5` release under the hood -- __Svelte Ready__ - In its effort to remain light-weight, performant, and more approachable from Astro's POV, Svelte is used for interactive components like the theme switcher -- __Modular__ - The structure is highly modular, with components doing just one job, and one job well. -- __Collection + Dynamic Pages__ - It's ready with Next.js like dynamic pages, to support a tag-based classification system with paginated results, all configurable -- __Dark Mode & Color Codes__ - It supports dark mode, and __6+__ color modes that's selected using `tailwind.config.js`. You can pass `THEME_KEY` with the `dev` or `build` script/commands ex: `THEME_KEY=purpleheart astro build/dev` to change the color theme being used. All the available themes can be found in [tailwind.theme.config.js](./tailwind.theme.config.js). To customize the blog section, add any of the Tailwind Typography's `prose-{color}` classes as referred [here](./src/components/Prose.astro) -- __Netlify CMS*NEW__ - Add/Edit/Update all the posts in the `/blog` directory by visiting `your-site.netlify.com/admin` ex: [astro-ink.netlify.app/admin](https://astro-ink.netlify.app/admin) with your Netlify credentials. It needs Netlify Identity(https://app.netlify.com/sites/your-site/settings/identity#registration -) and Git Gateway(https://app.netlify.com/sites/your-site/settings/identity#services) enabled. -- __Future Posts*NEW__(with Github Actions) - Create posts in the `/src/drafts` directory with a future `date` in the `YYYY-MM-DD` format, and let a specially crafted [Github Action](https://github.com/marketplace/actions/ssg-publish-drafts) take care of auto-publishing it on your specified date. You can configure the check interval in [Github Action](https://github.com/one-aalam/astro-ink/blob/main/.github/workflows/main.yml). -- __Client-Side Search*NEW__ - Allow your users get to your blog posts quickly with client-side search feat. Lunr.js - -## How to start? -There's not much to know about commands. Just clone this template, and start working from your clone. You have all the common NPM commands at your disposal like `dev`, `build`, etc. Refer [package.json](./package.json) to see a list of all the available commands. - -## Built with Astro Ink -- [jamesperkins.dev](https://www.jamesperkins.dev/) - Personal site of developer, YouTube instructor [James R Perkins](https://twitter.com/james_r_perkins) -- [highlandcows.github.io](https://highlandcows.github.io/) [Nick Jacob](https://github.com/njacobs5074)'s personal blog - -> know a site built with Astro Ink? Let me know on [Twitter](https://twitter.com/aftabbuddy) - -## Wanna learn Astro while building Ink? -This theme was initially built with first an alpha, and then a beta version of the `Astro` Framework. If you're just starting with `Astro`, you can actually learn `Astro` while building this very theme by following a series of blogs I've written that teaches you Astro ground-up! - -Head over to `aalam.in/blog` and know -- [How to set Astro up and get it running with essential defaults for styling, prototyping, and incremental deployments](https://aalam.in/blog/astro-get-up-and-running) -- [Managing presentational components and creating Astro pages](https://aalam.in/blog/astro-and-site-strcuture) -- [Feeding local as well as remote data to the Astro pages](https://aalam.in/blog/astro-and-data) -- [Putting interactivity where you absolutely cannot do without it in Astro](https://aalam.in/blog/astro-and-interactivity) -- [Creating data-driven, dynamic pages and paginated results in Astro](https://aalam.in/blog/astro-and-dynamic-pages) -- [Author your Astro site's content with Git-based CMSs](https://aalam.in/blog/astro-and-git-cms-netlify) diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..73ffb95 --- /dev/null +++ b/flake.lock @@ -0,0 +1,237 @@ +{ + "nodes": { + "blank": { + "locked": { + "lastModified": 1625557891, + "narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=", + "owner": "divnix", + "repo": "blank", + "rev": "5a5d2684073d9f563072ed07c871d577a6c614a8", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "blank", + "type": "github" + } + }, + "devshell": { + "inputs": { + "flake-utils": [ + "std", + "flake-utils" + ], + "nixpkgs": [ + "std", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1663445644, + "narHash": "sha256-+xVlcK60x7VY1vRJbNUEAHi17ZuoQxAIH4S4iUFUGBA=", + "owner": "numtide", + "repo": "devshell", + "rev": "e3dc3e21594fe07bdb24bdf1c8657acaa4cb8f66", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, + "dmerge": { + "inputs": { + "nixlib": [ + "std", + "nixpkgs" + ], + "yants": [ + "std", + "yants" + ] + }, + "locked": { + "lastModified": 1659548052, + "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", + "owner": "divnix", + "repo": "data-merge", + "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "data-merge", + "type": "github" + } + }, + "flake-utils": { + "locked": { + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "mdbook-kroki-preprocessor": { + "flake": false, + "locked": { + "lastModified": 1661755005, + "narHash": "sha256-1TJuUzfyMycWlOQH67LR63/ll2GDZz25I3JfScy/Jnw=", + "owner": "JoelCourtney", + "repo": "mdbook-kroki-preprocessor", + "rev": "93adb5716d035829efed27f65f2f0833a7d3e76f", + "type": "github" + }, + "original": { + "owner": "JoelCourtney", + "repo": "mdbook-kroki-preprocessor", + "type": "github" + } + }, + "n2c": { + "inputs": { + "flake-utils": [ + "std", + "flake-utils" + ], + "nixpkgs": [ + "std", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1665039323, + "narHash": "sha256-SAh3ZjFGsaCI8FRzXQyp56qcGdAqgKEfJWPCQ0Sr7tQ=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "b008fe329ffb59b67bf9e7b08ede6ee792f2741a", + "type": "github" + }, + "original": { + "owner": "nlewo", + "repo": "nix2container", + "type": "github" + } + }, + "nixago": { + "inputs": { + "flake-utils": [ + "std", + "flake-utils" + ], + "nixago-exts": [ + "std", + "blank" + ], + "nixpkgs": [ + "std", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1661824785, + "narHash": "sha256-/PnwdWoO/JugJZHtDUioQp3uRiWeXHUdgvoyNbXesz8=", + "owner": "nix-community", + "repo": "nixago", + "rev": "8c1f9e5f1578d4b2ea989f618588d62a335083c3", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixago", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1665087388, + "narHash": "sha256-FZFPuW9NWHJteATOf79rZfwfRn5fE0wi9kRzvGfDHPA=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "95fda953f6db2e9496d2682c4fc7b82f959878f7", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": [ + "std", + "nixpkgs" + ], + "std": "std" + } + }, + "std": { + "inputs": { + "blank": "blank", + "devshell": "devshell", + "dmerge": "dmerge", + "flake-utils": "flake-utils", + "makes": [ + "std", + "blank" + ], + "mdbook-kroki-preprocessor": "mdbook-kroki-preprocessor", + "microvm": [ + "std", + "blank" + ], + "n2c": "n2c", + "nixago": "nixago", + "nixpkgs": "nixpkgs", + "yants": "yants" + }, + "locked": { + "lastModified": 1666470773, + "narHash": "sha256-ev+qGyXfF0sLeCusPNa743YIV8yP7+PQUF0YwFgucOM=", + "owner": "divnix", + "repo": "std", + "rev": "b32d94cbd78fc212c9a47c0f0f8e68987bc54595", + "type": "github" + }, + "original": { + "owner": "divnix", + "ref": "nixpkgs-config", + "repo": "std", + "type": "github" + } + }, + "yants": { + "inputs": { + "nixpkgs": [ + "std", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1660507851, + "narHash": "sha256-BKjq7JnVuUR/xDtcv6Vm9GYGKAblisXrAgybor9hT/s=", + "owner": "divnix", + "repo": "yants", + "rev": "0b895ca02a8fa72bad50b454cb3e7d8a66407c96", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "yants", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100755 index 0000000..9289c79 --- /dev/null +++ b/flake.nix @@ -0,0 +1,15 @@ +{ + inputs.std.url = "github:divnix/std/nixpkgs-config"; + inputs.nixpkgs.follows = "std/nixpkgs"; + outputs = inputs @ {std, ...}: + std.growOn { + inherit inputs; + nixpkgsConfig.allowUnfree = true; + systems = ["x86_64-linux"]; + cellsFrom = ./nix; + cellBlocks = [ + (std.installables "packages") + (std.devshells "devshells") + ]; + }; +} diff --git a/nix/automation/devshells.nix b/nix/automation/devshells.nix new file mode 100755 index 0000000..0f70ae5 --- /dev/null +++ b/nix/automation/devshells.nix @@ -0,0 +1,21 @@ +{ + inputs, + cell, +}: let + inherit (inputs.nixpkgs) pkgs; + inherit (inputs.std) std; +in { + default = std.lib.mkShell { + name = "blg.nrd.sh"; + imports = [std.devshellProfiles.default]; + commands = [ + {package = cell.packages.astro;} + {package = pkgs.nodejs_latest;} + {package = pkgs.nodePackages_latest.node2nix;} + {package = pkgs.nodePackages_latest.svgo;} + {package = pkgs.nodePackages_latest.yarn;} + {package = pkgs.pngout;} + {package = pkgs.libwebp;} + ]; + }; +} diff --git a/nix/automation/packages/astro/default.nix b/nix/automation/packages/astro/default.nix new file mode 100755 index 0000000..08f947e --- /dev/null +++ b/nix/automation/packages/astro/default.nix @@ -0,0 +1,17 @@ +# This file has been generated by node2nix 1.11.1. Do not edit! + +{pkgs ? import { + inherit system; + }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-14_x"}: + +let + nodeEnv = import ./node-env.nix { + inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript; + inherit pkgs nodejs; + libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; + }; +in +import ./node-packages.nix { + inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit; + inherit nodeEnv; +} diff --git a/nix/automation/packages/astro/node-env.nix b/nix/automation/packages/astro/node-env.nix new file mode 100755 index 0000000..5dad9ec --- /dev/null +++ b/nix/automation/packages/astro/node-env.nix @@ -0,0 +1,686 @@ +# This file originates from node2nix + +{lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile, writeShellScript}: + +let + # Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master + utillinux = if pkgs ? utillinux then pkgs.utillinux else pkgs.util-linux; + + python = if nodejs ? python then nodejs.python else python2; + + # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise + tarWrapper = runCommand "tarWrapper" {} '' + mkdir -p $out/bin + + cat > $out/bin/tar <> $out/nix-support/hydra-build-products + ''; + }; + + # Common shell logic + installPackage = writeShellScript "install-package" '' + installPackage() { + local packageName=$1 src=$2 + + local strippedName + + local DIR=$PWD + cd $TMPDIR + + unpackFile $src + + # Make the base dir in which the target dependency resides first + mkdir -p "$(dirname "$DIR/$packageName")" + + if [ -f "$src" ] + then + # Figure out what directory has been unpacked + packageDir="$(find . -maxdepth 1 -type d | tail -1)" + + # Restore write permissions to make building work + find "$packageDir" -type d -exec chmod u+x {} \; + chmod -R u+w "$packageDir" + + # Move the extracted tarball into the output folder + mv "$packageDir" "$DIR/$packageName" + elif [ -d "$src" ] + then + # Get a stripped name (without hash) of the source directory. + # On old nixpkgs it's already set internally. + if [ -z "$strippedName" ] + then + strippedName="$(stripHash $src)" + fi + + # Restore write permissions to make building work + chmod -R u+w "$strippedName" + + # Move the extracted directory into the output folder + mv "$strippedName" "$DIR/$packageName" + fi + + # Change to the package directory to install dependencies + cd "$DIR/$packageName" + } + ''; + + # Bundle the dependencies of the package + # + # Only include dependencies if they don't exist. They may also be bundled in the package. + includeDependencies = {dependencies}: + lib.optionalString (dependencies != []) ( + '' + mkdir -p node_modules + cd node_modules + '' + + (lib.concatMapStrings (dependency: + '' + if [ ! -e "${dependency.packageName}" ]; then + ${composePackage dependency} + fi + '' + ) dependencies) + + '' + cd .. + '' + ); + + # Recursively composes the dependencies of a package + composePackage = { name, packageName, src, dependencies ? [], ... }@args: + builtins.addErrorContext "while evaluating node package '${packageName}'" '' + installPackage "${packageName}" "${src}" + ${includeDependencies { inherit dependencies; }} + cd .. + ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} + ''; + + pinpointDependencies = {dependencies, production}: + let + pinpointDependenciesFromPackageJSON = writeTextFile { + name = "pinpointDependencies.js"; + text = '' + var fs = require('fs'); + var path = require('path'); + + function resolveDependencyVersion(location, name) { + if(location == process.env['NIX_STORE']) { + return null; + } else { + var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json"); + + if(fs.existsSync(dependencyPackageJSON)) { + var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON)); + + if(dependencyPackageObj.name == name) { + return dependencyPackageObj.version; + } + } else { + return resolveDependencyVersion(path.resolve(location, ".."), name); + } + } + } + + function replaceDependencies(dependencies) { + if(typeof dependencies == "object" && dependencies !== null) { + for(var dependency in dependencies) { + var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency); + + if(resolvedVersion === null) { + process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n"); + } else { + dependencies[dependency] = resolvedVersion; + } + } + } + } + + /* Read the package.json configuration */ + var packageObj = JSON.parse(fs.readFileSync('./package.json')); + + /* Pinpoint all dependencies */ + replaceDependencies(packageObj.dependencies); + if(process.argv[2] == "development") { + replaceDependencies(packageObj.devDependencies); + } + else { + packageObj.devDependencies = {}; + } + replaceDependencies(packageObj.optionalDependencies); + replaceDependencies(packageObj.peerDependencies); + + /* Write the fixed package.json file */ + fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2)); + ''; + }; + in + '' + node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"} + + ${lib.optionalString (dependencies != []) + '' + if [ -d node_modules ] + then + cd node_modules + ${lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies} + cd .. + fi + ''} + ''; + + # Recursively traverses all dependencies of a package and pinpoints all + # dependencies in the package.json file to the versions that are actually + # being used. + + pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args: + '' + if [ -d "${packageName}" ] + then + cd "${packageName}" + ${pinpointDependencies { inherit dependencies production; }} + cd .. + ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} + fi + ''; + + # Extract the Node.js source code which is used to compile packages with + # native bindings + nodeSources = runCommand "node-sources" {} '' + tar --no-same-owner --no-same-permissions -xf ${nodejs.src} + mv node-* $out + ''; + + # Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty) + addIntegrityFieldsScript = writeTextFile { + name = "addintegrityfields.js"; + text = '' + var fs = require('fs'); + var path = require('path'); + + function augmentDependencies(baseDir, dependencies) { + for(var dependencyName in dependencies) { + var dependency = dependencies[dependencyName]; + + // Open package.json and augment metadata fields + var packageJSONDir = path.join(baseDir, "node_modules", dependencyName); + var packageJSONPath = path.join(packageJSONDir, "package.json"); + + if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored + console.log("Adding metadata fields to: "+packageJSONPath); + var packageObj = JSON.parse(fs.readFileSync(packageJSONPath)); + + if(dependency.integrity) { + packageObj["_integrity"] = dependency.integrity; + } else { + packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads. + } + + if(dependency.resolved) { + packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided + } else { + packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories. + } + + if(dependency.from !== undefined) { // Adopt from property if one has been provided + packageObj["_from"] = dependency.from; + } + + fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2)); + } + + // Augment transitive dependencies + if(dependency.dependencies !== undefined) { + augmentDependencies(packageJSONDir, dependency.dependencies); + } + } + } + + if(fs.existsSync("./package-lock.json")) { + var packageLock = JSON.parse(fs.readFileSync("./package-lock.json")); + + if(![1, 2].includes(packageLock.lockfileVersion)) { + process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n"); + process.exit(1); + } + + if(packageLock.dependencies !== undefined) { + augmentDependencies(".", packageLock.dependencies); + } + } + ''; + }; + + # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes + reconstructPackageLock = writeTextFile { + name = "reconstructpackagelock.js"; + text = '' + var fs = require('fs'); + var path = require('path'); + + var packageObj = JSON.parse(fs.readFileSync("package.json")); + + var lockObj = { + name: packageObj.name, + version: packageObj.version, + lockfileVersion: 2, + requires: true, + packages: { + "": { + name: packageObj.name, + version: packageObj.version, + license: packageObj.license, + bin: packageObj.bin, + dependencies: packageObj.dependencies, + engines: packageObj.engines, + optionalDependencies: packageObj.optionalDependencies + } + }, + dependencies: {} + }; + + function augmentPackageJSON(filePath, packages, dependencies) { + var packageJSON = path.join(filePath, "package.json"); + if(fs.existsSync(packageJSON)) { + var packageObj = JSON.parse(fs.readFileSync(packageJSON)); + packages[filePath] = { + version: packageObj.version, + integrity: "sha1-000000000000000000000000000=", + dependencies: packageObj.dependencies, + engines: packageObj.engines, + optionalDependencies: packageObj.optionalDependencies + }; + dependencies[packageObj.name] = { + version: packageObj.version, + integrity: "sha1-000000000000000000000000000=", + dependencies: {} + }; + processDependencies(path.join(filePath, "node_modules"), packages, dependencies[packageObj.name].dependencies); + } + } + + function processDependencies(dir, packages, dependencies) { + if(fs.existsSync(dir)) { + var files = fs.readdirSync(dir); + + files.forEach(function(entry) { + var filePath = path.join(dir, entry); + var stats = fs.statSync(filePath); + + if(stats.isDirectory()) { + if(entry.substr(0, 1) == "@") { + // When we encounter a namespace folder, augment all packages belonging to the scope + var pkgFiles = fs.readdirSync(filePath); + + pkgFiles.forEach(function(entry) { + if(stats.isDirectory()) { + var pkgFilePath = path.join(filePath, entry); + augmentPackageJSON(pkgFilePath, packages, dependencies); + } + }); + } else { + augmentPackageJSON(filePath, packages, dependencies); + } + } + }); + } + } + + processDependencies("node_modules", lockObj.packages, lockObj.dependencies); + + fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2)); + ''; + }; + + # Script that links bins defined in package.json to the node_modules bin directory + # NPM does not do this for top-level packages itself anymore as of v7 + linkBinsScript = writeTextFile { + name = "linkbins.js"; + text = '' + var fs = require('fs'); + var path = require('path'); + + var packageObj = JSON.parse(fs.readFileSync("package.json")); + + var nodeModules = Array(packageObj.name.split("/").length).fill("..").join(path.sep); + + if(packageObj.bin !== undefined) { + fs.mkdirSync(path.join(nodeModules, ".bin")) + + if(typeof packageObj.bin == "object") { + Object.keys(packageObj.bin).forEach(function(exe) { + if(fs.existsSync(packageObj.bin[exe])) { + console.log("linking bin '" + exe + "'"); + fs.symlinkSync( + path.join("..", packageObj.name, packageObj.bin[exe]), + path.join(nodeModules, ".bin", exe) + ); + } + else { + console.log("skipping non-existent bin '" + exe + "'"); + } + }) + } + else { + if(fs.existsSync(packageObj.bin)) { + console.log("linking bin '" + packageObj.bin + "'"); + fs.symlinkSync( + path.join("..", packageObj.name, packageObj.bin), + path.join(nodeModules, ".bin", packageObj.name.split("/").pop()) + ); + } + else { + console.log("skipping non-existent bin '" + packageObj.bin + "'"); + } + } + } + else if(packageObj.directories !== undefined && packageObj.directories.bin !== undefined) { + fs.mkdirSync(path.join(nodeModules, ".bin")) + + fs.readdirSync(packageObj.directories.bin).forEach(function(exe) { + if(fs.existsSync(path.join(packageObj.directories.bin, exe))) { + console.log("linking bin '" + exe + "'"); + fs.symlinkSync( + path.join("..", packageObj.name, packageObj.directories.bin, exe), + path.join(nodeModules, ".bin", exe) + ); + } + else { + console.log("skipping non-existent bin '" + exe + "'"); + } + }) + } + ''; + }; + + prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}: + let + forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com"; + in + '' + # Pinpoint the versions of all dependencies to the ones that are actually being used + echo "pinpointing versions of dependencies..." + source $pinpointDependenciesScriptPath + + # Patch the shebangs of the bundled modules to prevent them from + # calling executables outside the Nix store as much as possible + patchShebangs . + + # Deploy the Node.js package by running npm install. Since the + # dependencies have been provided already by ourselves, it should not + # attempt to install them again, which is good, because we want to make + # it Nix's responsibility. If it needs to install any dependencies + # anyway (e.g. because the dependency parameters are + # incomplete/incorrect), it fails. + # + # The other responsibilities of NPM are kept -- version checks, build + # steps, postprocessing etc. + + export HOME=$TMPDIR + cd "${packageName}" + runHook preRebuild + + ${lib.optionalString bypassCache '' + ${lib.optionalString reconstructLock '' + if [ -f package-lock.json ] + then + echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!" + echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!" + rm package-lock.json + else + echo "No package-lock.json file found, reconstructing..." + fi + + node ${reconstructPackageLock} + ''} + + node ${addIntegrityFieldsScript} + ''} + + npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild + + runHook postRebuild + + if [ "''${dontNpmInstall-}" != "1" ] + then + # NPM tries to download packages even when they already exist if npm-shrinkwrap is used. + rm -f npm-shrinkwrap.json + + npm ${forceOfflineFlag} --nodedir=${nodeSources} --no-bin-links --ignore-scripts ${npmFlags} ${lib.optionalString production "--production"} install + fi + + # Link executables defined in package.json + node ${linkBinsScript} + ''; + + # Builds and composes an NPM package including all its dependencies + buildNodePackage = + { name + , packageName + , version ? null + , dependencies ? [] + , buildInputs ? [] + , production ? true + , npmFlags ? "" + , dontNpmInstall ? false + , bypassCache ? false + , reconstructLock ? false + , preRebuild ? "" + , dontStrip ? true + , unpackPhase ? "true" + , buildPhase ? "true" + , meta ? {} + , ... }@args: + + let + extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" "meta" ]; + in + stdenv.mkDerivation ({ + name = "${name}${if version == null then "" else "-${version}"}"; + buildInputs = [ tarWrapper python nodejs ] + ++ lib.optional (stdenv.isLinux) utillinux + ++ lib.optional (stdenv.isDarwin) libtool + ++ buildInputs; + + inherit nodejs; + + inherit dontStrip; # Stripping may fail a build for some package deployments + inherit dontNpmInstall preRebuild unpackPhase buildPhase; + + compositionScript = composePackage args; + pinpointDependenciesScript = pinpointDependenciesOfPackage args; + + passAsFile = [ "compositionScript" "pinpointDependenciesScript" ]; + + installPhase = '' + source ${installPackage} + + # Create and enter a root node_modules/ folder + mkdir -p $out/lib/node_modules + cd $out/lib/node_modules + + # Compose the package and all its dependencies + source $compositionScriptPath + + ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }} + + # Create symlink to the deployed executable folder, if applicable + if [ -d "$out/lib/node_modules/.bin" ] + then + ln -s $out/lib/node_modules/.bin $out/bin + + # Patch the shebang lines of all the executables + ls $out/bin/* | while read i + do + file="$(readlink -f "$i")" + chmod u+rwx "$file" + patchShebangs "$file" + done + fi + + # Create symlinks to the deployed manual page folders, if applicable + if [ -d "$out/lib/node_modules/${packageName}/man" ] + then + mkdir -p $out/share + for dir in "$out/lib/node_modules/${packageName}/man/"* + do + mkdir -p $out/share/man/$(basename "$dir") + for page in "$dir"/* + do + ln -s $page $out/share/man/$(basename "$dir") + done + done + fi + + # Run post install hook, if provided + runHook postInstall + ''; + + meta = { + # default to Node.js' platforms + platforms = nodejs.meta.platforms; + } // meta; + } // extraArgs); + + # Builds a node environment (a node_modules folder and a set of binaries) + buildNodeDependencies = + { name + , packageName + , version ? null + , src + , dependencies ? [] + , buildInputs ? [] + , production ? true + , npmFlags ? "" + , dontNpmInstall ? false + , bypassCache ? false + , reconstructLock ? false + , dontStrip ? true + , unpackPhase ? "true" + , buildPhase ? "true" + , ... }@args: + + let + extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ]; + in + stdenv.mkDerivation ({ + name = "node-dependencies-${name}${if version == null then "" else "-${version}"}"; + + buildInputs = [ tarWrapper python nodejs ] + ++ lib.optional (stdenv.isLinux) utillinux + ++ lib.optional (stdenv.isDarwin) libtool + ++ buildInputs; + + inherit dontStrip; # Stripping may fail a build for some package deployments + inherit dontNpmInstall unpackPhase buildPhase; + + includeScript = includeDependencies { inherit dependencies; }; + pinpointDependenciesScript = pinpointDependenciesOfPackage args; + + passAsFile = [ "includeScript" "pinpointDependenciesScript" ]; + + installPhase = '' + source ${installPackage} + + mkdir -p $out/${packageName} + cd $out/${packageName} + + source $includeScriptPath + + # Create fake package.json to make the npm commands work properly + cp ${src}/package.json . + chmod 644 package.json + ${lib.optionalString bypassCache '' + if [ -f ${src}/package-lock.json ] + then + cp ${src}/package-lock.json . + chmod 644 package-lock.json + fi + ''} + + # Go to the parent folder to make sure that all packages are pinpointed + cd .. + ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} + + ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }} + + # Expose the executables that were installed + cd .. + ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} + + mv ${packageName} lib + ln -s $out/lib/node_modules/.bin $out/bin + ''; + } // extraArgs); + + # Builds a development shell + buildNodeShell = + { name + , packageName + , version ? null + , src + , dependencies ? [] + , buildInputs ? [] + , production ? true + , npmFlags ? "" + , dontNpmInstall ? false + , bypassCache ? false + , reconstructLock ? false + , dontStrip ? true + , unpackPhase ? "true" + , buildPhase ? "true" + , ... }@args: + + let + nodeDependencies = buildNodeDependencies args; + extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "unpackPhase" "buildPhase" ]; + in + stdenv.mkDerivation ({ + name = "node-shell-${name}${if version == null then "" else "-${version}"}"; + + buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs; + buildCommand = '' + mkdir -p $out/bin + cat > $out/bin/shell < - - - - - + \ No newline at end of file diff --git a/public/astro-ink-logo.png b/public/astro-ink-logo.png deleted file mode 100644 index 6938dc43233a6dd0ce7091dd9449a7e3e25cb7ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75181 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 UGX{w