mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00
Hooks
- ::onExit now provides a set of all changeѕ tasks to the hook script, in read-only form.
This commit is contained in:
parent
d0fd3bac4a
commit
bfc6e38851
3 changed files with 39 additions and 3 deletions
|
@ -157,11 +157,18 @@ void Hooks::onExit ()
|
|||
|
||||
context.timer_hooks.start ();
|
||||
|
||||
std::vector <Task> changes;
|
||||
context.tdb2.get_changes (changes);
|
||||
|
||||
std::string input;
|
||||
std::vector <Task>::const_iterator t;
|
||||
for (t = changes.begin (); t != changes.end (); ++t)
|
||||
input += t->composeJSON () + "\n";
|
||||
|
||||
std::vector <std::string> matchingScripts = scripts ("on-exit");
|
||||
std::vector <std::string>::iterator i;
|
||||
for (i = matchingScripts.begin (); i != matchingScripts.end (); ++i)
|
||||
{
|
||||
std::string input;
|
||||
std::string output;
|
||||
std::vector <std::string> args;
|
||||
int status = execute (*i, args, input, output);
|
||||
|
|
26
src/TDB2.cpp
26
src/TDB2.cpp
|
@ -671,6 +671,8 @@ void TDB2::commit ()
|
|||
dump ();
|
||||
context.timer_commit.start ();
|
||||
|
||||
gather_changes ();
|
||||
|
||||
pending.commit ();
|
||||
completed.commit ();
|
||||
undo.commit ();
|
||||
|
@ -688,6 +690,30 @@ void TDB2::commit ()
|
|||
context.timer_commit.stop ();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
void TDB2::gather_changes ()
|
||||
{
|
||||
_changes.clear ();
|
||||
std::vector <Task>::iterator i;
|
||||
for (i = pending._added_tasks.begin (); i != pending._added_tasks.end (); ++i)
|
||||
_changes.push_back (*i);
|
||||
|
||||
for (i = pending._modified_tasks.begin (); i != pending._modified_tasks.end (); ++i)
|
||||
_changes.push_back (*i);
|
||||
|
||||
for (i = completed._added_tasks.begin (); i != completed._added_tasks.end (); ++i)
|
||||
_changes.push_back (*i);
|
||||
|
||||
for (i = completed._modified_tasks.begin (); i != completed._modified_tasks.end (); ++i)
|
||||
_changes.push_back (*i);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
void TDB2::get_changes (std::vector <Task>& changes)
|
||||
{
|
||||
changes = _changes;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
void TDB2::revert ()
|
||||
{
|
||||
|
|
|
@ -103,6 +103,7 @@ public:
|
|||
void add (Task&, bool add_to_backlog = true);
|
||||
void modify (Task&, bool add_to_backlog = true);
|
||||
void commit ();
|
||||
void get_changes (std::vector <Task>&);
|
||||
void revert ();
|
||||
int gc ();
|
||||
int next_id ();
|
||||
|
@ -126,6 +127,7 @@ public:
|
|||
void dump ();
|
||||
|
||||
private:
|
||||
void gather_changes ();
|
||||
void update (const std::string&, Task&, const bool, std::vector <Task>&);
|
||||
bool verifyUniqueUUID (const std::string&);
|
||||
void show_diff (const std::string&, const std::string&, const std::string&);
|
||||
|
@ -141,8 +143,9 @@ public:
|
|||
TF2 backlog;
|
||||
|
||||
private:
|
||||
std::string _location;
|
||||
int _id;
|
||||
std::string _location;
|
||||
int _id;
|
||||
std::vector <Task> _changes;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue