Initialize Nix development environment

This commit is contained in:
Gabriel Arazas 2023-07-07 12:11:42 +08:00
parent b997340171
commit f73730468b
No known key found for this signature in database
GPG Key ID: ADE0C41DAB221FCC
4 changed files with 322 additions and 0 deletions

61
flake.lock generated Normal file
View File

@ -0,0 +1,61 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1687709756,
"narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1688646010,
"narHash": "sha256-kCeza5eKI2NEi8k0EoeZfv3lN1r1Vwx+L/VA6I8tmG4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5daaa32204e9c46b05cd709218b7ba733d07e80c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
"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
}

21
flake.nix Normal file
View File

@ -0,0 +1,21 @@
{
description = "Basic flake template for setting up development shells";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = inputs@{ self, nixpkgs, ... }:
let systems = inputs.flake-utils.lib.defaultSystems;
in inputs.flake-utils.lib.eachSystem systems (system:
let
pkgs = import nixpkgs { inherit system; };
in
{
devShells.default =
import ./shell.nix { inherit pkgs; };
formatter = pkgs.treefmt;
});
}

217
gemset.nix Normal file
View File

@ -0,0 +1,217 @@
{
asciidoctor = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0yblqlbix3is5ihiqrpbfazb44in7ichfkjzdbsqibp48paanpl3";
type = "gem";
};
version = "2.0.20";
};
asciidoctor-foodogsquared-extensions = {
dependencies = ["asciidoctor" "rugged"];
groups = ["default"];
platforms = [];
source = {
path = ./.;
type = "path";
};
version = "1.0.0";
};
ast = {
groups = ["default" "lint"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y";
type = "gem";
};
version = "2.4.2";
};
json = {
groups = ["default" "lint"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0nalhin1gda4v8ybk6lq8f407cgfrj6qzn234yra4ipkmlbfmal6";
type = "gem";
};
version = "2.6.3";
};
language_server-protocol = {
groups = ["default" "development" "lint"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0gvb1j8xsqxms9mww01rmdl78zkd72zgxaap56bhv8j45z05hp1x";
type = "gem";
};
version = "3.17.0.3";
};
parallel = {
groups = ["default" "lint"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0jcc512l38c0c163ni3jgskvq1vc3mr8ly5pvjijzwvfml9lf597";
type = "gem";
};
version = "1.23.0";
};
parser = {
dependencies = ["ast" "racc"];
groups = ["default" "lint"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1swigds85jddb5gshll1g8lkmbcgbcp9bi1d4nigwvxki8smys0h";
type = "gem";
};
version = "3.2.2.3";
};
prettier_print = {
groups = ["default" "development"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1ybgks9862zmlx71zd4j20ky86fsrp6j6m0az4hzzb1zyaskha57";
type = "gem";
};
version = "1.2.1";
};
racc = {
groups = ["default" "lint"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "11v3l46mwnlzlc371wr3x6yylpgafgwdf0q7hc7c1lzx6r414r5g";
type = "gem";
};
version = "1.7.1";
};
rainbow = {
groups = ["default" "lint"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0smwg4mii0fm38pyb5fddbmrdpifwv22zv3d3px2xx497am93503";
type = "gem";
};
version = "3.1.1";
};
rake = {
groups = ["development"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
type = "gem";
};
version = "13.0.6";
};
regexp_parser = {
groups = ["default" "lint"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "136br91alxdwh1s85z912dwz23qlhm212vy6i3wkinz3z8mkxxl3";
type = "gem";
};
version = "2.8.1";
};
rexml = {
groups = ["default" "lint"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
type = "gem";
};
version = "3.2.5";
};
rubocop = {
dependencies = ["json" "language_server-protocol" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
groups = ["lint"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1vklabd0510isqhikx4bfx5qn9g8pyj8h9jxryayp2wj8mx4kg74";
type = "gem";
};
version = "1.54.1";
};
rubocop-ast = {
dependencies = ["parser"];
groups = ["default" "lint"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "188bs225kkhrb17dsf3likdahs2p1i1sqn0pr3pvlx50g6r2mnni";
type = "gem";
};
version = "1.29.0";
};
ruby-lsp = {
dependencies = ["language_server-protocol" "sorbet-runtime" "syntax_tree"];
groups = ["development"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "03jx0157jpfrnww5ww6hnkprgzfv4m7ahiqzpjdjjrcb67jp5nh1";
type = "gem";
};
version = "0.6.2";
};
ruby-progressbar = {
groups = ["default" "lint"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0cwvyb7j47m7wihpfaq7rc47zwwx9k4v7iqd9s1xch5nm53rrz40";
type = "gem";
};
version = "1.13.0";
};
rugged = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "016bawsahkhxx7p8azxirpl7y2y7i8a027pj8910gwf6ipg329in";
type = "gem";
};
version = "1.6.3";
};
sorbet-runtime = {
groups = ["default" "development"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0csmpdf05wp9ndb61vsnpbw2vkxsm888h2xwrddcz0p02laiz7s8";
type = "gem";
};
version = "0.5.10902";
};
syntax_tree = {
dependencies = ["prettier_print"];
groups = ["default" "development"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "162m5xhbiq315bncp49ziddws537dv09pqsgrzsrmhhsymhgy0zb";
type = "gem";
};
version = "6.1.1";
};
unicode-display_width = {
groups = ["default" "lint"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1gi82k102q7bkmfi7ggn9ciypn897ylln1jk9q67kjhr39fj043a";
type = "gem";
};
version = "2.4.2";
};
}

23
shell.nix Normal file
View File

@ -0,0 +1,23 @@
{ pkgs ? import <nixpkgs> { } }:
with pkgs;
let
gems = bundlerEnv {
name = "asciidoctor-foodogsquared-extensions";
gemdir = ./.;
};
in
mkShell {
packages = [
gems
gems.wrappedRuby
bundix
# Formatters
nixpkgs-fmt
# Language servers
rnix-lsp
];
}