From 150236cda4516e5ff57b96c906a25fb95a83f3b2 Mon Sep 17 00:00:00 2001 From: Nicolas Vigier Date: Mon, 11 Jul 2011 23:10:31 +0000 Subject: add small maintdb script --- modules/buildsystem/templates/maintdb | 112 ++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100755 modules/buildsystem/templates/maintdb (limited to 'modules') diff --git a/modules/buildsystem/templates/maintdb b/modules/buildsystem/templates/maintdb new file mode 100755 index 00000000..7d504b77 --- /dev/null +++ b/modules/buildsystem/templates/maintdb @@ -0,0 +1,112 @@ +#!/bin/sh + +MAINTDBDIR=/tmp/maintdb + +function checkname() +{ + if [ -z "$1" ] || + echo "$1" | grep -q '[/*{}%]' || + echo "$1" | fgrep -q '..' + then + echo "Error: invalid package name." >&2 + exit 1 + fi +} + +function maintnew() +{ + if [ a"$user" != "aroot" ] + then + echo "Error: new is only allowed to root." >&2 + exit 1 + fi + checkname "$1" + maintfile="$MAINTDBDIR/$1" + if [ -f "$maintfile" ] + then + exit 0 + fi + echo "$2" > "$maintfile" +} + +function maintset() +{ + checkname "$1" + maintfile="$MAINTDBDIR/$1" + newmaint="$2" + if ! [ -f "$maintfile" ] + then + echo "Error: package $1 does not exist in maintdb." >&2 + exit 1 + fi + curmaint=$(cat "$maintfile") + if [ a"$newmaint" = "anobody" ] + then + if [ a"$curmaint" = a"$user" ] + then + echo "$newmaint" > "$maintfile" + exit 0 + else + echo "Error: cannot set maintainer for $1." >&2 + exit 1 + fi + elif [ a"$newmaint" = a"$user" ] + then + if [ a"$curmaint" = "anobody" ] + then + echo "$newmaint" > "$maintfile" + exit 0 + else + echo "Error: cannot set maintainer for $1." >&2 + exit 1 + fi + else + echo "Error: cannot set someone else as maintainer." >&2 + exit 1 + fi +} + +function maintgetall() +{ + cd "$MAINTDBDIR" + for file in * + do + echo "$file:$(cat $file)" + done + exit 0 +} + +function maintget() +{ + if [ -z "$1" ] + then + maintgetall + fi + checkname "$1" + maintfile="$MAINTDBDIR/$1" + if [ -f "$maintfile" ] + then + cat "$maintfile" + else + echo "Error: package $1 does not exist in maintdb." >&2 + exit 1 + fi +} + +user="$1" +action="$2" + +if [ a"$action" = "anew" ] +then + maintnew "$3" "$4" +elif [ a"$action" = "aset" ] +then + maintset "$3" "$4" +elif [ a"$action" = "aget" ] +then + maintget "$3" +else + echo "Error: unknow command." >&2 + exit 2 +fi + -- cgit v1.2.1