diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/Gemfile.lock b/Gemfile.lock index 75dad27..6cac98d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -82,51 +82,21 @@ GEM rexml (3.3.8) rouge (4.4.0) safe_yaml (1.0.5) - sass-embedded (1.79.4) - google-protobuf (~> 4.27) + sass-embedded (1.83.0) + google-protobuf (~> 4.28) rake (>= 13) - sass-embedded (1.79.4-aarch64-linux-android) - google-protobuf (~> 4.27) - sass-embedded (1.79.4-aarch64-linux-gnu) - google-protobuf (~> 4.27) - sass-embedded (1.79.4-aarch64-linux-musl) - google-protobuf (~> 4.27) - sass-embedded (1.79.4-aarch64-mingw-ucrt) - google-protobuf (~> 4.27) - sass-embedded (1.79.4-arm-linux-androideabi) - google-protobuf (~> 4.27) - sass-embedded (1.79.4-arm-linux-gnueabihf) - google-protobuf (~> 4.27) - sass-embedded (1.79.4-arm-linux-musleabihf) - google-protobuf (~> 4.27) - sass-embedded (1.79.4-arm64-darwin) - google-protobuf (~> 4.27) - sass-embedded (1.79.4-riscv64-linux-android) - google-protobuf (~> 4.27) - sass-embedded (1.79.4-riscv64-linux-gnu) - google-protobuf (~> 4.27) - sass-embedded (1.79.4-riscv64-linux-musl) - google-protobuf (~> 4.27) - sass-embedded (1.79.4-x86-cygwin) - google-protobuf (~> 4.27) - sass-embedded (1.79.4-x86-linux-android) - google-protobuf (~> 4.27) - sass-embedded (1.79.4-x86-linux-gnu) - google-protobuf (~> 4.27) - sass-embedded (1.79.4-x86-linux-musl) - google-protobuf (~> 4.27) - sass-embedded (1.79.4-x86-mingw-ucrt) - google-protobuf (~> 4.27) - sass-embedded (1.79.4-x86_64-cygwin) - google-protobuf (~> 4.27) - sass-embedded (1.79.4-x86_64-darwin) - google-protobuf (~> 4.27) - sass-embedded (1.79.4-x86_64-linux-android) - google-protobuf (~> 4.27) - sass-embedded (1.79.4-x86_64-linux-gnu) - google-protobuf (~> 4.27) - sass-embedded (1.79.4-x86_64-linux-musl) - google-protobuf (~> 4.27) + sass-embedded (1.83.0-aarch64-mingw-ucrt) + google-protobuf (~> 4.28) + sass-embedded (1.83.0-arm64-darwin) + google-protobuf (~> 4.28) + sass-embedded (1.83.0-x86-cygwin) + google-protobuf (~> 4.28) + sass-embedded (1.83.0-x86-mingw-ucrt) + google-protobuf (~> 4.28) + sass-embedded (1.83.0-x86_64-cygwin) + google-protobuf (~> 4.28) + sass-embedded (1.83.0-x86_64-darwin) + google-protobuf (~> 4.28) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) unicode-display_width (2.6.0) diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..ad6ada3 --- /dev/null +++ b/flake.lock @@ -0,0 +1,104 @@ +{ + "nodes": { + "bundix": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1721093334, + "narHash": "sha256-5FghZ0HIETbc0TGcBV8uyixq5z4w/9PF5Puhujz3D1o=", + "owner": "inscapist", + "repo": "bundix", + "rev": "42c08846f7e5d91ef121239fd364feaeb22c0bbc", + "type": "github" + }, + "original": { + "owner": "inscapist", + "ref": "main", + "repo": "bundix", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1735651292, + "narHash": "sha256-YLbzcBtYo1/FEzFsB3AnM16qFc6fWPMIoOuSoDwvg9g=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0da3c44a9460a26d2025ec3ed2ec60a895eb1114", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "release-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "bundix": "bundix", + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs", + "ruby-nix": "ruby-nix" + } + }, + "ruby-nix": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1744623277, + "narHash": "sha256-0HWA2YD9v71SHyMF11PKnVJcHnrHhRLHDCldlUbzYII=", + "owner": "inscapist", + "repo": "ruby-nix", + "rev": "43964ced23803f49e2d307fbbfd4e03ed23760c0", + "type": "github" + }, + "original": { + "owner": "inscapist", + "repo": "ruby-nix", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..737c1b5 --- /dev/null +++ b/flake.nix @@ -0,0 +1,76 @@ +{ + description = "radicle.xyz"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/release-24.05"; + flake-utils.url = "github:numtide/flake-utils"; + bundix = { + url = "github:inscapist/bundix/main"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + ruby-nix = { + url = "github:inscapist/ruby-nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = { + self, + nixpkgs, + flake-utils, + bundix, + ruby-nix, + ... + }: + flake-utils.lib.eachDefaultSystem (system: let + pkgs = import nixpkgs { + inherit system; + overlays = [ ruby-nix.overlays.ruby ]; + }; + rubyNix = ruby-nix.lib pkgs; + bundixcli = bundix.packages.${system}.default; + + deps = with pkgs; [ env ruby bundixcli nodePackages.vercel ]; + + inherit (rubyNix { + name = "seroperson.gitlab.io"; + gemset = ./gemset.nix; + gemConfig = pkgs.defaultGemConfig; + }) + env ruby; + in { + packages = let + bundlecli = pkgs.writeShellApplication { + name = "bundle"; + runtimeInputs = deps; + text = '' + export BUNDLE_PATH=vendor/bundle + bundle "$@" + ''; + }; + jekyll = pkgs.writeShellApplication { + name = "jekyll"; + runtimeInputs = deps; + text = '' + if [ $# -eq 0 ]; then + jekyll build + else + jekyll "$@" + fi + ''; + }; + in { + jekyll = jekyll; + bundle = bundlecli; + bundix = bundixcli; + default = jekyll; + }; + + devShells.default = pkgs.mkShell { + shellHook = '' + export BUNDLE_PATH=vendor/bundle + ''; + buildInputs = deps; + }; + }); +}