gnats-prs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnats/655: mkcat not setting the permissions according to "category-dir-


From: bug-gnats
Subject: gnats/655: mkcat not setting the permissions according to "category-dir-perms"
Date: Mon, 7 Aug 2006 09:35:01 -0500 (CDT)

>Number:         655
>Category:       gnats
>Synopsis:       mkcat not setting the permissions according to 
>"category-dir-perms"
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Aug 07 09:35:01 -0500 2006
>Originator:     Stephane Chazelas <address@hidden>
>Release:        
>Description:
 
 Hi guys,
 
 mkcat doesn't take into account the "category-dir-perms"
 parameter in dbconfig when creating category directories.
 
 Some minor changes added as well below.
 
>Fix:

Index: gnats/mkcat.sh
===================================================================
RCS file: /sources/gnats/gnats/gnats/mkcat.sh,v
retrieving revision 1.5
diff -u -r1.5 mkcat.sh
--- gnats/mkcat.sh      30 Jul 2001 18:42:04 -0000      1.5
+++ gnats/mkcat.sh      7 Aug 2006 14:25:31 -0000
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/sh -
 # Create directories for each category in a GNATS categories file. 
 # Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
 # Contributed by Brendan Kehoe (address@hidden) and
@@ -24,33 +24,39 @@
 USAGE="Usage: $prog [--help] [--database=databasename]"
 
 # process command line options
-while [ $# -gt 0 ]; do
+while [ "$#" -gt 0 ]; do
   case "$1" in
     -d | --database)
-      if [ $# -eq 1 ]; then echo "$USAGE"; exit 1; fi
+      if [ $# -eq 1 ]; then echo "$USAGE" >&2; exit 1; fi
       shift ; GNATSDB="$1" ; export GNATSDB ;;
-    --database=*) GNATSDB="`echo $1 | sed 's/^[-a-z]*=//'`" ; export GNATSDB ;;
-    -*)  echo "$USAGE" ; exit 1 ;;
+    --database=*) GNATSDB=`echo "$1" | cut -d= -f2-` ; export GNATSDB ;;
+    -*)  echo "$USAGE" >&2; exit 1 ;;
   esac
   shift
 done
 
 
-GNATS_DB_DIR="`query-pr --print-directory-for-database`"
+GNATS_DB_DIR="`query-pr --print-directory-for-database`" || exit
 
 # verify gnats root
-if [ ! -d ${GNATS_DB_DIR} ] ; then
-   echo "$prog: No directory $GNATS_DB_DIR"
+if [ ! -d "${GNATS_DB_DIR}" ] ; then
+   echo "$prog: No directory $GNATS_DB_DIR" >&2
    exit 1
 fi
 
+# get permission for new category directories
+perm=`
+  awk < "$GNATS_DB_DIR/gnats-adm/dbconfig" '
+    $1 == "category-dir-perms" {print $2; exit}' | tr -d '"'
+`
+perm=${perm:-755}
+
 query-pr --list-categories | awk -F: '{print $1}' | while read i
 do
-    if test -d "$GNATS_DB_DIR/$i"; then
-       true
-    else
-       mkdir "$GNATS_DB_DIR/$i"
-        echo "Category \`$GNATS_DB_DIR/$i' created."
+    if [ ! -d "$GNATS_DB_DIR/$i" ]; then
+       mkdir "$GNATS_DB_DIR/$i" &&
+         chmod "$perm" "$GNATS_DB_DIR/$i" &&
+         echo "Category \`$GNATS_DB_DIR/$i' created."
     fi
 done
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]