Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Oct 2013 16:58:05 +0000 (UTC)
From:      Will Andrews <will@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r256985 - projects/vps/usr.sbin/vpsctl
Message-ID:  <201310231658.r9NGw5iv057807@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: will
Date: Wed Oct 23 16:58:04 2013
New Revision: 256985
URL: http://svnweb.freebsd.org/changeset/base/256985

Log:
  Sync with svn.7he.at/vps/trunk r187.
  
  r187 | klaus | 2013-07-09 06:44:15 -0600 (Tue, 09 Jul 2013) | 3 lines
  Wrote a shellscript instead of mkprivlist.c for cross-compiling.
  
  Submitted by:	Klaus P. Ohrhallinger <k@7he.at>

Added:
  projects/vps/usr.sbin/vpsctl/mkprivlist.sh
Modified:
  projects/vps/usr.sbin/vpsctl/Makefile

Modified: projects/vps/usr.sbin/vpsctl/Makefile
==============================================================================
--- projects/vps/usr.sbin/vpsctl/Makefile	Wed Oct 23 16:56:44 2013	(r256984)
+++ projects/vps/usr.sbin/vpsctl/Makefile	Wed Oct 23 16:58:04 2013	(r256985)
@@ -16,11 +16,17 @@ clean:
 		vpsctl.8.ps vps.conf.5.ps vps.4.ps vps.9.ps mount_vpsfs.8.ps \
 		vpsctl.8.pdf vps.conf.5.pdf vps.4.pdf vps.9.pdf mount_vpsfs.8.pdf
 
+#mkprivlist:
+#	cc -Wall -g -o ./mkprivlist ${.CURDIR}/mkprivlist.c
+#
+#priv_ston.c priv_ntos.c: mkprivlist
+#	./mkprivlist ${.CURDIR}/../../sys/sys/priv.h
+
 mkprivlist:
-	cc -Wall -g -o ./mkprivlist ${.CURDIR}/mkprivlist.c
+	true
 
 priv_ston.c priv_ntos.c: mkprivlist
-	./mkprivlist ${.CURDIR}/../../sys/sys/priv.h
+	./mkprivlist.sh ${.CURDIR}/../../sys/sys/priv.h
 
 vpsctl: priv_ston.c priv_ntos.c
 	cc -Wall -g -I../../sys -I/usr/include -o vpsctl \

Added: projects/vps/usr.sbin/vpsctl/mkprivlist.sh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/vps/usr.sbin/vpsctl/mkprivlist.sh	Wed Oct 23 16:58:04 2013	(r256985)
@@ -0,0 +1,78 @@
+#!/bin/sh
+
+set -e
+
+if [ "_$1" = "_" ]
+then
+	echo "requires argument: path/to/sys/priv.h"
+	exit 1
+fi
+
+SYS_PRIV_H=$1
+
+ECHO="printf"
+
+FILE_NTOS=priv_ntos.c
+FILE_STON=priv_ston.c
+
+rm -f $FILE_NTOS
+rm -f $FILE_STON
+
+${ECHO} "/* AUTOMATICALLY GENERATED FILE */\n"		>> $FILE_NTOS
+${ECHO} "\n"						>> $FILE_NTOS
+${ECHO} "#include <sys/priv.h>\n"			>> $FILE_NTOS
+${ECHO} "\n"						>> $FILE_NTOS
+${ECHO} "const char * priv_ntos(int priv);\n"		>> $FILE_NTOS
+${ECHO} "\n"						>> $FILE_NTOS
+${ECHO} "const char *\n"				>> $FILE_NTOS
+${ECHO} "priv_ntos(int priv)\n"				>> $FILE_NTOS
+${ECHO} "{\n"						>> $FILE_NTOS
+${ECHO} "\n"						>> $FILE_NTOS
+${ECHO} "    switch (priv) {\n"				>> $FILE_NTOS
+
+${ECHO} "/* AUTOMATICALLY GENERATED FILE */\n"		>> $FILE_STON
+${ECHO} "\n"						>> $FILE_STON
+${ECHO} "#include <sys/priv.h>\n"			>> $FILE_STON
+${ECHO} "#include <string.h>\n"				>> $FILE_STON
+${ECHO} "\n"						>> $FILE_STON
+${ECHO} "int priv_ston(const char *str);\n"		>> $FILE_STON
+${ECHO} "\n"						>> $FILE_STON
+${ECHO} "int\n"						>> $FILE_STON
+${ECHO} "priv_ston(const char *str)\n"			>> $FILE_STON
+${ECHO} "{\n"						>> $FILE_STON
+${ECHO} "\n"						>> $FILE_STON
+
+
+###
+
+PRIVLIST=$( \
+	grep -E '^#define\W+PRIV_.*\W+[0-9]+' ${SYS_PRIV_H} | \
+	sed 's/\/\*.*//' | \
+	sed -r 's/[	 ]+/;/g')
+
+for PRIV in $PRIVLIST
+do
+	NAME=$(echo ${PRIV} | sed -r 's/[^;]*;([^;]*);([^;]*).*/\1/')
+	NUMBER=$(echo ${PRIV} | sed -r 's/[^;]*;([^;]*);([^;]*).*/\2/')
+
+	#echo "NAME=[${NAME}] NUMBER=[${NUMBER}]"
+
+	printf "    case %s: return (\"%s\");\n" ${NUMBER} ${NAME} \
+		>> $FILE_NTOS
+
+	printf "    if (strcmp(str, \"%s\") == 0) return (%s);\n" \
+		${NAME} ${NUMBER} >> $FILE_STON
+done
+
+###
+
+${ECHO} "    default: return (\"unknown\");\n"		>> $FILE_NTOS
+${ECHO} "    }\n"					>> $FILE_NTOS
+${ECHO} "}\n"						>> $FILE_NTOS
+
+${ECHO} "    return (0);\n"				>> $FILE_STON
+${ECHO} "}\n"						>> $FILE_STON
+
+exit 0
+
+# EOF



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201310231658.r9NGw5iv057807>