mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00
Do not auto-create .taskrc when stdout is not a TTY
This avoids prompting or automatically creating such a file, both of which are unexpected when performing command-line completion. Fixes #3751.
This commit is contained in:
parent
f6824e90a1
commit
9bf51422a1
1 changed files with 7 additions and 0 deletions
|
@ -1173,6 +1173,13 @@ void Context::staticInitialization() {
|
||||||
void Context::createDefaultConfig() {
|
void Context::createDefaultConfig() {
|
||||||
// Do we need to create a default rc?
|
// Do we need to create a default rc?
|
||||||
if (rc_file._data != "" && !rc_file.exists()) {
|
if (rc_file._data != "" && !rc_file.exists()) {
|
||||||
|
// If stdout is not a file, we are probably executing in a completion context and should not
|
||||||
|
// prompt (as the user won't see it) or modify the config (as completion functions are typically
|
||||||
|
// read-only).
|
||||||
|
if (!isatty(STDOUT_FILENO)) {
|
||||||
|
throw std::string("Cannot proceed without rc file.");
|
||||||
|
}
|
||||||
|
|
||||||
if (config.getBoolean("confirmation") &&
|
if (config.getBoolean("confirmation") &&
|
||||||
!confirm(format("A configuration file could not be found in {1}\n\nWould you like a sample "
|
!confirm(format("A configuration file could not be found in {1}\n\nWould you like a sample "
|
||||||
"{2} created, so Taskwarrior can proceed?",
|
"{2} created, so Taskwarrior can proceed?",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue