forked from lix-project/lix
* Delete the temporary directories of failed builds by default, and an
option `--keep-failed' to override this behaviour.
This commit is contained in:
parent
31e4aa6439
commit
2de8504791
|
@ -15,6 +15,10 @@
|
||||||
<arg><option>--verbose</option></arg>
|
<arg><option>--verbose</option></arg>
|
||||||
<arg><option>-v</option></arg>
|
<arg><option>-v</option></arg>
|
||||||
</group>
|
</group>
|
||||||
|
<group choice='opt' rep='repeat'>
|
||||||
|
<arg><option>--keep-failed</option></arg>
|
||||||
|
<arg><option>-K</option></arg>
|
||||||
|
</group>
|
||||||
<arg choice='plain'><replaceable>operation</replaceable></arg>
|
<arg choice='plain'><replaceable>operation</replaceable></arg>
|
||||||
<arg rep='repeat'><replaceable>options</replaceable></arg>
|
<arg rep='repeat'><replaceable>options</replaceable></arg>
|
||||||
<arg rep='repeat'><replaceable>arguments</replaceable></arg>
|
<arg rep='repeat'><replaceable>arguments</replaceable></arg>
|
||||||
|
@ -121,6 +125,19 @@
|
||||||
|
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>--keep-failed</option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Specifies that in case of a build failure, the temporary directory
|
||||||
|
(usually in <filename>/tmp</filename>) in which the build takes
|
||||||
|
place should not be deleted. The path of the build directory is
|
||||||
|
printed as an informational message.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
</variablelist>
|
</variablelist>
|
||||||
|
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
|
@ -122,7 +122,11 @@ void runProgram(const string & program,
|
||||||
throw Error("unable to wait for child");
|
throw Error("unable to wait for child");
|
||||||
|
|
||||||
if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) {
|
if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) {
|
||||||
|
if (keepFailed) {
|
||||||
|
msg(lvlTalkative,
|
||||||
|
format("build failed; keeping build directory `%1%'") % tmpDir);
|
||||||
delTmpDir.cancel();
|
delTmpDir.cancel();
|
||||||
|
}
|
||||||
throw Error("unable to build package");
|
throw Error("unable to build package");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,9 @@ string nixLogDir = "/UNINIT";
|
||||||
string nixDBPath = "/UNINIT";
|
string nixDBPath = "/UNINIT";
|
||||||
|
|
||||||
|
|
||||||
|
bool keepFailed = false;
|
||||||
|
|
||||||
|
|
||||||
void openDB()
|
void openDB()
|
||||||
{
|
{
|
||||||
nixDB.open(nixDBPath);
|
nixDB.open(nixDBPath);
|
||||||
|
|
|
@ -69,6 +69,12 @@ extern string nixLogDir;
|
||||||
extern string nixDBPath;
|
extern string nixDBPath;
|
||||||
|
|
||||||
|
|
||||||
|
/* Misc. global flags. */
|
||||||
|
|
||||||
|
/* Whether to keep temporary directories of failed builds. */
|
||||||
|
extern bool keepFailed;
|
||||||
|
|
||||||
|
|
||||||
/* Open the database environment. */
|
/* Open the database environment. */
|
||||||
void openDB();
|
void openDB();
|
||||||
|
|
||||||
|
|
|
@ -34,3 +34,4 @@ Query flags:
|
||||||
Options:
|
Options:
|
||||||
|
|
||||||
--verbose / -v: verbose operation (may be repeated)
|
--verbose / -v: verbose operation (may be repeated)
|
||||||
|
--keep-failed / -K: keep temporary directories of failed builds
|
||||||
|
|
|
@ -372,6 +372,8 @@ void run(Strings args)
|
||||||
pathArgs = true;
|
pathArgs = true;
|
||||||
else if (arg == "--verbose" || arg == "-v")
|
else if (arg == "--verbose" || arg == "-v")
|
||||||
verbosity = (Verbosity) ((int) verbosity + 1);
|
verbosity = (Verbosity) ((int) verbosity + 1);
|
||||||
|
else if (arg == "--keep-failed" || arg == "-K")
|
||||||
|
keepFailed = true;
|
||||||
else if (arg == "--help")
|
else if (arg == "--help")
|
||||||
printHelp();
|
printHelp();
|
||||||
else if (arg[0] == '-')
|
else if (arg[0] == '-')
|
||||||
|
|
Loading…
Reference in a new issue