about summary refs log tree commit diff
path: root/src/nix/progress-bar.cc
AgeCommit message (Collapse)AuthorFilesLines
2019-08-02 Add a post-build-hookregnat1-2/+14
Passing `--post-build-hook /foo/bar` to a nix-* command will cause `/foo/bar` to be executed after each build with the following environment variables set: DRV_PATH=/nix/store/drv-that-has-been-built.drv OUT_PATHS=/nix/store/...build /nix/store/...build-bin /nix/store/...build-dev This can be useful in particular to upload all the builded artifacts to the cache (including the ones that don't appear in the runtime closure of the final derivation or are built because of IFD). This new feature prints the stderr/stdout output to the `nix-build` and `nix build` client, and the output is printed in a Nix 2 compatible format: [nix]$ ./inst/bin/nix-build ./test.nix these derivations will be built: /nix/store/ishzj9ni17xq4hgrjvlyjkfvm00b0ch9-my-example-derivation.drv building '/nix/store/ishzj9ni17xq4hgrjvlyjkfvm00b0ch9-my-example-derivation.drv'... hello! bye! running post-build-hook '/home/grahamc/projects/github.com/NixOS/nix/post-hook.sh'... post-build-hook: + sleep 1 post-build-hook: + echo 'Signing paths' /nix/store/qr213vjmibrqwnyp5fw678y7whbkqyny-my-example-derivation post-build-hook: Signing paths /nix/store/qr213vjmibrqwnyp5fw678y7whbkqyny-my-example-derivation post-build-hook: + sleep 1 post-build-hook: + echo 'Uploading paths' /nix/store/qr213vjmibrqwnyp5fw678y7whbkqyny-my-example-derivation post-build-hook: Uploading paths /nix/store/qr213vjmibrqwnyp5fw678y7whbkqyny-my-example-derivation post-build-hook: + sleep 1 post-build-hook: + printf 'very important stuff' /nix/store/qr213vjmibrqwnyp5fw678y7whbkqyny-my-example-derivation [nix-shell:~/projects/github.com/NixOS/nix]$ ./inst/bin/nix build -L -f ./test.nix my-example-derivation> hello! my-example-derivation> bye! my-example-derivation (post)> + sleep 1 my-example-derivation (post)> + echo 'Signing paths' /nix/store/c263gzj2kb2609mz8wrbmh53l14wzmfs-my-example-derivation my-example-derivation (post)> Signing paths /nix/store/c263gzj2kb2609mz8wrbmh53l14wzmfs-my-example-derivation my-example-derivation (post)> + sleep 1 my-example-derivation (post)> + echo 'Uploading paths' /nix/store/c263gzj2kb2609mz8wrbmh53l14wzmfs-my-example-derivation my-example-derivation (post)> Uploading paths /nix/store/c263gzj2kb2609mz8wrbmh53l14wzmfs-my-example-derivation my-example-derivation (post)> + sleep 1 my-example-derivation (post)> + printf 'very important stuff' [1 built, 0.0 MiB DL] Co-authored-by: Graham Christensen <graham@grahamc.com> Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
2019-06-25 ProgressBar: Fix updatingEelco Dolstra1-11/+15
'updateCV.notify_one()' does nothing if the update thread is not waiting for updateCV (in particular this happens when it is sleeping on quitCV). So also set a variable to ensure that the update isn't lost.
2019-05-21 Merge pull request #2800 from flokli/progress-bar-hide-unknown-expectedEelco Dolstra1-4/+11
progress-bar: hide expected if expected is 0 (unknown)
2019-05-15 nix: Add --print-build-logs flagEelco Dolstra1-10/+29
This causes 'nix' to print build log output to stderr rather than showing the last log line in the progress bar. Log lines are prefixed by the name of the derivation (minus the version string), e.g. binutils> make[1]: Leaving directory '/build/binutils-2.31.1' binutils-wrapper> unpacking sources binutils-wrapper> patching sources ... binutils-wrapper> Using dynamic linker: '/nix/store/kr51dlsj9v5cr4n8700jliyz8v5b2q7q-bootstrap-stage0-glibc/lib/ld-linux-x86-64.so.2' bootstrap-stage2-gcc-wrapper> unpacking sources ... linux-headers> unpacking sources linux-headers> unpacking source archive /nix/store/8javli69jhj3bkql2c35gsj5vl91p382-linux-4.19.16.tar.xz
2019-05-11 progress-bar: hide expected if expected is 0 (unknown)Florian Klink1-4/+11
Sometimes, "expected" can be "0", but in fact means "unknown". This is for example the case when downloading a file while the http server doesn't send the `Content-Length` header, like when running `nix build` pointing to a nixpkgs checkout streamed from GitHub: ⇒ nix build -f https://github.com/NixOS/nixpkgs/archive/master.tar.gz hello [1.8/0.0 MiB DL] downloading 'https://github.com/NixOS/nixpkgs/archive/master.tar.gz' In that case, don't show that weird progress bar, but only the (slowly increasing) downloaded size ("done"). ⇒ nix build -f https://github.com/NixOS/nixpkgs/archive/master.tar.gz hello [1.8 MiB DL] downloading 'https://github.com/NixOS/nixpkgs/archive/master.tar.gz' This commit also updates fmt calls with three numbers (when something is currently 'running' too) - I'm not sure if this can be provoked, but showing "0" as expected doesn't make any sense, as we're obviously doing more than nothing.
2018-07-19 Revert "progress-bar: re-draw last update if nothing new for 1sec."Will Dietz1-3/+2
Not ready for this yet, causes the prompt to disappear in nix repl and more generally can overwrite non-progress-bar messages. This reverts commit 44de71a39624d86d6744062ee36f57170024c9a0.
2018-06-18 progress-bar: re-draw last update if nothing new for 1sec.Will Dietz1-2/+3
Slightly nicer behavior when updates are somewhat far apart (during a long linking step, perhaps) ensuring things don't appear unresponsive. If we wait the maximum amount for the update, don't bother waiting another 50ms (for rate-limiting purposes) and just check if we should quit. This also ensures we'll notice the request to quit within 1s if quit is signalled but there is not an udpate. (I'm not sure if this happens or not)
2018-03-15 Filter ANSI colors when not writing to a terminalEelco Dolstra1-1/+1
Fixes https://github.com/NixOS/nixpkgs/issues/37114.
2018-02-07 Improve filtering of ANSI escape sequences in build logsEelco Dolstra1-39/+4
All ANSI sequences except color setting are now filtered out. In particular, terminal resets (such as from NixOS VM tests) are filtered out. Also, fix the completely broken tab character handling.
2018-02-06 Update the progress bar at most 20 times per secondEelco Dolstra1-14/+29
Fixes #1834.
2018-02-05 Tweak progress bar messageEelco Dolstra1-1/+6
Say "copying" instead of "fetching" when copying from another local store. Nice for nixos-install.
2017-10-24 More progress indicator improvementsEelco Dolstra1-0/+4
In particular, don't show superfluous "fetching path" and "building path(s)" messages, and show the current round (with --repeat).
2017-10-24 Progress indicator: Show on what machine we're buildingEelco Dolstra1-0/+3
E.g. $ nix build nixpkgs.hello --builders 'root@wendy' [1/0/1 built] building hello-2.10 on ssh://root@wendy: checking for minix/config.h... no
2017-09-27 Tweak messageEelco Dolstra1-1/+1
2017-08-31 Add an activity for binary cache queriesEelco Dolstra1-3/+10
2017-08-29 nix edit / log: Operate on a single InstallableEelco Dolstra1-1/+1
2017-08-29 nix run: Flush the progress bar before starting the commandEelco Dolstra1-11/+17
2017-08-28 Give activities a verbosity level againEelco Dolstra1-2/+5
And print them (separately from the progress bar) given sufficient -v flags.
2017-08-28 SimplifyEelco Dolstra1-15/+12
2017-08-25 SimplifyEelco Dolstra1-15/+12
2017-08-25 DohEelco Dolstra1-0/+1
2017-08-25 Allow derivations to update the build phaseEelco Dolstra1-7/+18
So the progress bar can show [1/0/1 built, 0.0 MiB DL] building hello-2.10 (configuring): checking whether pread is declared without a macro... yes
2017-08-25 Allow activities to be nestedEelco Dolstra1-2/+26
In particular, this allows more relevant activities ("substituting X") to supersede inferior ones ("downloading X").
2017-08-25 Fix Debian buildEelco Dolstra1-1/+3
https://hydra.nixos.org/build/59390148
2017-08-25 Handle SIGWINCHEelco Dolstra1-8/+1
2017-08-25 When truncating the progress bar, take ANSI escape sequences into accountEelco Dolstra1-4/+41
2017-08-25 Restore activity metadataEelco Dolstra1-1/+9
This allows the progress bar to display "building perl-5.22.3" instead of "building /nix/store/<hash>-perl-5.22.3.drv".
2017-08-21 Remove debug lineEelco Dolstra1-2/+0
2017-08-16 nix verify: Restore the progress indicatorEelco Dolstra1-0/+25
2017-08-16 nix optimise-store: Show how much space has been freedEelco Dolstra1-43/+64
2017-08-16 nix optimise-store: AddEelco Dolstra1-4/+6
This replaces "nix-store --optimise". Main difference is that it has a progress indicator.
2017-08-16 Progress indicator: CleanupEelco Dolstra1-50/+59
2017-08-16 Progress indicator: More improvementsEelco Dolstra1-58/+51
2017-08-16 Progress indicator: Show number of active itemsEelco Dolstra1-3/+6
2017-08-16 Progress indicator: Unify "copying" and "substituting"Eelco Dolstra1-65/+5
They're the same thing after all. Example: $ nix build --store local?root=/tmp/nix nixpkgs.firefox-unwrapped [0/1 built, 49/98 copied, 16.3/92.8 MiB DL, 55.8/309.2 MiB copied] downloading 'https://cache.nixos.org/nar/0pl9li1jigcj2dany47hpmn0r3r48wc4nz48v5mqhh426lgz3bz6.nar.xz'
2017-08-16 Improve substitution progress indicatorEelco Dolstra1-74/+31
E.g. $ nix build --store local?root=/tmp/nix nixpkgs.firefox-unwrapped [0/1 built, 1/97/98 fetched, 65.8/92.8 MiB DL, 203.2/309.2 MiB copied] downloading 'https://cache.nixos.org/nar/1czm9fk0svacy4h6a3fzkpafi4f7a9gml36kk8cq1igaghbspg3k.nar.xz'
2017-08-16 nix copy: Improve progress indicatorEelco Dolstra1-32/+67
It now shows the amount of data copied: [8/1038 copied, 160.4/1590.9 MiB copied] copying path '...'
2017-08-16 nix copy: Revive progress barEelco Dolstra1-0/+46
2017-05-29 Fix build failure on Debian/UbuntuEelco Dolstra1-0/+1
http://hydra.nixos.org/build/53537463
2017-05-16 Improve progress indicatorEelco Dolstra1-53/+198
2016-05-31 Shut up some clang warningsEelco Dolstra1-1/+1
2016-04-25 Improved logging abstractionEelco Dolstra1-50/+135
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-22 nix copy: ParalleliseEelco Dolstra1-1/+1
2016-03-29 Add "nix verify-paths" commandEelco Dolstra1-0/+72
Unlike "nix-store --verify-path", this command verifies signatures in addition to store path contents, is multi-threaded (especially useful when verifying binary caches), and has a progress indicator. Example use: $ nix verify-paths --store https://cache.nixos.org -r $(type -p thunderbird) ... [17/132 checked] checking ‘/nix/store/rawakphadqrqxr6zri2rmnxh03gqkrl3-autogen-5.18.6’