nix: componentize fromYaml onto lib
parent
0055e3cb17
commit
9814ddd9fc
|
@ -45,22 +45,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"from-yaml": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1667993187,
|
||||
"narHash": "sha256-JG1XYGCmR7Jqawvs8AO4c2mrOl37BXGGgU9cfeL0b8k=",
|
||||
"owner": "pegasust",
|
||||
"repo": "fromYaml",
|
||||
"rev": "ef0ed4acfc4a6b7a0f1515cb48f5dbdda89dac3c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "pegasust",
|
||||
"repo": "fromYaml",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
@ -151,7 +135,6 @@
|
|||
"root": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"from-yaml": "from-yaml",
|
||||
"home-manager": "home-manager",
|
||||
"nixgl": "nixgl",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
|
|
|
@ -9,10 +9,6 @@
|
|||
flake-utils.url = "github:numtide/flake-utils";
|
||||
nixgl.url = "github:guibou/nixGL";
|
||||
rust-overlay.url = "github:oxalica/rust-overlay";
|
||||
from-yaml = {
|
||||
url = "github:pegasust/fromYaml";
|
||||
flake = false;
|
||||
};
|
||||
};
|
||||
|
||||
outputs =
|
||||
|
@ -21,7 +17,6 @@
|
|||
, nixgl
|
||||
, rust-overlay
|
||||
, flake-utils
|
||||
, from-yaml
|
||||
, ...
|
||||
}:
|
||||
let
|
||||
|
@ -32,7 +27,7 @@
|
|||
inherit system overlays;
|
||||
config = { allowUnfree = true; };
|
||||
};
|
||||
lib = (import ../lib-nix { inherit pkgs from-yaml; lib = pkgs.lib; });
|
||||
lib = (import ../lib { inherit pkgs; lib = pkgs.lib; });
|
||||
in
|
||||
{
|
||||
homeConfigurations =
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
{ config
|
||||
, pkgs # This is by default just ``= import <nixpkgs>{}`
|
||||
, myHome
|
||||
, myLib
|
||||
, ...
|
||||
}:
|
||||
let
|
||||
|
@ -28,20 +29,7 @@ let
|
|||
# ]))
|
||||
];
|
||||
proj_root = builtins.toString ./../..;
|
||||
# TODO: put this in a seperate library
|
||||
# callPackage supports both PATH and function as first param!
|
||||
yamlToJsonDrv = yamlContent: outputPath: pkgs.callPackage
|
||||
({ runCommand }:
|
||||
# runCommand source: https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/trivial-builders.nix#L33
|
||||
runCommand outputPath { inherit yamlContent; nativeBuildInputs = [ pkgs.yq ]; }
|
||||
# run yq which outputs '.' (no filter) on file at yamlPath
|
||||
# note that $out is passed onto the bash/sh script for execution
|
||||
''
|
||||
echo "$yamlContent" | yq >$out
|
||||
'')
|
||||
{ };
|
||||
# fromYamlPath = yamlPath: builtins.fromJSON (builtins.readFile (yamlToJsonDrv yamlPath "any-output.json"));
|
||||
fromYaml = yamlContent: builtins.fromJSON (builtins.readFile (yamlToJsonDrv yamlContent "any_output.json"));
|
||||
inherit (myLib) fromYaml;
|
||||
in
|
||||
{
|
||||
home = {
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
{pkgs, lib, from-yaml, ...}@flake_import:
|
||||
{
|
||||
fromYaml = import "${from-yaml}/fromYaml.nix" {inherit lib;};
|
||||
|
||||
{ pkgs
|
||||
, lib
|
||||
, ... }@flake_import:
|
||||
let serde = import ./serde { inherit pkgs lib; };
|
||||
in
|
||||
pkgs.lib // lib // {
|
||||
fromYaml = serde.fromYaml;
|
||||
fromYamlPath = serde.fromYamlPath;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
# Takes care of serializing and deserializing to some formats
|
||||
# Blame: Pegasust<pegasucksgg@gmail.com>
|
||||
# TODO: Add to* formats from pkgs.formats.*
|
||||
{ pkgs
|
||||
, lib
|
||||
} @ inputs:
|
||||
let
|
||||
yamlToJsonDrv = yamlContent: outputPath: pkgs.callPackage
|
||||
({ runCommand }:
|
||||
# runCommand source: https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/trivial-builders.nix#L33
|
||||
runCommand outputPath { inherit yamlContent; nativeBuildInputs = [ pkgs.yq ]; }
|
||||
# run yq which outputs '.' (no filter) on file at yamlPath
|
||||
# note that $out is passed onto the bash/sh script for execution
|
||||
''
|
||||
echo "$yamlContent" | yq >$out
|
||||
'')
|
||||
{ };
|
||||
in {
|
||||
# Takes in a yaml string and produces a derivation with translated JSON at $outputPath
|
||||
# similar to builtins.fromJSON, turns a YAML string to nix attrset
|
||||
fromYaml = yamlContent: builtins.fromJSON (builtins.readFile (yamlToJsonDrv yamlContent "any_output.json"));
|
||||
fromYamlPath = yamlPath: builtins.fromJSON (
|
||||
builtins.readFile (
|
||||
yamlToJsonDrv (
|
||||
builtins.readFile yamlPath)
|
||||
"any-output.json"));
|
||||
# TODO: fromToml?
|
||||
}
|
|
@ -10,7 +10,7 @@ HOME_MANAGER_DIR="${SCRIPT_DIR}/../nix-conf/home-manager"
|
|||
|
||||
# test if we have home-manager, if not, attempt to use nix to put home-manager to
|
||||
# our environment
|
||||
if [ $(home-manager &>/dev/null) ]; then
|
||||
if [ $(home-manager >/dev/null 2>&1) ]; then
|
||||
nix-shell -p home-manager --run "home-manager switch --flake $HOME_MANAGER_DIR"
|
||||
else
|
||||
home-manager switch --flake "$HOME_MANAGER_DIR"
|
||||
|
|
Loading…
Reference in New Issue