aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/lib/default.nix
diff options
context:
space:
mode:
authorKatharina Fey <kookie@spacekookie.de>2019-10-05 12:43:18 +0000
committerKatharina Fey <kookie@spacekookie.de>2019-10-05 12:44:52 +0000
commitcf85056ba64caf3267d43255ef4a1243e9c8ee3b (patch)
tree3051519e9c8275b870aac43f80af875715c9d124 /nixpkgs/lib/default.nix
parent1148b1d122bc03e9a3665856c9b7bb96bd4e3994 (diff)
parent2436c27541b2f52deea3a4c1691216a02152e729 (diff)
Add 'nixpkgs/' from commit '2436c27541b2f52deea3a4c1691216a02152e729'
git-subtree-dir: nixpkgs git-subtree-mainline: 1148b1d122bc03e9a3665856c9b7bb96bd4e3994 git-subtree-split: 2436c27541b2f52deea3a4c1691216a02152e729
Diffstat (limited to 'nixpkgs/lib/default.nix')
-rw-r--r--nixpkgs/lib/default.nix138
1 files changed, 138 insertions, 0 deletions
diff --git a/nixpkgs/lib/default.nix b/nixpkgs/lib/default.nix
new file mode 100644
index 00000000000..18d2dfae1e1
--- /dev/null
+++ b/nixpkgs/lib/default.nix
@@ -0,0 +1,138 @@
+/* Library of low-level helper functions for nix expressions.
+ *
+ * Please implement (mostly) exhaustive unit tests
+ * for new functions in `./tests.nix'.
+ */
+let
+
+ inherit (import ./fixed-points.nix {}) makeExtensible;
+
+ lib = makeExtensible (self: let
+ callLibs = file: import file { lib = self; };
+ in with self; {
+
+ # often used, or depending on very little
+ trivial = callLibs ./trivial.nix;
+ fixedPoints = callLibs ./fixed-points.nix;
+
+ # datatypes
+ attrsets = callLibs ./attrsets.nix;
+ lists = callLibs ./lists.nix;
+ strings = callLibs ./strings.nix;
+ stringsWithDeps = callLibs ./strings-with-deps.nix;
+
+ # packaging
+ customisation = callLibs ./customisation.nix;
+ maintainers = import ../maintainers/maintainer-list.nix;
+ meta = callLibs ./meta.nix;
+ sources = callLibs ./sources.nix;
+ versions = callLibs ./versions.nix;
+
+ # module system
+ modules = callLibs ./modules.nix;
+ options = callLibs ./options.nix;
+ types = callLibs ./types.nix;
+
+ # constants
+ licenses = callLibs ./licenses.nix;
+ systems = callLibs ./systems;
+
+ # misc
+ asserts = callLibs ./asserts.nix;
+ debug = callLibs ./debug.nix;
+ generators = callLibs ./generators.nix;
+ misc = callLibs ./deprecated.nix;
+
+ # domain-specific
+ fetchers = callLibs ./fetchers.nix;
+
+ # Eval-time filesystem handling
+ filesystem = callLibs ./filesystem.nix;
+
+ # back-compat aliases
+ platforms = systems.doubles;
+
+ inherit (builtins) add addErrorContext attrNames concatLists
+ deepSeq elem elemAt filter genericClosure genList getAttr
+ hasAttr head isAttrs isBool isInt isList isString length
+ lessThan listToAttrs pathExists readFile replaceStrings seq
+ stringLength sub substring tail;
+ inherit (trivial) id const concat or and bitAnd bitOr bitXor bitNot
+ boolToString mergeAttrs flip mapNullable inNixShell min max
+ importJSON warn info showWarnings nixpkgsVersion version mod compare
+ splitByAndCompare functionArgs setFunctionArgs isFunction;
+ inherit (fixedPoints) fix fix' converge extends composeExtensions
+ makeExtensible makeExtensibleWithCustomName;
+ inherit (attrsets) attrByPath hasAttrByPath setAttrByPath
+ getAttrFromPath attrVals attrValues getAttrs catAttrs filterAttrs
+ filterAttrsRecursive foldAttrs collect nameValuePair mapAttrs
+ mapAttrs' mapAttrsToList mapAttrsRecursive mapAttrsRecursiveCond
+ genAttrs isDerivation toDerivation optionalAttrs
+ zipAttrsWithNames zipAttrsWith zipAttrs recursiveUpdateUntil
+ recursiveUpdate matchAttrs overrideExisting getOutput getBin
+ getLib getDev chooseDevOutputs zipWithNames zip;
+ inherit (lists) singleton forEach foldr fold foldl foldl' imap0 imap1
+ concatMap flatten remove findSingle findFirst any all count
+ optional optionals toList range partition zipListsWith zipLists
+ reverseList listDfs toposort sort naturalSort compareLists take
+ drop sublist last init crossLists unique intersectLists
+ subtractLists mutuallyExclusive groupBy groupBy';
+ inherit (strings) concatStrings concatMapStrings concatImapStrings
+ intersperse concatStringsSep concatMapStringsSep
+ concatImapStringsSep makeSearchPath makeSearchPathOutput
+ makeLibraryPath makeBinPath optionalString
+ hasInfix hasPrefix hasSuffix stringToCharacters stringAsChars escape
+ escapeShellArg escapeShellArgs replaceChars lowerChars
+ upperChars toLower toUpper addContextFrom splitString
+ removePrefix removeSuffix versionOlder versionAtLeast getVersion
+ nameFromURL enableFeature enableFeatureAs withFeature
+ withFeatureAs fixedWidthString fixedWidthNumber isStorePath
+ toInt readPathsFromFile fileContents;
+ inherit (stringsWithDeps) textClosureList textClosureMap
+ noDepEntry fullDepEntry packEntry stringAfter;
+ inherit (customisation) overrideDerivation makeOverridable
+ callPackageWith callPackagesWith extendDerivation hydraJob
+ makeScope;
+ inherit (meta) addMetaAttrs dontDistribute setName updateName
+ appendToName mapDerivationAttrset setPrio lowPrio lowPrioSet hiPrio
+ hiPrioSet;
+ inherit (sources) pathType pathIsDirectory cleanSourceFilter
+ cleanSource sourceByRegex sourceFilesBySuffices
+ commitIdFromGitRepo cleanSourceWith pathHasContext
+ canCleanSource;
+ inherit (modules) evalModules closeModules unifyModuleSyntax
+ applyIfFunction unpackSubmodule packSubmodule mergeModules
+ mergeModules' mergeOptionDecls evalOptionValue mergeDefinitions
+ pushDownProperties dischargeProperties filterOverrides
+ sortProperties fixupOptionType mkIf mkAssert mkMerge mkOverride
+ mkOptionDefault mkDefault mkForce mkVMOverride mkStrict
+ mkFixStrictness mkOrder mkBefore mkAfter mkAliasDefinitions
+ mkAliasAndWrapDefinitions fixMergeModules mkRemovedOptionModule
+ mkRenamedOptionModule mkMergedOptionModule mkChangedOptionModule
+ mkAliasOptionModule doRename filterModules;
+ inherit (options) isOption mkEnableOption mkSinkUndeclaredOptions
+ mergeDefaultOption mergeOneOption mergeEqualOption getValues
+ getFiles optionAttrSetToDocList optionAttrSetToDocList'
+ scrubOptionValue literalExample showOption showFiles
+ unknownModule mkOption;
+ inherit (types) isType setType defaultTypeMerge defaultFunctor
+ isOptionType mkOptionType;
+ inherit (asserts)
+ assertMsg assertOneOf;
+ inherit (debug) addErrorContextToAttrs traceIf traceVal traceValFn
+ traceXMLVal traceXMLValMarked traceSeq traceSeqN traceValSeq
+ traceValSeqFn traceValSeqN traceValSeqNFn traceShowVal
+ traceShowValMarked showVal traceCall traceCall2 traceCall3
+ traceValIfNot runTests testAllTrue traceCallXml attrNamesToStr;
+ inherit (misc) maybeEnv defaultMergeArg defaultMerge foldArgs
+ maybeAttrNullable maybeAttr ifEnable checkFlag getValue
+ checkReqs uniqList uniqListExt condConcat lazyGenericClosure
+ innerModifySumArgs modifySumArgs innerClosePropagation
+ closePropagation mapAttrsFlatten nvs setAttr setAttrMerge
+ mergeAttrsWithFunc mergeAttrsConcatenateValues
+ mergeAttrsNoOverride mergeAttrByFunc mergeAttrsByFuncDefaults
+ mergeAttrsByFuncDefaultsClean mergeAttrBy
+ fakeSha256 fakeSha512
+ nixType imap;
+ });
+in lib