- );
- },
};
- };
};
export default helloFactory;
diff --git a/test/examples/nix/sources.nix b/test/examples/nix/sources.nix
index dccca92..0ad4652 100644
--- a/test/examples/nix/sources.nix
+++ b/test/examples/nix/sources.nix
@@ -3,52 +3,49 @@ let
#
# The fetchers. fetch_ fetches specs of type .
#
- fetch_file = pkgs: name: spec:
- let
- name' = sanitizeName name + "-src";
- in
+ fetch_file = pkgs: name: spec: let
+ name' = sanitizeName name + "-src";
+ in
if spec.builtin or true
then
builtins_fetchurl
- {
- inherit (spec) url sha256;
- name = name';
- }
+ {
+ inherit (spec) url sha256;
+ name = name';
+ }
else
pkgs.fetchurl {
inherit (spec) url sha256;
name = name';
};
- fetch_tarball = pkgs: name: spec:
- let
- name' = sanitizeName name + "-src";
- in
+ fetch_tarball = pkgs: name: spec: let
+ name' = sanitizeName name + "-src";
+ in
if spec.builtin or true
then
builtins_fetchTarball
- {
- name = name';
- inherit (spec) url sha256;
- }
+ {
+ name = name';
+ inherit (spec) url sha256;
+ }
else
pkgs.fetchzip {
name = name';
inherit (spec) url sha256;
};
- fetch_git = name: spec:
- let
- ref =
- spec.ref
- or (
- if spec ? branch
- then "refs/heads/${spec.branch}"
- else if spec ? tag
- then "refs/tags/${spec.tag}"
- else abort "In git source '${name}': Please specify `ref`, `tag` or `branch`!"
- );
- in
+ fetch_git = name: spec: let
+ ref =
+ spec.ref
+ or (
+ if spec ? branch
+ then "refs/heads/${spec.branch}"
+ else if spec ? tag
+ then "refs/tags/${spec.tag}"
+ else abort "In git source '${name}': Please specify `ref`, `tag` or `branch`!"
+ );
+ in
builtins.fetchGit {
url = spec.repo;
inherit (spec) rev;
@@ -59,12 +56,12 @@ let
fetch_builtin-tarball = name:
throw
- '' [${name}] The niv type "builtin-tarball" is deprecated. You should instead use `builtin = true`.
+ '' [${name}] The niv type "builtin-tarball" is deprecated. You should instead use `builtin = true`.
$ niv modify ${name} -a type=tarball -a builtin=true'';
fetch_builtin-url = name:
throw
- '' [${name}] The niv type "builtin-url" will soon be deprecated. You should instead use `builtin = true`.
+ '' [${name}] The niv type "builtin-url" will soon be deprecated. You should instead use `builtin = true`.
$ niv modify ${name} -a type=file -a builtin=true'';
#
@@ -74,34 +71,33 @@ let
# https://github.com/NixOS/nixpkgs/pull/83241/files#diff-c6f540a4f3bfa4b0e8b6bafd4cd54e8bR695
sanitizeName = name: (
concatMapStrings
- (s:
- if builtins.isList s
- then "-"
- else s)
- (
- builtins.split "[^[:alnum:]+._?=-]+"
- ((x: builtins.elemAt (builtins.match "\\.*(.*)" x) 0) name)
- )
+ (s:
+ if builtins.isList s
+ then "-"
+ else s)
+ (
+ builtins.split "[^[:alnum:]+._?=-]+"
+ ((x: builtins.elemAt (builtins.match "\\.*(.*)" x) 0) name)
+ )
);
# The set of packages used when specs are fetched using non-builtins.
- mkPkgs = sources: system:
- let
- sourcesNixpkgs =
- import (builtins_fetchTarball { inherit (sources.nixpkgs) url sha256; }) { inherit system; };
- hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath;
- hasThisAsNixpkgsPath = == ./.;
- in
+ mkPkgs = sources: system: let
+ sourcesNixpkgs =
+ import (builtins_fetchTarball {inherit (sources.nixpkgs) url sha256;}) {inherit system;};
+ hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath;
+ hasThisAsNixpkgsPath = == ./.;
+ in
if builtins.hasAttr "nixpkgs" sources
then sourcesNixpkgs
else if hasNixpkgsPath && ! hasThisAsNixpkgsPath
- then import { }
+ then import {}
else
abort
- ''
- Please specify either (through -I or NIX_PATH=nixpkgs=...) or
- add a package called "nixpkgs" to your sources.json.
- '';
+ ''
+ Please specify either (through -I or NIX_PATH=nixpkgs=...) or
+ add a package called "nixpkgs" to your sources.json.
+ '';
# The actual fetching function.
fetch = pkgs: name: spec:
@@ -123,22 +119,21 @@ let
# If the environment variable NIV_OVERRIDE_${name} is set, then use
# the path directly as opposed to the fetched source.
- replace = name: drv:
- let
- saneName =
- stringAsChars
- (c:
- if ((builtins.match "[a-zA-Z0-9]" c) == null)
- then "_"
- else c)
- name;
- ersatz = builtins.getEnv "NIV_OVERRIDE_${saneName}";
- in
+ replace = name: drv: let
+ saneName =
+ stringAsChars
+ (c:
+ if ((builtins.match "[a-zA-Z0-9]" c) == null)
+ then "_"
+ else c)
+ name;
+ ersatz = builtins.getEnv "NIV_OVERRIDE_${saneName}";
+ in
if ersatz == ""
then drv
else
- # this turns the string into an actual Nix path (for both absolute and
- # relative paths)
+ # this turns the string into an actual Nix path (for both absolute and
+ # relative paths)
if builtins.substring 0 1 ersatz == "/"
then /. + ersatz
else /. + builtins.getEnv "PWD" + "/${ersatz}";
@@ -148,21 +143,21 @@ let
# a Nix version of mapAttrs if the built-in doesn't exist
mapAttrs =
builtins.mapAttrs
- or (
+ or (
f: set:
with builtins;
- listToAttrs (map
- (attr: {
- name = attr;
- value = f attr set.${attr};
- })
- (attrNames set))
+ listToAttrs (map
+ (attr: {
+ name = attr;
+ value = f attr set.${attr};
+ })
+ (attrNames set))
);
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295
range = first: last:
if first > last
- then [ ]
+ then []
else builtins.genList (n: first + n) (last - first + 1);
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L257
@@ -177,66 +172,61 @@ let
optionalAttrs = cond: as:
if cond
then as
- else { };
+ else {};
# fetchTarball version that is compatible between all the versions of Nix
- builtins_fetchTarball =
- { url
- , name ? null
- , sha256
- ,
- } @ attrs:
- let
- inherit (builtins) lessThan nixVersion fetchTarball;
- in
+ builtins_fetchTarball = {
+ url,
+ name ? null,
+ } @ attrs: let
+ inherit (builtins) lessThan nixVersion fetchTarball;
+ in
if lessThan nixVersion "1.12"
- then fetchTarball ({ inherit url; } // (optionalAttrs (name != null) { inherit name; }))
+ then fetchTarball ({inherit url;} // (optionalAttrs (name != null) {inherit name;}))
else fetchTarball attrs;
# fetchurl version that is compatible between all the versions of Nix
- builtins_fetchurl =
- { url
- , name ? null
- , sha256
- ,
- } @ attrs:
- let
- inherit (builtins) lessThan nixVersion fetchurl;
- in
+ builtins_fetchurl = {
+ url,
+ name ? null,
+ } @ attrs: let
+ inherit (builtins) lessThan nixVersion fetchurl;
+ in
if lessThan nixVersion "1.12"
- then fetchurl ({ inherit url; } // (optionalAttrs (name != null) { inherit name; }))
+ then fetchurl ({inherit url;} // (optionalAttrs (name != null) {inherit name;}))
else fetchurl attrs;
# Create the final "sources" from the config
mkSources = config:
mapAttrs
- (
- name: spec:
- if builtins.hasAttr "outPath" spec
- then
- abort
- "The values in sources.json should not have an 'outPath' attribute"
- else spec // { outPath = replace name (fetch config.pkgs name spec); }
- )
- config.sources;
+ (
+ name: spec:
+ if builtins.hasAttr "outPath" spec
+ then
+ abort
+ "The values in sources.json should not have an 'outPath' attribute"
+ else spec // {outPath = replace name (fetch config.pkgs name spec);}
+ )
+ config.sources;
# The "config" used by the fetchers
- mkConfig =
- { sourcesFile ? if builtins.pathExists ./sources.json
+ mkConfig = {
+ sourcesFile ?
+ if builtins.pathExists ./sources.json
then ./sources.json
- else null
- , sources ? if (sourcesFile == null)
- then { }
- else builtins.fromJSON (builtins.readFile sourcesFile)
- , system ? builtins.currentSystem
- , pkgs ? mkPkgs sources system
- ,
- }: rec {
- # The sources, i.e. the attribute set of spec name to spec
- inherit sources;
+ else null,
+ sources ?
+ if (sourcesFile == null)
+ then {}
+ else builtins.fromJSON (builtins.readFile sourcesFile),
+ system ? builtins.currentSystem,
+ pkgs ? mkPkgs sources system,
+ }: rec {
+ # The sources, i.e. the attribute set of spec name to spec
+ inherit sources;
- # The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers
- inherit pkgs;
- };
+ # The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers
+ inherit pkgs;
+ };
in
-mkSources (mkConfig { }) // { __functor = _: settings: mkSources (mkConfig settings); }
+ mkSources (mkConfig {}) // {__functor = _: settings: mkSources (mkConfig settings);}
diff --git a/test/treefmt.toml b/test/treefmt.toml
index f5ac8aa..04a778d 100644
--- a/test/treefmt.toml
+++ b/test/treefmt.toml
@@ -27,7 +27,7 @@ includes = ["*.hs"]
excludes = ["examples/haskell/"]
[formatter.nix]
-command = "nixpkgs-fmt"
+command = "alejandra"
includes = ["*.nix"]
# Act as an example on how to exclude specific files
excludes = ["examples/nix/sources.nix"]
@@ -39,7 +39,7 @@ includes = ["*.rb"]
[formatter.prettier]
command = "prettier"
-options = ["--write"]
+options = ["--write", "--tab-width", "4"]
includes = [
"*.css",
"*.html",