com php-src: Fixed bug #49175: mod_files.sh does not support hash bits: ext/session/mod_files.sh
| From: | Yasuo Ohgaki | Date: | Fri, 28 Jun 2013 21:45:18 +0000 |
| Subject: | com php-src: Fixed bug #49175: mod_files.sh does not support hash bits: ext/session/mod_files.sh | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-72544@lists.php.net to get a copy of this message | ||
Commit: 520c08adf08a0e6d7dfeb5a7d5f3d02fb205c33a
Author: Yasuo Ohgaki <yohgaki@php.net> Sat, 29 Jun 2013 06:45:18 +0900
Parents: e00ed6bc3f6de5f1103cb9e92e66fc20fd6cc17e
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=520c08adf08a0e6d7dfeb5a7d5f3d02fb205c33a
Log:
Fixed bug #49175: mod_files.sh does not support hash bits
Bugs:
https://bugs.php.net/49175
Changed paths:
M ext/session/mod_files.sh
Diff:
diff --git a/ext/session/mod_files.sh b/ext/session/mod_files.sh
index 1d26728..4fc4f20 100644
--- a/ext/session/mod_files.sh
+++ b/ext/session/mod_files.sh
@@ -1,24 +1,65 @@
#! /bin/sh
-if test "$2" = ""; then
- echo "usage: $0 basedir depth"
- exit 1
+if [[ "$2" = "" ]] || [[ "$3" = "" ]]; then
+ echo "Usage: $0 BASE_DIRECTORY DEPTH HASH_BITS"
+ echo "BASE_DIRECTORY will be created if it doesn't exist"
+ echo "DEPTH must be an integer number >0"
+ echo "HASH_BITS(session.hash_bits_per_charactor) should be one of 4, 5, or 6"
+ exit 1
fi
-if test "$2" = "0"; then
- exit 0
+if [[ "$2" = "0" ]] && [[ ! "$4" = "recurse" ]];
then
+ echo "Can't create a directory tree with depth of 0, exiting."
fi
+if [[ "$2" = "0" ]]; then
+ exit 0
+fi
+
+directory="$1"
+depth="$2"
+hashbits="$3"
+
hash_chars="0 1 2 3 4 5 6 7 8 9 a b c d e f"
-if test "$3" -a "$3" -ge "5"; then
- hash_chars="$hash_chars g h i j k l m n o p q r s t u v"
- if test "$3" -eq "6"; then
- hash_chars="$hash_chars w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z -
,"
- fi
+
+if [[ "$hashbits" -ge "5" ]]; then
+ hash_chars="$hash_chars g h i j k l m n o p q r s t u v"
fi
+if [[ "$hashbits" -ge "6" ]]; then
+ hash_chars="$hash_chars w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z -
,"
+fi
+
+while [[ -d $directory ]] && [[ $( ls $directory ) ]]; do
+ echo "Directory $directory is not empty! What would you like to do?"
+
+ options="\"Delete directory contents\" \"Choose another directory\"
\"Quit\""
+ eval set $options
+ select opt in "$@"; do
+
+ if [[ $opt = "Delete directory contents" ]]; then
+ echo "Deleting $directory contents... "
+ rm -rf $directory/*
+ elif [[ $opt = "Choose another directory" ]]; then
+ echo "Which directory would you like to choose?"
+ read directory
+ elif [[ $opt = "Quit" ]]; then
+ exit 0
+ fi
+
+ break;
+ done
+done
+
+if [[ ! -d $directory ]]; then
+ mkdir -p $directory
+fi
+
+
+echo "Creating session path in $directory with a depth of $depth for
session.hash_bits_per_character = $hashbits"
+
for i in $hash_chars; do
- newpath="$1/$i"
- mkdir $newpath || exit 1
- sh $0 $newpath
expr $2 - 1 $3
+ newpath="$directory/$i"
+ mkdir $newpath || exit 1
+ sh $0 $newpath expr $depth - 1 $hashbits recurse
done