Module Name:    src
Committed By:   apb
Date:           Mon Jun 16 08:21:21 UTC 2014

Modified Files:
        src/usr.sbin/postinstall: postinstall

Log Message:
Add bre_quote (copied from etcupdate), and unprefix functions.


To generate a diff of this commit:
cvs rdiff -u -r1.167 -r1.168 src/usr.sbin/postinstall/postinstall

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

Modified files:

Index: src/usr.sbin/postinstall/postinstall
diff -u src/usr.sbin/postinstall/postinstall:1.167 src/usr.sbin/postinstall/postinstall:1.168
--- src/usr.sbin/postinstall/postinstall:1.167	Mon Jun 16 07:08:06 2014
+++ src/usr.sbin/postinstall/postinstall	Mon Jun 16 08:21:20 2014
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# $NetBSD: postinstall,v 1.167 2014/06/16 07:08:06 apb Exp $
+# $NetBSD: postinstall,v 1.168 2014/06/16 08:21:20 apb Exp $
 #
 # Copyright (c) 2002-2008 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -128,6 +128,33 @@ shell_quote()
 	printf "%s\n" "$result"
 }
 
+# Convert arg $1 to a basic regular expression (as in sed)
+# that will match the arg.  This works by inserting backslashes
+# before characters that are special in basic regular expressions.
+# It also inserts backslashes before the extra characters specified
+# in $2 (which defaults to "/,").
+# XXX: Does not handle embedded newlines.
+# Usage: regex="$(bre_quote "${string}")"
+bre_quote()
+{
+	local arg="$1"
+	local extra="$2:/,"
+	printf "%s\n" "${arg}" | ${SED} -e 's/[][^$.*\\'"${extra}"']/\\&/g'
+}
+
+# unprefix dir
+#	Remove any dir prefix from a list of paths on stdin,
+#	and write the result to stdout.  Useful for converting
+#	from ${DEST_DIR}/path to /path.
+#
+unprefix()
+{
+	[ $# -eq 1 ] || err 3 "USAGE: unprefix dir"
+	local prefix="${1#/}"
+	prefix="$(bre_quote "${prefix}")"
+
+	${SED} -e "s,^${prefix}/,/,"
+}
 
 # additem item description
 #	Add item to list of supported items to check/fix,

Reply via email to