summaryrefslogtreecommitdiff
path: root/distrib/arc
diff options
context:
space:
mode:
authorPer Fogelstrom <pefo@cvs.openbsd.org>1997-05-14 21:15:46 +0000
committerPer Fogelstrom <pefo@cvs.openbsd.org>1997-05-14 21:15:46 +0000
commitd658f90adccc17f79bb2d7d2da45f97b8a678fd6 (patch)
treeb8173c508c30ea756bdbe9d2eba374ad7ae027e2 /distrib/arc
parent3fc8df73347f8163374be5d272963e83a73b3986 (diff)
More ARC ramdisk stuff
Diffstat (limited to 'distrib/arc')
-rw-r--r--distrib/arc/list2sh.awk71
-rw-r--r--distrib/arc/runlist.sh13
2 files changed, 84 insertions, 0 deletions
diff --git a/distrib/arc/list2sh.awk b/distrib/arc/list2sh.awk
new file mode 100644
index 00000000000..7d732453385
--- /dev/null
+++ b/distrib/arc/list2sh.awk
@@ -0,0 +1,71 @@
+# $OpenBSD: list2sh.awk,v 1.1 1997/05/14 21:15:45 pefo Exp $
+
+BEGIN {
+ printf("cd ${CURDIR}\n");
+ printf("\n");
+}
+/^$/ || /^#/ {
+ print $0;
+ next;
+}
+$1 == "COPY" {
+ printf("echo '%s'\n", $0);
+ printf("rm -fr ${TARGDIR}/%s\n", $3);
+ printf("cp %s ${TARGDIR}/%s\n", $2, $3);
+ next;
+}
+$1 == "LINK" {
+ printf("echo '%s'\n", $0);
+ for (i = 3; i <= NF; i++) {
+ printf("rm -f ${TARGDIR}/%s\n", $i);
+ printf("(cd ${TARGDIR}; ln %s %s)\n", $2, $i);
+ }
+ next;
+}
+$1 == "SYMLINK" {
+ printf("echo '%s'\n", $0);
+ for (i = 3; i <= NF; i++) {
+ printf("rm -f ${TARGDIR}/%s\n", $i);
+ printf("(cd ${TARGDIR}; ln -s %s %s)\n", $2, $i);
+ }
+ next;
+}
+$1 == "ARGVLINK" {
+ # crunchgen directive; ignored here
+ next;
+}
+$1 == "SRCDIRS" {
+ # crunchgen directive; ignored here
+ next;
+}
+$1 == "CRUNCHSPECIAL" {
+ # crunchgen directive; ignored here
+ next;
+}
+$1 == "COPYDIR" {
+ printf("echo '%s'\n", $0);
+ printf("(cd ${TARGDIR}/%s && find . ! -name . | xargs /bin/rm -rf)\n",
+ $3);
+ printf("(cd %s && find . ! -name . | cpio -pdamu ${TARGDIR}/%s)\n", $2,
+ $3);
+ next;
+}
+$1 == "SPECIAL" {
+ printf("echo '%s'\n", $0);
+ printf("(cd ${TARGDIR};");
+ for (i = 2; i <= NF; i++)
+ printf(" %s", $i);
+ printf(")\n");
+ next;
+}
+{
+ printf("echo '%s'\n", $0);
+ printf("echo 'Unknown keyword \"%s\" at line %d of input.'\n", $1, NR);
+ printf("exit 1\n");
+ exit 1;
+}
+END {
+ printf("\n");
+ printf("exit 0\n");
+ exit 0;
+}
diff --git a/distrib/arc/runlist.sh b/distrib/arc/runlist.sh
new file mode 100644
index 00000000000..3e49510c909
--- /dev/null
+++ b/distrib/arc/runlist.sh
@@ -0,0 +1,13 @@
+# $Id: runlist.sh,v 1.1 1997/05/14 21:15:45 pefo Exp $
+
+if [ "X$1" = "X-d" ]; then
+ SHELLCMD=cat
+ shift
+else
+ SHELLCMD="sh -e"
+fi
+
+( while [ "X$1" != "X" ]; do
+ cat $1
+ shift
+done ) | awk -f ${TOPDIR}/list2sh.awk | ${SHELLCMD}