aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsin <sin@2f30.org>2019-08-23 16:23:40 +0100
committersin <sin@2f30.org>2019-08-24 11:25:43 +0100
commit3655cafcf4641e99d3098a148f453bc61f1426bd (patch)
tree8d861543db3d2b18c4e378a8e79c5aaa454cbd1d
parent3ed67ea6cf3345639449ab24bb1eb996f9d43392 (diff)
downloadnoice-3655cafcf4641e99d3098a148f453bc61f1426bd.tar.gz
Reflect nopen(1) errors in exit status
If there is an error executing the rule, exit with a status of 1.
-rw-r--r--nopen.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/nopen.c b/nopen.c
index 3b573f1..ba96863 100644
--- a/nopen.c
+++ b/nopen.c
@@ -22,7 +22,7 @@ struct rule {
char *argv0;
-void
+int
run(struct rule *rule, char *arg)
{
char *argv[NR_ARGS];
@@ -36,7 +36,7 @@ run(struct rule *rule, char *arg)
argv[i] = rule->argv[i];
}
argv[i] = NULL;
- spawnvp(NULL, rule->file, argv);
+ return spawnvp(NULL, rule->file, argv);
}
struct rule *
@@ -79,6 +79,8 @@ usage(void)
int
main(int argc, char *argv[])
{
+ int r;
+
ARGBEGIN {
default:
usage();
@@ -87,13 +89,15 @@ main(int argc, char *argv[])
if (argc == 0)
usage();
+ r = 0;
parserules();
for (; *argv != NULL; argv++) {
struct rule *rule;
if ((rule = matchrule(argv[0])) == NULL)
continue;
- run(rule, argv[0]);
+ if (run(rule, argv[0]) == -1)
+ r = 1;
}
- return 0;
+ return r;
}
Un proyecto texto-plano.xyz