]>
git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blob - src/misc-progs/addonctrl.c
1 /* This file is part of the IPFire Firewall.
3 * This program is distributed under the terms of the GNU General Public
4 * Licence. See the file COPYING for details.
12 #include <sys/types.h>
16 #define BUFFER_SIZE 1024
18 int main(int argc
, char *argv
[]) {
19 char command
[BUFFER_SIZE
];
25 fprintf(stderr
, "\nMissing arguments.\n\naddonctrl addon (start|stop|restart|reload|enable|disable)\n\n");
29 const char* name
= argv
[1];
31 if (strlen(name
) > 32) {
32 fprintf(stderr
, "\nString to large.\n\naddonctrl addon (start|stop|restart|reload|enable|disable)\n\n");
36 // Check if the input argument is valid
37 if (!is_valid_argument_alnum(name
)) {
38 fprintf(stderr
, "Invalid add-on name: %s\n", name
);
42 sprintf(command
, "/opt/pakfire/db/installed/meta-%s", name
);
43 FILE *fp
= fopen(command
,"r");
47 fprintf(stderr
, "\nAddon '%s' not found.\n\naddonctrl addon (start|stop|restart|reload|status|enable|disable)\n\n", name
);
51 if (strcmp(argv
[2], "start") == 0) {
52 snprintf(command
, BUFFER_SIZE
- 1, "/etc/rc.d/init.d/%s start", name
);
54 } else if (strcmp(argv
[2], "stop") == 0) {
55 snprintf(command
, BUFFER_SIZE
- 1, "/etc/rc.d/init.d/%s stop", name
);
57 } else if (strcmp(argv
[2], "restart") == 0) {
58 snprintf(command
, BUFFER_SIZE
- 1, "/etc/rc.d/init.d/%s restart", name
);
60 } else if (strcmp(argv
[2], "reload") == 0) {
61 snprintf(command
, BUFFER_SIZE
- 1, "/etc/rc.d/init.d/%s reload", name
);
63 } else if (strcmp(argv
[2], "status") == 0) {
64 snprintf(command
, BUFFER_SIZE
- 1, "/etc/rc.d/init.d/%s status", name
);
66 } else if (strcmp(argv
[2], "enable") == 0) {
67 snprintf(command
, BUFFER_SIZE
- 1, "mv -f /etc/rc.d/rc3.d/off/S??%s /etc/rc.d/rc3.d" , name
);
69 } else if (strcmp(argv
[2], "disable") == 0) {
70 snprintf(command
, BUFFER_SIZE
- 1, "mkdir -p /etc/rc.d/rc3.d/off");
72 snprintf(command
, BUFFER_SIZE
- 1, "mv -f /etc/rc.d/rc3.d/S??%s /etc/rc.d/rc3.d/off" , name
);
75 fprintf(stderr
, "\nBad argument given.\n\naddonctrl addon (start|stop|restart|reload|enable|disable)\n\n");