Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Add skeleton for info
Baptiste Daroussin committed 15 years ago
commit 3f7c588d81cc87853ca0a5de57bb9574b5e7036f
parent f2b89e5
4 files changed +49 -0
modified pkg/Makefile
@@ -1,5 +1,6 @@
PROG=	pkg
SRCS=	main.c \
+
		info.c

#CFLAGS+=	-I${.CURDIR}/../libpkg -I${.CURDIR}/../external
#LDADD+=	-L${.CURDIR}/../external -L../libpkg -lpkg -lcjson
added pkg/info.c
@@ -0,0 +1,9 @@
+
#include "info.h"
+
#include <err.h>
+
#include <stdio.h>
+

+
void *
+
cmd_info(int argc, char **argv)
+
{
+
	printf("info\n");
+
}
added pkg/info.h
@@ -0,0 +1,5 @@
+
#ifndef _INFO_H
+
#define _INFO_H
+

+
void *cmd_info(int argc, char **argv);
+
#endif
modified pkg/main.c
@@ -1,7 +1,23 @@
#include <stdio.h>
#include <stdlib.h>
+
#include <string.h>
#include <sysexits.h>

+
#include "info.h"
+

+
static struct commands {
+
	const char *name;
+
	const char *shortcut;
+
	void (*exec_cmd)(int argc, char **argv);
+
} cmd[] = { 
+
	{ "add", "a", NULL },
+
	{ "delete", "d", NULL},
+
	{ "info", "i", cmd_info},
+
	{ "update", "u", NULL},
+
	{ "help", "h", NULL},
+
	{ NULL, NULL, NULL },
+
};
+

static void
usage()
{
@@ -12,5 +28,23 @@ usage()
int
main(int argc, char **argv)
{
+
	int i;
+

+
	if (argc < 2)
+
		usage();
+

+
	for (i = 0; cmd[i].name != NULL; i++) {
+
		if (strncmp(argv[1], cmd[i].name, strlen(cmd[i].name)) == 0 ||
+
				strncmp(argv[1], cmd[i].shortcut, strlen(cmd[i].shortcut)) == 0) {
+
			argc--;
+
			argv++;
+
			if (cmd[i].exec_cmd != NULL)
+
				cmd[i].exec_cmd(argc, argv);
+
			else
+
				printf("%s: No yet implemented\n", cmd[i].name);
+
			break;
+
		}
+
	}
+

	return (EXIT_SUCCESS);
}