1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-26 15:51:15 +02:00

nix copy: Improve progress indicator

It now shows the amount of data copied:

  [8/1038 copied, 160.4/1590.9 MiB copied] copying path '...'
This commit is contained in:
Eelco Dolstra 2017-08-14 19:00:03 +02:00
parent c5e4404580
commit b29b6feaba
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE
4 changed files with 111 additions and 38 deletions

View file

@ -14,6 +14,7 @@ typedef enum {
} Verbosity;
typedef enum {
actUnknown = 0,
actCopyPath = 100,
} ActivityType;
@ -28,7 +29,8 @@ public:
Activity(ActivityType type, std::string msg = "");
~Activity();
//void progress(...);
template<typename... Args>
void progress(const Args & ... args);
};
typedef enum {
@ -49,6 +51,8 @@ typedef enum {
evStartActivity = 1000,
evStopActivity = 1001,
evProgress = 1002,
evSetExpected = 1003,
} EventType;
@ -149,4 +153,14 @@ void warnOnce(bool & haveWarned, const FormatOrString & fs);
void writeToStderr(const string & s);
template<typename... Args>
void Activity::progress(const Args & ... args)
{
Event ev;
ev.type = evProgress;
ev.fields.emplace_back(id);
nop{(ev.fields.emplace_back(Event::Field(args)), 1)...};
logger->event(ev);
}
}