Skip to content

Commit 9cee8bf

Browse files
committed
mraa-gpio: return proper error codes
because the permissions might be missing, and then we want to fallback to sudo mraa-gpio.
1 parent 4fd35aa commit 9cee8bf

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

tools/mraa-gpio.c

+11-2
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ gpio_isr_stop(struct gpio_source* gpio_info)
162162
int
163163
main(int argc, char** argv)
164164
{
165+
int retval = 0;
165166
if (argc == 1) {
166167
print_command_error();
167168
}
@@ -177,10 +178,13 @@ main(int argc, char** argv)
177178
if (argc == 4) {
178179
int pin = atoi(argv[2]);
179180
mraa_boolean_t rawmode = strcmp(argv[1], "setraw") == 0;
180-
if (gpio_set(pin, atoi(argv[3]), rawmode) != MRAA_SUCCESS)
181+
if (gpio_set(pin, atoi(argv[3]), rawmode) != MRAA_SUCCESS) {
181182
fprintf(stdout, "Could not initialize gpio %d\n", pin);
183+
retval = 1;
184+
}
182185
} else {
183186
print_command_error();
187+
retval = 2;
184188
}
185189
} else if ((strcmp(argv[1], "get") == 0) || (strcmp(argv[1], "getraw") == 0)) {
186190
if (argc == 3) {
@@ -191,9 +195,11 @@ main(int argc, char** argv)
191195
fprintf(stdout, "Pin %d = %d\n", pin, level);
192196
} else {
193197
fprintf(stdout, "Could not initialize gpio %d\n", pin);
198+
retval = 1;
194199
}
195200
} else {
196201
print_command_error();
202+
retval = 2;
197203
}
198204
} else if (strcmp(argv[1], "monitor") == 0) {
199205
if (argc == 3) {
@@ -211,13 +217,16 @@ main(int argc, char** argv)
211217
gpio_isr_stop(&gpio_info);
212218
} else {
213219
fprintf(stdout, "Failed to register ISR for pin %d\n", pin);
220+
retval = 3;
214221
}
215222
} else {
216223
print_command_error();
224+
retval = 2;
217225
}
218226
} else {
219227
print_command_error();
228+
retval = 2;
220229
}
221230
}
222-
return 0;
231+
return retval;
223232
}

0 commit comments

Comments
 (0)