Ben Burdette
8c2bf15c4f
format -> fmt
2020-04-08 11:17:02 -06:00
Ben Burdette
555baa8fb0
comments
2020-04-08 09:56:10 -06:00
Ben Burdette
54f91923c8
return of NixCode
2020-04-08 09:48:21 -06:00
Ben Burdette
47ed067d45
initializer style
2020-04-08 09:07:58 -06:00
Ben Burdette
00c507cc52
columnRange -> column
2020-04-07 14:36:32 -06:00
Ben Burdette
20c0984a46
remove columnrange; switch to fmt in error.cc
2020-04-07 10:14:15 -06:00
Eelco Dolstra
462421d345
Backport libfetchers from the flakes branch
...
This provides a pluggable mechanism for defining new fetchers. It adds
a builtin function 'fetchTree' that generalizes existing fetchers like
'fetchGit', 'fetchMercurial' and 'fetchTarball'. 'fetchTree' takes a
set of attributes, e.g.
fetchTree {
type = "git";
url = "https://example.org/repo.git ";
ref = "some-branch";
rev = "abcdef...";
}
The existing fetchers are just wrappers around this. Note that the
input attributes to fetchTree are the same as flake input
specifications and flake lock file entries.
All fetchers share a common cache stored in
~/.cache/nix/fetcher-cache-v1.sqlite. This replaces the ad hoc caching
mechanisms in fetchGit and download.cc (e.g. ~/.cache/nix/{tarballs,git-revs*}).
This also adds support for Git worktrees (c169ea5904
).
2020-04-07 09:03:14 +02:00
Ben Burdette
55c96b64e4
comment cleanup
2020-04-06 20:14:48 -06:00
Ben Burdette
ec449c8450
constructor style basically working
2020-04-06 19:43:22 -06:00
Ben Burdette
216263c36f
Merge branch 'master' into error-format
2020-04-06 10:00:00 -06:00
Ben Burdette
9bb528d392
handle Pos instead of individual file/line/columnrange args
2020-04-03 13:15:59 -06:00
Ben Burdette
7b7801d3f0
variadic args for hint format
2020-04-03 08:48:20 -06:00
Ben Burdette
c6b3fcddb0
formatted with astyle
2020-04-02 16:02:40 -06:00
Ben Burdette
1c329ca433
indenting
2020-04-02 14:25:43 -06:00
Ben Burdette
e697884f65
using std:: everywhere; fix a formatting error; add exception flags
2020-04-01 21:30:19 -06:00
Ben Burdette
dd7b8183a5
indenting
2020-04-01 16:20:20 -06:00
Ben Burdette
8713aeac5e
remove using std::*, switch to include guard
2020-04-01 15:51:14 -06:00
Ben Burdette
5b3aefff85
add some explanatory comments
2020-03-31 12:42:41 -06:00
Ben Burdette
9e7b89bf10
rename errors/warnings
2020-03-31 11:56:37 -06:00
Ben Burdette
09652f597c
enum style
2020-03-31 09:36:20 -06:00
Eelco Dolstra
e1a94ad852
Backport 'nix dev-shell' from the flakes branch
...
This also adds a '--profile' option to 'nix build' (replacing 'nix-env
--set').
2020-03-30 19:16:45 +02:00
Ben Burdette
35c7bab09a
build with make
2020-03-30 09:14:29 -06:00
Eelco Dolstra
e0a0ae0467
Move fetchers from libstore to libfetchers
2020-03-30 14:04:53 +02:00
Ben Burdette
759f39800b
remove util.hh from deps
2020-03-27 10:55:09 -06:00
Ben Burdette
00eb3fcb7a
more cleanup
2020-03-27 10:13:46 -06:00
Ben Burdette
a3ef00be6c
camelcase; optional hint
2020-03-27 10:03:02 -06:00
Ben Burdette
d44c9c5581
some colors
2020-03-25 11:20:44 -06:00
Ben Burdette
3582dc3c88
programName as static member var
2020-03-25 10:52:03 -06:00
Ben Burdette
fc310eda3a
switch to one level of builder function, not subobject functions
2020-03-24 14:24:57 -06:00
Ben Burdette
0166e7ab6d
MkNixCode, MkErrLine approach
2020-03-24 11:21:35 -06:00
Ben Burdette
4171ab4bbd
renaming
2020-03-24 09:18:23 -06:00
Eelco Dolstra
0a10854f85
Misc changes from the flakes branch
2020-03-24 14:34:47 +01:00
Eelco Dolstra
7a8de57d3e
Pretty-print 'nix why-depends' / 'nix-store -q --tree' output
...
Extracted from 678301072f
.
2020-03-24 14:26:23 +01:00
Eelco Dolstra
4260a22a55
absPath(): Use std::optional
...
(cherry picked from commit 1bf9eb21b7
)
2020-03-24 14:25:28 +01:00
Eelco Dolstra
edc34cc1a2
Add function for quoting strings
...
(cherry picked from commit 7dcf5b011a
)
2020-03-24 13:44:04 +01:00
Ben Burdette
aadd59d005
error test
2020-03-23 15:29:49 -06:00
Ben Burdette
f694f43d7d
straightforward port of rust mockup code
2020-03-22 12:25:47 -06:00
Eelco Dolstra
6208d24c38
Merge remote-tracking branch 'origin/master' into flakes
2020-02-14 22:42:35 +01:00
Eelco Dolstra
d8972317fc
Prevent uninitialized StorePath creation
2020-02-13 16:12:16 +01:00
Eelco Dolstra
8451298b35
Factor out TreeInfo
2020-02-01 22:06:55 +01:00
Eelco Dolstra
c5319e5d0b
Show "warning:" in yellow instead of red
2020-02-01 12:37:22 +01:00
Eelco Dolstra
8414685c0f
Change lock file format to use an attribute representation of flake refs rather than URLs
2020-01-31 19:16:40 +01:00
Eelco Dolstra
e91f32f2b5
Use light box drawing symbols
2020-01-31 14:09:27 +01:00
Eelco Dolstra
678301072f
nix flake list-inputs: Pretty-print the tree
2020-01-31 14:09:27 +01:00
Eelco Dolstra
9f4d8c6170
Pluggable fetchers
...
Flakes are now fetched using an extensible mechanism. Also lots of
other flake cleanups.
2020-01-21 22:56:04 +01:00
Eelco Dolstra
1bf9eb21b7
absPath(): Use std::optional
2020-01-21 22:39:43 +01:00
Eelco Dolstra
c7866733d7
Merge remote-tracking branch 'origin/master' into flakes
2019-12-20 12:45:58 +01:00
Eelco Dolstra
c84c843e33
tarfile.cc: Restore timestamps
...
This is needed to get the lastModified attribute of GitHub flakes.
2019-12-19 15:09:54 +01:00
Eelco Dolstra
2550c11373
tarfile.cc: Don't change the cwd
...
Nix is multithreaded so it's not safe to change the cwd.
2019-12-19 15:08:16 +01:00
Eelco Dolstra
be32da0ed0
tarfile.cc: Style fixes
2019-12-19 15:01:58 +01:00
Eelco Dolstra
ee235e764c
Merge branch 'libarchive' of https://github.com/yorickvP/nix
2019-12-19 14:47:18 +01:00
Eelco Dolstra
87873d0d65
Merge remote-tracking branch 'origin/master' into flakes
2019-12-18 14:25:25 +01:00
Eelco Dolstra
f8abbdd456
Add priority setting to stores
...
This allows overriding the priority of substituters, e.g.
$ nix-store --store ~/my-nix/ -r /nix/store/df3m4da96d84ljzxx4mygfshm1p0r2n3-geeqie-1.4 \
--substituters 'http://cache.nixos.org?priority=100 daemon?priority=10'
Fixes #3264 .
2019-12-17 17:17:53 +01:00
Eelco Dolstra
ad6b738ed8
Merge remote-tracking branch 'origin/master' into flakes
2019-12-16 20:17:21 +01:00
Eelco Dolstra
54bf5ba422
nix-store -r: Handle symlinks to store paths
...
Fixes #3270 .
2019-12-16 19:11:47 +01:00
Eelco Dolstra
ac9cc2ec08
Move some code
2019-12-13 19:10:39 +01:00
Eelco Dolstra
b4edc3ca61
Don't leak exceptions
2019-12-13 19:05:26 +01:00
Eelco Dolstra
e6bd88878e
Improve gzip error message
2019-12-13 19:05:26 +01:00
Eelco Dolstra
ca87707c90
Get rid of CBox
2019-12-13 19:05:26 +01:00
Eelco Dolstra
3e787423c2
Remove FIXME
2019-12-13 12:55:52 +01:00
Tom Bereknyei
c6295a3afd
Initial gzip support
...
Closes #3256
2019-12-13 03:34:15 -05:00
Eelco Dolstra
ecb3a1afa2
Merge remote-tracking branch 'origin/master' into flakes
2019-12-11 14:53:30 +01:00
Eelco Dolstra
bbe97dff8b
Make the Store API more type-safe
...
Most functions now take a StorePath argument rather than a Path (which
is just an alias for std::string). The StorePath constructor ensures
that the path is syntactically correct (i.e. it looks like
<store-dir>/<base32-hash>-<name>). Similarly, functions like
buildPaths() now take a StorePathWithOutputs, rather than abusing Path
by adding a '!<outputs>' suffix.
Note that the StorePath type is implemented in Rust. This involves
some hackery to allow Rust values to be used directly in C++, via a
helper type whose destructor calls the Rust type's drop()
function. The main issue is the dynamic nature of C++ move semantics:
after we have moved a Rust value, we should not call the drop function
on the original value. So when we move a value, we set the original
value to bitwise zero, and the destructor only calls drop() if the
value is not bitwise zero. This should be sufficient for most types.
Also lots of minor cleanups to the C++ API to make it more modern
(e.g. using std::optional and std::string_view in some places).
2019-12-10 22:06:05 +01:00
Yorick
eba82b7c88
further clean up libarchive code
2019-12-09 17:21:46 +07:00
puck
28ee687adf
Clean up libarchive support
2019-12-07 18:12:21 +00:00
Yorick
fe7ec70e6b
remove rust unpack_tarfile ffi
2019-12-07 23:28:31 +07:00
Yorick
1355554d12
code 'cleanup'
2019-12-07 23:23:11 +07:00
Yorick
f54c168031
add wrapper function around libarchive to c++ errors
2019-12-07 23:10:27 +07:00
Yorick
232b390766
fixup! libarchive proof of concept
2019-12-07 23:00:37 +07:00
Yorick
9ff5f6492f
libarchive proof of concept
2019-12-07 22:35:14 +07:00
Eelco Dolstra
ab88f4bbd4
Merge remote-tracking branch 'origin/master' into flakes
2019-12-05 20:53:32 +01:00
Eelco Dolstra
5e449b43ed
Initialize Command::_name
...
(cherry picked from commit d0a769cb06
)
2019-12-05 20:21:22 +01:00
Eelco Dolstra
ac67685606
Make subcommand construction in MultiCommand lazy
...
(cherry picked from commit a0de58f471
)
2019-12-05 20:19:26 +01:00
Eelco Dolstra
f964f428fe
Move Command and MultiCommand to libutil
...
(cherry picked from commit f70434b1fb
)
2019-12-05 20:13:47 +01:00
Eelco Dolstra
092af3c826
Eliminate more pass-by-value in variadic calls
2019-12-05 19:58:52 +01:00
Eelco Dolstra
603b2f583c
Revert "Make fmt() non-recursive"
...
This reverts commit 2b761d5f50
.
Also *really* make fmt() take arguments by reference.
2019-12-05 19:58:49 +01:00
Eelco Dolstra
334b8f8af1
fmt(): Pass arguments by reference rather than by value
2019-12-05 17:40:46 +01:00
Eelco Dolstra
c3c23a52ee
Merge remote-tracking branch 'origin/master' into flakes
2019-12-04 00:31:09 +01:00
Eelco Dolstra
949dc84894
Fix segfault on i686-linux
...
https://hydra.nixos.org/build/107467517
Seems that on i686-linux, gcc and rustc disagree on how to return
1-word structs: gcc has the caller pass a pointer to the result, while
rustc has the callee return the result in a register. Work around this
by using a bare pointer.
2019-11-27 14:17:15 +01:00
Eelco Dolstra
8918bae098
Drop remaining uses of external "tar"
...
Also, fetchGit now runs in O(1) memory since we pipe the output of
'git archive' directly into unpackTarball() (rather than first reading
it all into memory).
2019-11-26 22:07:28 +01:00
Eelco Dolstra
d33dd6e6c0
Move code around
2019-11-26 22:07:28 +01:00
Eelco Dolstra
b7fba16613
Move code around
2019-11-26 22:07:28 +01:00
Eelco Dolstra
ba87b08f85
getEnv(): Return std::optional
...
This allows distinguishing between an empty value and no value.
2019-11-22 16:18:13 +01:00
Eelco Dolstra
5ee23c35b9
Merge pull request #3219 from Ericson2314/semicolons
...
Fix extra semicolons warnings
2019-11-11 12:13:51 +01:00
John Ericson
4c34054673
Remove unneeded semicolons
2019-11-10 11:24:47 -05:00
John Ericson
96e6e680c1
Fix extra ; warnings involving MakeError
2019-11-10 11:24:47 -05:00
Eelco Dolstra
2c1e05ae93
Merge remote-tracking branch 'origin/master' into flakes
2019-11-08 15:22:54 +01:00
Eelco Dolstra
0d6774468c
Move editorFor srom libutil to nix
...
libutil should not depend on libexpr.
2019-11-08 15:13:32 +01:00
Eelco Dolstra
f730841db4
Merge remote-tracking branch 'origin/master' into flakes
2019-11-07 11:44:02 +01:00
Eelco Dolstra
39a2e166dd
Cleanup
2019-11-06 16:53:02 +01:00
Eelco Dolstra
88c452d160
Merge remote-tracking branch 'origin/master' into flakes
2019-11-06 10:56:33 +01:00
Eelco Dolstra
852554bb16
Merge branch 'nix-repl-e' of https://github.com/zimbatm/nix
2019-11-05 11:20:53 +01:00
Eelco Dolstra
1b600ecd14
Don't use SOCK_CLOEXEC on macOS
...
https://hydra.nixos.org/build/105428308
2019-11-05 10:25:09 +01:00
Eelco Dolstra
b81d9d26f5
Merge remote-tracking branch 'origin/master' into flakes
2019-11-04 22:29:31 +01:00
Harald van Dijk
c935ad3f02
Fix progress bar when nix-prefetch-url is piped.
...
The intent of the code was that if the window size cannot be determined,
it would be treated as having the maximum possible size. Because of a
missing assignment, it was actually treated as having a width of 0.
The reason the width could not be determined was because it was obtained
from stdout, not stderr, even though the printing was done to stderr.
This commit addresses both issues.
2019-11-03 21:46:59 +00:00
Eelco Dolstra
63b99af85a
Move Unix domain socket creation to libutil
...
Also drop multithread-unfriendly hacks like doing a temporary
chmod/umask.
2019-10-29 13:30:51 +01:00
Jonas Chevalier
3774fe55fd
editorFor: take a pos object instead
2019-10-28 21:36:34 +01:00
Eelco Dolstra
f1c0b2c0e1
Add O(1)-memory copyPath() function
2019-10-27 18:18:58 +01:00
Jonas Chevalier
207a537343
libutil: add editorFor heuristic
2019-10-23 16:48:28 +02:00
Eelco Dolstra
9a18f544ac
Merge remote-tracking branch 'origin/master' into flakes
2019-10-21 18:48:21 +02:00