TW-1873: Specify different path to extensions/hooks directory

- Thanks to Eli.
This commit is contained in:
Paul Beckingham 2016-12-19 09:03:27 -05:00
parent 77b3ee0561
commit c300cff00f
6 changed files with 35 additions and 6 deletions

View file

@ -303,3 +303,4 @@ suggestions:
bjonnh
OKOMper
eldios
Eli

View file

@ -28,6 +28,8 @@
(thanks to E. Manuel Cerr'on Angeles)
- TW-1857 Change Task::get call to the more efficient Task::has
(thanks to Zachary Manning).
- TW-1873 Specify different path to extensions/hooks directory
(thanks to Eli).
- Added 'juhannus' as a synonym for 'midsommarafton'
(thanks to Lynoure Braakman).
- Deprecated the 'DUETODAY' virtual tag, which is a synonym for the 'TODAY'

View file

@ -180,6 +180,10 @@ shell meta character, which will be properly expanded.
Note that the TASKDATA environment variable overrides this setting.
.TP
.B hooks.location=$HOME/.task/hooks
This is a path to the hook scripts directory. By default it is ~/.task/hooks.
.TP
.B locking=1
Determines whether to use file locking when accessing the pending.data and

View file

@ -532,7 +532,11 @@ void Config::createDefaultData (const std::string& data)
d.create ();
if (has ("hooks.location"))
d = Directory (get ("hooks.location"));
else
d += "hooks";
d.create ();
}
}

View file

@ -54,9 +54,19 @@ void Hooks::initialize ()
{
_debug = context.config.getInteger ("debug.hooks");
// Scan <rc.data.location>/hooks
Directory d (context.config.get ("data.location"));
// Scan <rc.hooks.location>
// <rc.data.location>/hooks
Directory d;
if (context.config.has ("hooks.location"))
{
d = Directory (context.config.get ("hooks.location"));
}
else
{
d = Directory (context.config.get ("data.location"));
d += "hooks";
}
if (d.is_directory () &&
d.readable ())
{

View file

@ -307,8 +307,16 @@ int CmdDiagnostics::execute (std::string& output)
<< "\n\n";
// Display hook status.
Path hookLocation (context.config.get ("data.location"));
Path hookLocation;
if (context.config.has ("hooks.location"))
{
hookLocation = Path (context.config.get ("hooks.location"));
}
else
{
hookLocation = Path (context.config.get ("data.location"));
hookLocation += "hooks";
}
out << bold.colorize (STRING_CMD_DIAG_HOOKS)
<< '\n'