| Commit message (Expand) | Author | Age | Files | Lines |
| * | lib/strings: Introduce escapeNixIdentifier | Silvan Mosberger | 2020-04-13 | 1 | -0/+15 |
| * | Merge pull request #83241 from Infinisil/valid-drv-name•••lib/strings: Add `sanitizeDerivationName` function | Silvan Mosberger | 2020-04-02 | 1 | -0/+32 |
| |\ |
|
| | * | lib/strings: Add sanitizeDerivationName function | Silvan Mosberger | 2020-03-30 | 1 | -0/+32 |
| * | | Revert "Revert "Merge master into staging-next""•••In 87a19e9048773d5a363679617406ad148d36c3b8 I merged staging-next into master using the GitHub gui as intended.
In ac241fb7a570d6cf81d229ad22a8889602639160 I merged master into staging-next for the next staging cycle, however, I accidentally pushed it to master.
Thinking this may cause trouble, I reverted it in 0be87c79797a5fa384fbc356c74ed54f9f7829ea. This was however wrong, as it "removed" master.
This reverts commit 0be87c79797a5fa384fbc356c74ed54f9f7829ea.
| Frederik Rietdijk | 2020-02-05 | 1 | -1/+1 |
| * | | Revert "Merge master into staging-next"•••I merged master into staging-next but accidentally pushed it to master.
This should get us back to 87a19e9048773d5a363679617406ad148d36c3b8.
This reverts commit ac241fb7a570d6cf81d229ad22a8889602639160, reversing
changes made to 76a439239eb310d9ad76d998b34d5d3bc0e37acb.
| Frederik Rietdijk | 2020-02-05 | 1 | -1/+1 |
| * | | lib/strings: fix comment typo | Robert Helgesson | 2020-02-05 | 1 | -1/+1 |
| |/ |
|
| * | lib: Add getName to mirror getVersion | John Ericson | 2019-11-24 | 1 | -0/+17 |
| * | Doc fix: use correct function name in type signature for concatIMapStringsSep | Nathan van Doorn | 2019-03-18 | 1 | -1/+1 |
| * | lib.makePerlPath -> perlPackages.makePerlPath | volth | 2018-12-15 | 1 | -20/+0 |
| * | make-derivation: use pname-version as default name if both are present | Patrick Hilhorst | 2018-11-06 | 1 | -0/+20 |
| * | Merge pull request #49383 from tazjin/docs/lib-docstrings•••Update library function "docstrings" for nixdoc generation | Graham Christensen | 2018-10-29 | 1 | -51/+153 |
| |\ |
|
| | * | lib/strings: Update documentation comments for doc generation•••Updates documentation comments with extra information for nixdoc[1]
compatibility.
Some documentation strings have additionally been reworded for
clarity.
"Faux types" are added where applicable, but some functions do things
that are not trivially representable in the type notation used so they
were ignored for this purpose.
[1]: https://github.com/tazjin/nixdoc
| Vincent Ambo | 2018-10-29 | 1 | -51/+153 |
| * | | lib.isStorePath: fix `false` result when passed a path object•••Since `isStorePath` relies on comparing against builtins.storeDir
(a string), we need to convert the input into a string as well.
| Tim Cuthbertson | 2018-10-20 | 1 | -3/+6 |
| |/ |
|
| * | lib/trivial: add a few examples of usage of assertMsg/assertOneOf | Profpatsch | 2018-09-06 | 1 | -2/+5 |
| * | Merge branch 'no-toPath' | Shea Levy | 2018-09-06 | 1 | -3/+2 |
| |\ |
|
| | * | treewide: Remove uses of builtins.toPath.•••toPath has confusing semantics and is never necessary; it can always
either just be omitted or replaced by pre-concatenating `/.`. It has
been marked as "!!! obsolete?" for more than 10 years in a C++
comment, hopefully removing it will let us properly deprecate and,
eventually, remove it.
| Shea Levy | 2018-05-22 | 1 | -3/+2 |
| * | | function rewritten by @Infinisil | Aaron Andersen | 2018-08-21 | 1 | -8/+1 |
| * | | as requested:•••- moved function into strings.nix
- renamed function from makePerl5Lib
- removed duplicates entries in the resulting value
- rewrote the function from scratch after learning a few things (much cleaner now)
| Aaron Andersen | 2018-08-21 | 1 | -0/+16 |
| * | | treewide: fix build with disallowed aliases (#43872)•••fixes build with disallowed aliases | volth | 2018-07-21 | 1 | -1/+1 |
| |/ |
|
| * | lib: Add more configure flag helpers•••Add with/without to match enable/disable, and add
`--{enable,with}-key=value` versions of both.
| John Ericson | 2018-05-11 | 1 | -0/+33 |
| * | lib.makeSearchPath: allow null in search path•••This makes things match ‘buildInputs’ where inputs are allowed to be
null.
| Matthew Bauer | 2018-05-09 | 1 | -1/+1 |
| * | lib.isStorePath: Fix derivation detection | Shea Levy | 2018-03-09 | 1 | -1/+8 |
| * | nixpkgs.lib: Add escapeNixString | Ryan Trinkle | 2017-12-02 | 1 | -0/+8 |
| * | Convert libs to a fixed-point•••This does break the API of being able to import any lib file and get
its libs, however I'm not sure people did this.
I made this while exploring being able to swap out docFn with a stub
in #2305, to avoid functor performance problems. I don't know if that
is going to move forward (or if it is a problem or not,) but after
doing all this work figured I'd put it up anyway :)
Two notable advantages to this approach:
1. when a lib inherits another lib's functions, it doesn't
automatically get put in to the scope of lib
2. when a lib implements a new obscure functions, it doesn't
automatically get put in to the scope of lib
Using the test script (later in this commit) I got the following diff
on the API:
+ diff master fixed-lib
11764a11765,11766
> .types.defaultFunctor
> .types.defaultTypeMerge
11774a11777,11778
> .types.isOptionType
> .types.isType
11781a11786
> .types.mkOptionType
11788a11794
> .types.setType
11795a11802
> .types.types
This means that this commit _adds_ to the API, however I can't find a
way to fix these last remaining discrepancies. At least none are
_removed_.
Test script (run with nix-repl in the PATH):
#!/bin/sh
set -eux
repl() {
suff=${1:-}
echo "(import ./lib)$suff" \
| nix-repl 2>&1
}
attrs_to_check() {
repl "${1:-}" \
| tr ';' $'\n' \
| grep "\.\.\." \
| cut -d' ' -f2 \
| sed -e "s/^/${1:-}./" \
| sort
}
summ() {
repl "${1:-}" \
| tr ' ' $'\n' \
| sort \
| uniq
}
deep_summ() {
suff="${1:-}"
depth="${2:-4}"
depth=$((depth - 1))
summ "$suff"
for attr in $(attrs_to_check "$suff" | grep -v "types.types"); do
if [ $depth -eq 0 ]; then
summ "$attr" | sed -e "s/^/$attr./"
else
deep_summ "$attr" "$depth" | sed -e "s/^/$attr./"
fi
done
}
(
cd nixpkgs
#git add .
#git commit -m "Auto-commit, sorry" || true
git checkout fixed-lib
deep_summ > ../fixed-lib
git checkout master
deep_summ > ../master
)
if diff master fixed-lib; then
echo "SHALLOW MATCH!"
fi
(
cd nixpkgs
git checkout fixed-lib
repl .types
)
| Graham Christensen | 2017-09-16 | 1 | -2/+2 |
| * | lib: introduce imap0, imap1 (#25543)•••* lib: introduce imap0, imap1
For historical reasons, imap starts counting at 1 and it's not
consistent with the rest of the lib.
So for now we split imap into imap0 that starts counting at zero and
imap1 that starts counting at 1. And imap is marked as deprecated.
See https://github.com/NixOS/nixpkgs/commit/c71e2d42359f9900ea2c290d141c0d606471da16#commitcomment-21873221
* replace uses of lib.imap
* lib: move imap to deprecated.nix
| zimbatm | 2017-07-04 | 1 | -2/+2 |
| * | lib/string: make `isStorePath` total (#26216)•••fix #9278 | Profpatsch | 2017-05-30 | 1 | -1/+6 |
| * | lib: trivial spelling fixes | Tom Saeger | 2017-04-19 | 1 | -2/+2 |
| * | lib.readPathsFromFile: simplify, /cc #24036•••This part isn't needed after 36de745e1b7.
| Orivej Desh | 2017-03-19 | 1 | -3/+1 |
| * | readPathsFromFile: fixup after #23851•••The final newline would produce an empty string;
let's filter all empty lines as well.
| Vladimír Čunát | 2017-03-19 | 1 | -1/+1 |
| * | libs: make splitString also split last separator (#23851)•••* libs: make splitString also split last separator
* libs: add tests for splitStrings
| Léo Gaspard | 2017-03-15 | 1 | -1/+1 |
| * | getVersion: first try drv.version before parsing drv.name | Domen Kožar | 2016-08-13 | 1 | -1/+6 |
| * | fix documentation typo in lib/strings.nix (#17684) | Данило Глинський (Danylo Hlynskyi) | 2016-08-12 | 1 | -1/+1 |
| * | hasSuffix: human readable inputs | Domen Kožar | 2016-08-10 | 1 | -5/+5 |
| * | lib: add fileContents function | Eric Sagnes | 2016-08-01 | 1 | -0/+10 |
| * | lib: Make escapeShellArg more robust•••Quoting various characters that the shell *may* interpret specially is a
very fragile thing to do.
I've used something more robust all over the place in various Nix
expression I've written just because I didn't trust escapeShellArg.
Here is a proof of concept showing that I was indeed right in
distrusting escapeShellArg:
with import <nixpkgs> {};
let
payload = runCommand "payload" {} ''
# \x00 is not allowed for Nix strings, so let's begin at 1
for i in $(seq 1 255); do
echo -en "\\x$(printf %02x $i)"
done > "$out"
'';
escapers = with lib; {
current = escapeShellArg;
better = arg: let
backslashEscapes = stringToCharacters "\"\\ ';$`()|<>\r\t*[]&!~#";
search = backslashEscapes ++ [ "\n" ];
replace = map (c: "\\${c}") backslashEscapes ++ [ "'\n'" ];
in replaceStrings search replace (toString arg);
best = arg: "'${replaceStrings ["'"] ["'\\''"] (toString arg)}'";
};
testWith = escaper: let
escaped = escaper (builtins.readFile payload);
in runCommand "test" {} ''
if ! r="$(bash -c ${escapers.best "echo -nE ${escaped}"} 2> /dev/null)"
then
echo bash eval error > "$out"
exit 0
fi
if echo -n "$r" | cmp -s "${payload}"; then
echo success > "$out"
else
echo failed > "$out"
fi
'';
in runCommand "results" {} ''
echo "Test results:"
${lib.concatStrings (lib.mapAttrsToList (name: impl: ''
echo " ${name}: $(< "${testWith impl}")"
'') escapers)}
exit 1
''
The resulting output is the following:
Test results:
best: success
better: success
current: bash eval error
I did the "better" implementation just to illustrate that the method of
quoting only "harmful" characters results in madness in terms of
implementation and performance.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Cc: @edolstra, @zimbatm
| aszlig | 2016-06-20 | 1 | -8/+7 |
| * | Merge pull request #16180 from zimbatm/shell-escaping•••Escape all shell arguments uniformly | zimbatm | 2016-06-19 | 1 | -1/+10 |
| |\ |
|
| | * | Escape all shell arguments uniformly | zimbatm | 2016-06-12 | 1 | -1/+10 |
| * | | Remove unecessary branching on old nix versions•••All these builtins are available since 1.10 or earlier (1.10 being the
lib/minver.nix)
| zimbatm | 2016-06-17 | 1 | -5/+1 |
| |/ |
|
| * | lib: revert my bogus comment fix•••See https://github.com/NixOS/nixpkgs/commit/5445e521b6524587489c6968cc27347977b9b7b8#commitcomment-17531945
| Nikolay Amiantov | 2016-05-19 | 1 | -1/+1 |
| * | firefox: restore gstreamer support for older firefox releases | Nikolay Amiantov | 2016-05-19 | 1 | -1/+1 |
| * | make*Path: implement via makeSearchPathOutput | Nikolay Amiantov | 2016-04-25 | 1 | -7/+3 |
| * | makeSearchPathOutputs: refactor to makeSearchPathOutput | Nikolay Amiantov | 2016-04-25 | 1 | -5/+4 |
| * | makeSearchPath (and derivatives): check outputUnspecified | Nikolay Amiantov | 2016-04-13 | 1 | -4/+4 |
| * | makePerlPath: try to guess outputs | Nikolay Amiantov | 2016-04-13 | 1 | -1/+2 |
| * | makeSearchPathOutputs: init function | Nikolay Amiantov | 2016-04-13 | 1 | -0/+10 |
| * | makeBinPath: guess outputs | Nikolay Amiantov | 2016-04-13 | 1 | -1/+2 |
| * | Merge branch 'master' into closure-size•••Comparison to master evaluations on Hydra:
- 1255515 for nixos
- 1255502 for nixpkgs
| Vladimír Čunát | 2016-04-10 | 1 | -1/+1 |
| |\ |
|
| | * | Stronger warning against usage of splitString | Eelco Dolstra | 2016-04-01 | 1 | -1/+1 |
| * | | Merge branch 'master' into closure-size•••Beware that stdenv doesn't build. It seems something more will be needed
than just resolution of merge conflicts.
| Vladimír Čunát | 2016-04-01 | 1 | -61/+273 |
| |\| |
|
| | * | lib/strings: document all the functions | zimbatm | 2016-03-10 | 1 | -61/+273 |