parent
a6f4760ef5
commit
13d625fa4f
32
flake.lock
32
flake.lock
|
@ -1,24 +1,46 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"jolheiser": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730336659,
|
||||||
|
"narHash": "sha256-DYQUprBce8sXdBj7Ub1h/52GnGvxiXelvucVTcTXE8I=",
|
||||||
|
"ref": "refs/heads/main",
|
||||||
|
"rev": "69856a465c69e5b456ef652f0f5f17a12b9d8c02",
|
||||||
|
"revCount": 3,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.jolheiser.com/nixpkgs.git"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.jolheiser.com/nixpkgs.git"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1715653339,
|
"lastModified": 1729880355,
|
||||||
"narHash": "sha256-7lR9tpVXviSccl07GXI0+ve/natd24HAkuy1sQp0OlI=",
|
"narHash": "sha256-RP+OQ6koQQLX5nw0NmcDrzvGL8HDLnyXt/jHhL1jwjM=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "abd6d48f8c77bea7dc51beb2adfa6ed3950d2585",
|
"rev": "18536bf04cd71abd345f9579158841376fdd0c5a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixpkgs-unstable",
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs"
|
"jolheiser": "jolheiser",
|
||||||
|
"nixpkgs": [
|
||||||
|
"jolheiser",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
69
flake.nix
69
flake.nix
|
@ -1,18 +1,21 @@
|
||||||
{
|
{
|
||||||
description = "jolheiser helix derivation";
|
description = "jolheiser helix derivation";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
jolheiser.url = "git+https://git.jolheiser.com/nixpkgs.git";
|
||||||
|
nixpkgs.follows = "jolheiser/nixpkgs";
|
||||||
};
|
};
|
||||||
|
outputs =
|
||||||
outputs = {
|
{
|
||||||
self,
|
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
}: let
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
tomlFormat = pkgs.formats.toml { };
|
tomlFormat = pkgs.formats.toml { };
|
||||||
config = import ./config.nix { pkgs = pkgs; };
|
config = import ./config.nix { pkgs = pkgs; };
|
||||||
buildGrammar = grammar: let
|
buildGrammar =
|
||||||
|
grammar:
|
||||||
|
let
|
||||||
source = pkgs.fetchgit {
|
source = pkgs.fetchgit {
|
||||||
inherit (grammar) url rev sha256;
|
inherit (grammar) url rev sha256;
|
||||||
};
|
};
|
||||||
|
@ -21,7 +24,10 @@
|
||||||
pkgs.stdenv.mkDerivation {
|
pkgs.stdenv.mkDerivation {
|
||||||
pname = "helix-tree-sitter-grammar-${grammar.name}";
|
pname = "helix-tree-sitter-grammar-${grammar.name}";
|
||||||
version = grammar.rev;
|
version = grammar.rev;
|
||||||
buildInputs = [pkgs.helix pkgs.git];
|
buildInputs = [
|
||||||
|
pkgs.helix
|
||||||
|
pkgs.git
|
||||||
|
];
|
||||||
src = source;
|
src = source;
|
||||||
dontInstall = true;
|
dontInstall = true;
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
|
@ -49,31 +55,40 @@
|
||||||
runHook postBuild
|
runHook postBuild
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
builtGrammars =
|
builtGrammars = builtins.map (grammar: {
|
||||||
builtins.map (grammar: {
|
|
||||||
inherit (grammar) name;
|
inherit (grammar) name;
|
||||||
artifact = buildGrammar grammar;
|
artifact = buildGrammar grammar;
|
||||||
})
|
}) config.grammars;
|
||||||
config.grammars;
|
|
||||||
ignoreFile = pkgs.writeText "ignore" (builtins.concatStringsSep "\n" config.ignore);
|
ignoreFile = pkgs.writeText "ignore" (builtins.concatStringsSep "\n" config.ignore);
|
||||||
configFile = pkgs.writeText "config.toml" (builtins.readFile (tomlFormat.generate "helix-config" config.settings));
|
configFile = pkgs.writeText "config.toml" (
|
||||||
languageFile = pkgs.writeText "languages.toml" (builtins.readFile (tomlFormat.generate "helix-languages" config.languages));
|
builtins.readFile (tomlFormat.generate "helix-config" config.settings)
|
||||||
themeFiles =
|
);
|
||||||
pkgs.lib.mapAttrsToList (
|
languageFile = pkgs.writeText "languages.toml" (
|
||||||
name: value: {
|
builtins.readFile (tomlFormat.generate "helix-languages" config.languages)
|
||||||
|
);
|
||||||
|
themeFiles = pkgs.lib.mapAttrsToList (name: value: {
|
||||||
inherit name;
|
inherit name;
|
||||||
file = pkgs.writeText "${name}.toml" (builtins.readFile (tomlFormat.generate "helix-theme-${name}" value));
|
file = pkgs.writeText "${name}.toml" (
|
||||||
}
|
builtins.readFile (tomlFormat.generate "helix-theme-${name}" value)
|
||||||
)
|
);
|
||||||
config.themes;
|
}) config.themes;
|
||||||
themeLinks = builtins.map (theme: "ln -s ${theme.file} $out/home/helix/themes/${theme.name}.toml") themeFiles;
|
themeLinks = builtins.map (
|
||||||
grammarLinks = builtins.map (grammar: "ln -s ${grammar.artifact}/${grammar.name}.so $out/lib/runtime/grammars/${grammar.name}.so") builtGrammars;
|
theme: "ln -s ${theme.file} $out/home/helix/themes/${theme.name}.toml"
|
||||||
queryLinks = builtins.map (grammar: "ln -s ${grammar.artifact}/queries $out/lib/runtime/queries/${grammar.name}") builtGrammars;
|
) themeFiles;
|
||||||
in {
|
grammarLinks = builtins.map (
|
||||||
|
grammar: "ln -s ${grammar.artifact}/${grammar.name}.so $out/lib/runtime/grammars/${grammar.name}.so"
|
||||||
|
) builtGrammars;
|
||||||
|
queryLinks = builtins.map (
|
||||||
|
grammar: "ln -s ${grammar.artifact}/queries $out/lib/runtime/queries/${grammar.name}"
|
||||||
|
) builtGrammars;
|
||||||
|
in
|
||||||
|
{
|
||||||
packages.x86_64-linux.default =
|
packages.x86_64-linux.default =
|
||||||
pkgs.runCommand "hx" {
|
pkgs.runCommand "hx"
|
||||||
|
{
|
||||||
buildInputs = [ pkgs.makeWrapper ];
|
buildInputs = [ pkgs.makeWrapper ];
|
||||||
} ''
|
}
|
||||||
|
''
|
||||||
mkdir $out
|
mkdir $out
|
||||||
ln -s ${pkgs.helix}/* $out
|
ln -s ${pkgs.helix}/* $out
|
||||||
rm $out/bin
|
rm $out/bin
|
||||||
|
|
Loading…
Reference in New Issue