Browse Source

Add rfa info command

Serj Kalichev 9 years ago
parent
commit
4d7afac1ea
1 changed files with 33 additions and 1 deletions
  1. 33 1
      scripts/rfa

+ 33 - 1
scripts/rfa

@@ -13,12 +13,14 @@ Options:
   -c <PATH>, --config=<PATH>
 	Specify config file (default is /etc/repoforge/rfa.conf)
   -s <git/svn>, --vcs=<git/svn>
-	Choose VCS type to create new repository (default is svn)
+	Choose VCS type to create new repository (default is git)
   --git
 	Same as "-c git"
   --svn
 	Same as "-c svn"
 Commands:
+  info <repository>
+	Get information for specified repository.
   add <repository1> [repository2] ...
 	Create new repository.
   del <repository1> [repository2] ...
@@ -57,6 +59,13 @@ group_rename()
 	return 0
 }
 
+get_group_members()
+{
+	local group="$1"
+
+	grep -e "^$group:" /etc/group | sed -e "s|^.*:||" -e "s|,| |g"
+}
+
 create_repo_svn()
 {
 	svnadmin --fs-type=fsfs create "$1" || return 1
@@ -210,6 +219,25 @@ repository_rename()
 	return 0
 }
 
+repository_info()
+{
+	local repo="$1"
+	local repo_root
+	local repo_link
+
+	repo_root=`find_repo_root "$repo"`
+	repo_link=`find_repo_link "$repo"`
+	test "x$repo_root" != "x" -a -d "$repo_root/$repo" || { echo "Error: Can't find repository \"$repo\"" 1>&2; return 1; }
+
+	echo "Name: $repo"
+	echo "Path: $repo_root"
+	echo "Link: $repo_link"
+	echo "Write access: "`get_group_members "${group_w_prefix}$repo"`
+	echo "Read  access: "`get_group_members "${group_r_prefix}$repo"`
+
+	return 0
+}
+
 user_add()
 {
 	local w=0
@@ -394,6 +422,10 @@ test "x$repository_svn_link" = "x" && repository_svn_link="$repository_link"
 
 # Action
 case "$action" in
+"info")
+	test $# -lt 1 && { echo "Error: Repository name is expected" 1>&2; exit 1; }
+	repository_info "$@"
+	;;
 "add")
 	test $# -lt 1 && { echo "Error: Repository name is expected" 1>&2; exit 1; }
 	repository_add "$@"