Eelco Dolstra
0d59f1ca49
nix: Respect -I, --arg, --argstr
...
Also, random cleanup to argument handling.
2017-10-24 12:58:34 +02:00
Jörg Thalheim
2fd8f8bb99
Replace Unicode quotes in user-facing strings by ASCII
...
Relevant RFC: NixOS/rfcs#4
$ ag -l | xargs sed -i -e "/\"/s/’/'/g;/\"/s/‘/'/g"
2017-07-30 12:32:45 +01:00
Eelco Dolstra
4c9ff89c26
nix-build/nix-shell: Eliminate call to nix-instantiate / nix-store
...
Note that this removes the need for a derivation symlink, so the
--drv-path and --add-drv-link flags now do nothing.
2017-07-26 17:29:09 +02:00
Eelco Dolstra
fcca702a96
Replace a few bool flags with enums
...
Functions like copyClosure() had 3 bool arguments, which creates a
severe risk of mixing up arguments.
Also, implement copyClosure() using copyPaths().
2017-07-03 11:38:08 +02:00
Eelco Dolstra
b01d62285c
Improve progress indicator
2017-05-16 16:09:57 +02:00
Eelco Dolstra
215b70f51e
Revert "Get rid of unicode quotes ( #1140 )"
...
This reverts commit f78126bfd6 . There
really is no need for such a massive change...
2016-11-26 00:38:01 +01:00
Guillaume Maudoux
f78126bfd6
Get rid of unicode quotes ( #1140 )
2016-11-25 15:48:27 +01:00
Eelco Dolstra
812c0dfbe2
Allow setting the state directory as a store parameter
...
E.g. "local?store=/tmp/store&state=/tmp/var".
2016-06-02 16:02:48 +02:00
Eelco Dolstra
41633f9f73
Improved logging abstraction
...
This also gets rid of --log-type, since the nested log type isn't
useful in a multi-threaded situation, and nobody cares about the
"pretty" log type.
2016-04-25 19:18:45 +02:00
Eelco Dolstra
ae4a3cfa03
Move addPermRoot into Store
2016-02-11 16:14:42 +01:00
Eelco Dolstra
fa7cd5369b
StoreAPI -> Store
...
Calling a class an API is a bit redundant...
2016-02-04 14:48:42 +01:00
Eelco Dolstra
c10c61449f
Eliminate the "store" global variable
...
Also, move a few free-standing functions into StoreAPI and Derivation.
Also, introduce a non-nullable smart pointer, ref<T>, which is just a
wrapper around std::shared_ptr ensuring that the pointer is never
null. (For reference-counted values, this is better than passing a
"T&", because the latter doesn't maintain the refcount. Usually, the
caller will have a shared_ptr keeping the value alive, but that's not
always the case, e.g., when passing a reference to a std::thread via
std::bind.)
2016-02-04 14:28:26 +01:00
Eelco Dolstra
5c28943e8f
int2String() -> std::to_string()
2015-10-29 13:26:55 +01:00
Eelco Dolstra
6bd2c7bb38
OCD: foreach -> C++11 ranged for
2015-07-17 20:13:56 +02:00
Eelco Dolstra
6519f06f39
nix-env/nix-instantiate/nix-build: Support URIs
...
For instance, you can install Firefox from a specific Nixpkgs revision
like this:
$ nix-env -f https://github.com/NixOS/nixpkgs/archive/63def04891a0abc328b1b0b3a78ec02c58f48583.tar.gz -iA firefox
Or build a package from the latest nixpkgs-unstable channel:
$ nix-build https://nixos.org/channels/nixpkgs-unstable/nixexprs.tar.xz -A hello
2015-05-06 14:54:31 +02:00
Eelco Dolstra
9451ef3731
Allow URLs in the Nix search path
...
E.g. to install "hello" from the latest Nixpkgs:
$ nix-build '<nixpkgs>' -A hello -I nixpkgs=https://nixos.org/channels/nixpkgs-unstable/nixexprs.tar.xz
Or to install a specific version of NixOS:
$ nixos-rebuild switch -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/63def04891a0abc328b1b0b3a78ec02c58f48583.tar.gz
2015-05-05 17:09:42 +02:00
Eelco Dolstra
726f7f7fc9
Fix Boehm API violation
...
We were calling GC_INIT() after doing an allocation (in the baseEnv
construction), which is not allowed.
2015-03-19 20:02:37 +01:00
Eelco Dolstra
8aedaf111e
Remove canary stuff
2014-12-12 10:59:50 +01:00
Eelco Dolstra
1e0a799bef
Rename strictForceValue -> forceValueDeep
2014-09-22 16:05:00 +02:00
Eelco Dolstra
5b58991a71
Store Attrs inside Bindings
...
This prevents a double allocation per attribute set.
2014-09-19 16:49:41 +02:00
Eelco Dolstra
6e5b02bee4
Add some instrumentation for debugging GC leaks
2014-09-17 15:19:07 +02:00
Eelco Dolstra
11849a320e
Use proper quotes everywhere
2014-08-20 18:03:48 +02:00
Eelco Dolstra
47e185847e
Refactor option handling
2014-08-13 03:50:44 +02:00
Eelco Dolstra
e477f0e938
Style fix
2014-06-27 11:36:23 +02:00
Paul Colomiets
858b8f9760
Add --json argument to nix-instantiate
2014-06-27 11:23:40 +02:00
Eelco Dolstra
39d72640c2
Ensure that -I flags get included in nixPath
...
Also fixes #261 .
2014-05-26 16:52:31 +02:00
Eelco Dolstra
95501c4dee
nix-instantiate --eval: Apply auto-arguments if the result is a function
...
Fixes #254 .
2014-05-13 12:56:48 +02:00
Eelco Dolstra
a897b58373
nix-instantiate: Allow --dry-run as a synonym for --readonly-mode
...
--dry-run is more consistent with nix-env and nix-store.
2014-02-19 16:46:33 +01:00
Eelco Dolstra
e1cf40fa95
nix-instantiate: Rename --eval-only to --eval, --parse-only to --parse
2014-02-19 16:34:24 +01:00
Eelco Dolstra
c31836008e
nix-instantiate: Add a flag --expr / -E to read expressions from the command line
...
This is basically a shortcut for ‘echo 'expr...' | nix-instantiate -’.
Also supported by nix-build and nix-shell.
2014-02-19 16:30:19 +01:00
Shea Levy
84a8b5e9af
nix-instantiate --eval-only --read-write-mode: Don't depend on ordering
...
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-07 18:03:38 +01:00
Shea Levy
e4058fab64
Rename --no-readonly-mode --read-write-mode
...
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-07 18:03:38 +01:00
Shea Levy
0c3e8a616e
nix-instantiate: Add a --no-readonly-mode flag
...
This allows running nix-instantiate --eval-only without performing the
evaluation in readonly mode, letting features like import from
derivation and automatic substitution of builtins.storePath paths work.
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-07 18:03:38 +01:00
Eelco Dolstra
0c6d62cf27
Remove Automakefiles
2014-02-01 13:54:38 +01:00
Eelco Dolstra
16e7d69209
Update Makefile variable names
2014-02-01 13:54:38 +01:00
Eelco Dolstra
e0234dfddc
Rename Makefile -> local.mk
2014-01-30 12:11:06 +01:00
Eelco Dolstra
b4c684e0f9
Update Makefiles
2014-01-09 16:53:47 +01:00
Eelco Dolstra
7ce0e05ad8
Rename Makefile.new -> Makefile
2013-11-25 15:25:13 +00:00
Eelco Dolstra
754c05ed6c
Rename $(here) to $(d) for brevity, and remove trailing slash
2013-11-22 16:45:52 +00:00
Eelco Dolstra
b8e9efc476
New non-recursive, plain Make-based build system
2013-11-22 15:54:18 +01:00
Eelco Dolstra
0f24400d90
Generalise meta attributes
2013-11-19 14:09:14 +01:00
Eelco Dolstra
ef4f5ba85e
Work on Values instead of Exprs
...
This prevents some duplicate evaluation in nix-env and
nix-instantiate.
Also, when traversing ~/.nix-defexpr, only read regular files with the
extension .nix. Previously it was reading files like
.../channels/binary-caches/<name>. The only reason this didn't cause
problems is pure luck (namely, <name> shadows an actual Nix
expression, the binary-caches files happen to be syntactically valid
Nix expressions, and we iterate over the directory contents in just
the right order).
2013-09-03 13:17:51 +00:00
Eelco Dolstra
06bb2d95b4
Reformat
2013-09-03 11:04:21 +00:00
Eelco Dolstra
6f809194d7
Get rid of the parse tree cache
...
Since we already cache files in normal form (fileEvalCache), caching
parse trees is redundant.
Note that getting rid of this cache doesn't actually save much memory
at the moment, because parse trees are currently not freed / GC'ed.
2013-09-03 13:01:42 +02:00
Eelco Dolstra
408a7bfac1
nix-instantiate: Fix read-only evaluation
2012-11-26 17:41:10 +01:00
Eelco Dolstra
46a369ad95
Make "nix-build -A <derivation>.<output>" do the right thing
...
For example, given a derivation with outputs "out", "man" and "bin":
$ nix-build -A pkg
produces ./result pointing to the "out" output;
$ nix-build -A pkg.man
produces ./result-man pointing to the "man" output;
$ nix-build -A pkg.all
produces ./result, ./result-man and ./result-bin;
$ nix-build -A pkg.all -A pkg2
produces ./result, ./result-man, ./result-bin and ./result-2.
2012-11-26 15:39:10 +01:00
Eelco Dolstra
70f75be199
getDerivation(): Don't always quietly ignore assertion failure
...
Ignoring assertion failures makes some sense for nix-env -qa, but not
for nix-instantiate/nix-build or hydra-eval-jobs.
2012-10-04 15:22:25 -04:00
Eelco Dolstra
a562d544d8
When ‘--help’ is given, just run ‘man’ to show the manual page
...
I.e. do what git does. I'm too lazy to keep the builtin help text up
to date :-)
Also add ‘--help’ to various commands that lacked it
(e.g. nix-collect-garbage).
2012-10-03 16:40:09 -04:00
Eelco Dolstra
0a7084567f
Add a ‘--repair’ flag to nix-instantiate
...
This allows repairing corrupted derivations and other source files.
2012-10-03 15:09:18 -04:00
Eelco Dolstra
f7b650d234
Make "nix-instantiate -" interruptible
2012-08-28 11:47:26 -04:00