|
@@ -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 "$@"
|