Radish alpha
H
HardenedBSD Package Manager
Radicle
Git (anonymous pull)
Log in to clone via SSH
Merge branch 'master' of etoilebsd.net:pkgng
Baptiste Daroussin committed 15 years ago
commit 36f57b81ab14b2e9d132e4a332582dd48b3268ed
parent 156c4e710fa0c807bee74c675521b215b7c9dd7f
2 files changed +64 -2
modified pkg/version.c
@@ -1,3 +1,4 @@
+
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <sysexits.h>
@@ -6,12 +7,61 @@

void usage_version(void)
{
-
	fprintf(stderr, "version pkg0 pkg1\n"
-
		"compare pkg0 and pkg1 versions\n");
+
	fprintf(stderr, "version [-hIoqv] [-l limchar] [-L limchar] [[-X] -s string]"
+
			"[-O origin] [index]\n"
+
			"version -t version1 version2\n"
+
			"version -T pkgname pattern\n");
}

int exec_version(int argc, char **argv)
{
+
	unsigned int opt = 0;
+
	char ch;
+

+
	while ((ch = getopt(argc, argv, "hIoqvlLXsOtT")) != -1) {
+
		switch (ch) {
+
			case 'h':
+
				usage_version();
+
				return (0);
+
			case 'I':
+
				opt |= VERSION_INDEX;
+
				break;
+
			case 'o':
+
				opt |= VERSION_ORIGIN;
+
				break;
+
			case 'q':
+
				opt |= VERSION_QUIET;
+
				break;
+
			case 'v':
+
				opt |= VERSION_VERBOSE;
+
				break;
+
			case 'l':
+
				opt |= VERSION_STATUS;
+
				break;
+
			case 'L':
+
				opt |= VERSION_NOSTATUS;
+
				break;
+
			case 'X':
+
				opt |= VERSION_EREGEX;
+
				break;
+
			case 's':
+
				opt |= VERSION_STRING;
+
				break;
+
			case 'O':
+
				opt |= VERSION_WITHORIGIN;
+
				break;
+
			case 't':
+
				opt |= VERSION_TESTVERSION;
+
				break;
+
			case 'T':
+
				opt |= VERSION_TESTPATTERN;
+
				break;
+
		}
+
	}
+
	argc -= optind;
+
	argv += optind;
+

+
	/* TODO: use opt */
	if (argc != 3 || argv[1] == NULL || argv[2] == NULL) {
		usage_version();
		return (EX_USAGE);
modified pkg/version.h
@@ -1,6 +1,18 @@
#ifndef _VERSION_H
#define _VERSION_H

+
#define VERSION_INDEX (1<<0)
+
#define VERSION_ORIGIN (1<<1)
+
#define VERSION_QUIET (1<<2)
+
#define VERSION_VERBOSE (1<<3)
+
#define VERSION_STATUS (1<<4)
+
#define VERSION_NOSTATUS (1<<5)
+
#define VERSION_EREGEX (1<<6)
+
#define VERSION_STRING (1<<7)
+
#define VERSION_WITHORIGIN (1<<8)
+
#define VERSION_TESTVERSION (1<<9)
+
#define VERSION_TESTPATTERN (1<<10)
+

int exec_version(int, char **);
void usage_version(void);