Module Name:    othersrc
Committed By:   dholland
Date:           Fri May 24 00:40:25 UTC 2013

Added Files:
        othersrc/external/bsd/bikeshed: Makefile
        othersrc/external/bsd/bikeshed/bin: Makefile
        othersrc/external/bsd/bikeshed/dist: README
        othersrc/external/bsd/bikeshed/dist/doc: bs.1
        othersrc/external/bsd/bikeshed/dist/src: main.c

Log Message:
As named by riastradh@ last week


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 othersrc/external/bsd/bikeshed/Makefile
cvs rdiff -u -r0 -r1.1 othersrc/external/bsd/bikeshed/bin/Makefile
cvs rdiff -u -r0 -r1.1 othersrc/external/bsd/bikeshed/dist/README
cvs rdiff -u -r0 -r1.1 othersrc/external/bsd/bikeshed/dist/doc/bs.1
cvs rdiff -u -r0 -r1.1 othersrc/external/bsd/bikeshed/dist/src/main.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Added files:

Index: othersrc/external/bsd/bikeshed/Makefile
diff -u /dev/null othersrc/external/bsd/bikeshed/Makefile:1.1
--- /dev/null	Fri May 24 00:40:25 2013
+++ othersrc/external/bsd/bikeshed/Makefile	Fri May 24 00:40:24 2013
@@ -0,0 +1,5 @@
+# $NetBSD: Makefile,v 1.1 2013/05/24 00:40:24 dholland Exp $
+
+SUBDIR=bin
+
+.include <bsd.subdir.mk>

Index: othersrc/external/bsd/bikeshed/bin/Makefile
diff -u /dev/null othersrc/external/bsd/bikeshed/bin/Makefile:1.1
--- /dev/null	Fri May 24 00:40:25 2013
+++ othersrc/external/bsd/bikeshed/bin/Makefile	Fri May 24 00:40:24 2013
@@ -0,0 +1,15 @@
+# $NetBSD: Makefile,v 1.1 2013/05/24 00:40:24 dholland Exp $
+
+BINDIR=/usr/bin
+
+PROG=bs
+MAN=bs.1
+SRCS=main.c
+
+WARNS=5
+
+DIST=${.CURDIR}/../dist
+CPPFLAGS+=-I${DIST}
+.PATH: ${DIST}/src ${DIST}/doc
+
+.include <bsd.prog.mk>

Index: othersrc/external/bsd/bikeshed/dist/README
diff -u /dev/null othersrc/external/bsd/bikeshed/dist/README:1.1
--- /dev/null	Fri May 24 00:40:25 2013
+++ othersrc/external/bsd/bikeshed/dist/README	Fri May 24 00:40:25 2013
@@ -0,0 +1,12 @@
+"bikeshed" is a full-tree version control system.
+
+Flagship features include:
+   - centralized design supporting disconnected operation
+   - no compare-by-hash
+   - sequential version numbering
+   - written in C without depending on external libraries
+   - reasonably fast
+   - scalable to large trees with deep histories
+   - provides provenance tracking for commits
+   - modern schema with lightweight branching and atomic changesets
+   - clean user interface

Index: othersrc/external/bsd/bikeshed/dist/doc/bs.1
diff -u /dev/null othersrc/external/bsd/bikeshed/dist/doc/bs.1:1.1
--- /dev/null	Fri May 24 00:40:25 2013
+++ othersrc/external/bsd/bikeshed/dist/doc/bs.1	Fri May 24 00:40:25 2013
@@ -0,0 +1,50 @@
+.\"
+.\" Copyright (c) 2013 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by David A. Holland.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd May 23, 2013
+.Dt BS 1
+.Os
+.Sh NAME
+.Nm bs, bikeshed
+.Nd full-tree version control system
+.Sh SYNOPSIS
+.Nm bs
+.Op Fl C Ar dir
+.Op Fl hqvy
+command
+.Op Ar args...
+.Sh DESCRIPTION
+This page is a placeholder.
+.Sh SEE ALSO
+.Xr cvs 1
+.Sh HISTORY
+The
+.Nm bs
+command will appear in
+.Nx K
+for large K.

Index: othersrc/external/bsd/bikeshed/dist/src/main.c
diff -u /dev/null othersrc/external/bsd/bikeshed/dist/src/main.c:1.1
--- /dev/null	Fri May 24 00:40:25 2013
+++ othersrc/external/bsd/bikeshed/dist/src/main.c	Fri May 24 00:40:25 2013
@@ -0,0 +1,156 @@
+/*-
+ * Copyright (c) 2013 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by David A. Holland.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <getopt.h>
+#include <err.h>
+
+////////////////////////////////////////////////////////////
+// placeholder (XXX)
+
+static void
+basehelp(void)
+{
+	printf("No help yet\n");
+}
+
+static int
+help(int argc, char *argv[])
+{
+	int i;
+
+	if (argc == 1) {
+		basehelp();
+	} else {
+		for (i=1; i<argc; i++) {
+			printf("No help for %s\n", argv[i]);
+		}
+	}
+	return EXIT_FAILURE;
+}
+
+////////////////////////////////////////////////////////////
+// command table
+
+struct cmdtabentry {
+	const char *name;
+	bool usectldir;
+	int (*execute)(int argc, char *argv[]);
+};
+
+static const struct cmdtabentry cmdtab[] = {
+	{ "help", false, help },
+};
+static const unsigned cmdtabnum = __arraycount(cmdtab);
+
+static int
+findcmd(const void *av, const void *bv)
+{
+	const char *a = av;
+	const struct cmdtabentry *b = bv;
+
+	return strcmp(a, b->name);
+}
+
+////////////////////////////////////////////////////////////
+// main
+
+static void
+usage(void)
+{
+	fprintf(stderr, "Usage: bs [options] command [args...]\n");
+	fprintf(stderr, "Try \"bs help\" for more information.\n");
+}
+
+int
+main(int argc, char *argv[])
+{
+	const char *ctldirname = NULL;
+	bool quiet = false;
+	bool verbose = false;
+	bool yes = false;
+
+	const char *cmd;
+	const struct cmdtabentry *cmdentry;
+	int ch;
+
+	while ((ch = getopt(argc, argv, "C:hqvy")) != -1) {
+		switch (ch) {
+		    case 'C':
+			/* specify the .bs dir */
+			ctldirname = optarg;
+			break;
+		    case 'h':
+			/* same as "bs help" */
+			basehelp();
+			return EXIT_FAILURE;
+		    case 'q':
+			/* print less text */
+			quiet = true;
+			break;
+		    case 'v':
+			/* print more text */
+			verbose = true;
+			break;
+		    case 'y':
+			/* don't ask questions */
+			yes = true;
+			break;
+		    default:
+			usage();
+			return EXIT_FAILURE;
+		}
+	}
+	if (optind >= argc) {
+		usage();
+		return EXIT_FAILURE;
+	}
+	cmd = argv[optind];
+	cmdentry = bsearch(cmd, cmdtab, cmdtabnum, sizeof(cmdtab[0]), findcmd);
+	if (cmdentry == NULL) {
+		warnx("Unknown command %s", cmd);
+		warnx("Try \"bs help\" for a list of basic commands.");
+		return EXIT_FAILURE;
+	}
+#if 0 /* not yet XXX */
+	if (cmdentry->usectldir) {
+		ctldir_establish(ctldirname);
+	}
+#else
+	(void)ctldirname;
+	(void)quiet;
+	(void)verbose;
+	(void)yes;
+#endif
+
+	return cmdentry->execute(argc - optind, argv + optind);
+}

Reply via email to