|
@@ -141,9 +141,12 @@ link_del()
|
|
repository_add()
|
|
repository_add()
|
|
{
|
|
{
|
|
local rep_name=""
|
|
local rep_name=""
|
|
|
|
+ local repo_root
|
|
|
|
+ local repo_link
|
|
|
|
|
|
for rep_name in "$@"; do
|
|
for rep_name in "$@"; do
|
|
- find_repo "$rep_name"
|
|
|
|
|
|
+ repo_root=`find_repo_root "$rep_name"`
|
|
|
|
+ repo_link=`find_repo_link "$rep_name"`
|
|
test "x$repo_root" = "x" || { echo "Error: The repository \"$rep_name\" already exists." 1>&2; exit 1; }
|
|
test "x$repo_root" = "x" || { echo "Error: The repository \"$rep_name\" already exists." 1>&2; exit 1; }
|
|
eval repo_root="\$repository_${opts_vcs}_root"
|
|
eval repo_root="\$repository_${opts_vcs}_root"
|
|
eval repo_link="\$repository_${opts_vcs}_link"
|
|
eval repo_link="\$repository_${opts_vcs}_link"
|
|
@@ -155,42 +158,51 @@ repository_add()
|
|
data_add "$rep_name" "$repo_root" "$repo_link" || { echo "Error: Can't add repository \"$rep_name\"" 1>&2; exit 1; }
|
|
data_add "$rep_name" "$repo_root" "$repo_link" || { echo "Error: Can't add repository \"$rep_name\"" 1>&2; exit 1; }
|
|
data_fixmod "$rep_name" "$repo_root" "$repo_link" || { echo "Error: Can't fix mode for repository \"$rep_name\"" 1>&2; exit 1; }
|
|
data_fixmod "$rep_name" "$repo_root" "$repo_link" || { echo "Error: Can't fix mode for repository \"$rep_name\"" 1>&2; exit 1; }
|
|
link_add "$rep_name" "$repo_root" "$repo_link" || { echo "Error: Can't add link for repository \"$rep_name\"" 1>&2; exit 1; }
|
|
link_add "$rep_name" "$repo_root" "$repo_link" || { echo "Error: Can't add link for repository \"$rep_name\"" 1>&2; exit 1; }
|
|
- echo "The repository \"$rep_name\" was succesfully created."
|
|
|
|
|
|
+ echo "Info: The repository \"$rep_name\" was succesfully created."
|
|
done
|
|
done
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+# Delete the repository
|
|
repository_del()
|
|
repository_del()
|
|
{
|
|
{
|
|
local rep_name=""
|
|
local rep_name=""
|
|
local sure=""
|
|
local sure=""
|
|
|
|
+ local repo_root
|
|
|
|
+ local repo_link
|
|
|
|
|
|
for rep_name in "$@"; do
|
|
for rep_name in "$@"; do
|
|
- find_repo "$rep_name"
|
|
|
|
|
|
+ repo_root=`find_repo_root "$rep_name"`
|
|
|
|
+ repo_link=`find_repo_link "$rep_name"`
|
|
test "x$repo_root" = "x" -o "x$repo_link" = "x" && { echo "Error: Can't find repository \"$rep_name\"" 1>&2; exit 1; }
|
|
test "x$repo_root" = "x" -o "x$repo_link" = "x" && { echo "Error: Can't find repository \"$rep_name\"" 1>&2; exit 1; }
|
|
if test "x$opts_force" = "x"; then
|
|
if test "x$opts_force" = "x"; then
|
|
read -r -p "Deleting repository \"$rep_name\". Are you sure (y/n)? " sure
|
|
read -r -p "Deleting repository \"$rep_name\". Are you sure (y/n)? " sure
|
|
- test "x$sure" = "xy" -o "x$sure" = "xY" || { echo "The repository \"$rep_name\" will be not deleted."; continue; }
|
|
|
|
|
|
+ test "x$sure" = "xy" -o "x$sure" = "xY" || { echo "Info: The repository \"$rep_name\" will be not deleted."; continue; }
|
|
fi
|
|
fi
|
|
link_del "$rep_name" "$repo_link" || { echo "Error: Can't remove link for repository \"$rep_name\"" 1>&2; exit 1; }
|
|
link_del "$rep_name" "$repo_link" || { echo "Error: Can't remove link for repository \"$rep_name\"" 1>&2; exit 1; }
|
|
data_del "$rep_name" "$repo_root" || { echo "Error: Can't remove repository \"$rep_name\"" 1>&2; exit 1; }
|
|
data_del "$rep_name" "$repo_root" || { echo "Error: Can't remove repository \"$rep_name\"" 1>&2; exit 1; }
|
|
group_del "$rep_name" || { echo "Error: Can't remove group for repository \"$rep_name\"" 1>&2; exit 1; }
|
|
group_del "$rep_name" || { echo "Error: Can't remove group for repository \"$rep_name\"" 1>&2; exit 1; }
|
|
- echo "The repository \"$rep_name\" was succesfully deleted."
|
|
|
|
|
|
+ echo "Info: The repository \"$rep_name\" was succesfully deleted."
|
|
done
|
|
done
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+# Fix broken repository: symlink, access rights, owner.
|
|
repository_fixmod()
|
|
repository_fixmod()
|
|
{
|
|
{
|
|
local rep_name=""
|
|
local rep_name=""
|
|
|
|
+ local repo_root
|
|
|
|
+ local repo_link
|
|
|
|
|
|
for rep_name in "$@"; do
|
|
for rep_name in "$@"; do
|
|
- find_repo "$rep_name"
|
|
|
|
|
|
+ repo_root=`find_repo_root "$rep_name"`
|
|
|
|
+ repo_link=`find_repo_link "$rep_name"`
|
|
test "x$repo_root" = "x" -o "x$repo_link" = "x" && { echo "Error: Can't find repository \"$rep_name\"" 1>&2; exit 1; }
|
|
test "x$repo_root" = "x" -o "x$repo_link" = "x" && { echo "Error: Can't find repository \"$rep_name\"" 1>&2; exit 1; }
|
|
data_fixmod "$rep_name" "$repo_root" "$repo_link" || { echo "Error: Can't fix repository's \"$rep_name\" mode" 1>&2; exit 1; }
|
|
data_fixmod "$rep_name" "$repo_root" "$repo_link" || { echo "Error: Can't fix repository's \"$rep_name\" mode" 1>&2; exit 1; }
|
|
link_add "$rep_name" "$repo_root" "$repo_link" || { echo "Error: Can't create link for repository \"$rep_name\"" 1>&2; exit 1; }
|
|
link_add "$rep_name" "$repo_root" "$repo_link" || { echo "Error: Can't create link for repository \"$rep_name\"" 1>&2; exit 1; }
|
|
- echo "The repository \"$rep_name\" was succesfully fixed."
|
|
|
|
|
|
+ echo "Info: The repository \"$rep_name\" was succesfully fixed."
|
|
done
|
|
done
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+# Rename existing repository
|
|
repository_rename()
|
|
repository_rename()
|
|
{
|
|
{
|
|
local old_name="$1"
|
|
local old_name="$1"
|
|
@@ -219,6 +231,7 @@ repository_rename()
|
|
return 0
|
|
return 0
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+# Show repository info
|
|
repository_info()
|
|
repository_info()
|
|
{
|
|
{
|
|
local repo="$1"
|
|
local repo="$1"
|
|
@@ -238,6 +251,7 @@ repository_info()
|
|
return 0
|
|
return 0
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+# Add users to access groups
|
|
user_add()
|
|
user_add()
|
|
{
|
|
{
|
|
local w=0
|
|
local w=0
|
|
@@ -269,6 +283,7 @@ user_add()
|
|
done
|
|
done
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+# Remove users from access groups
|
|
user_del()
|
|
user_del()
|
|
{
|
|
{
|
|
local w=0
|
|
local w=0
|
|
@@ -317,6 +332,7 @@ find_repo_root()
|
|
return 0
|
|
return 0
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+# Find repository link path by repository name
|
|
find_repo_link()
|
|
find_repo_link()
|
|
{
|
|
{
|
|
local r=""
|
|
local r=""
|
|
@@ -335,15 +351,6 @@ find_repo_link()
|
|
return 0
|
|
return 0
|
|
}
|
|
}
|
|
|
|
|
|
-# Legacy function to be compatible.
|
|
|
|
-# Use find_repo_root and find_repo_link functions
|
|
|
|
-find_repo()
|
|
|
|
-{
|
|
|
|
- repo_root=`find_repo_root "$1"`
|
|
|
|
- repo_link=`find_repo_link "$1"`
|
|
|
|
- return 0
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
#------------------ MAIN -----------------------------------------
|
|
#------------------ MAIN -----------------------------------------
|
|
|
|
|
|
possible_vcs="svn git"
|
|
possible_vcs="svn git"
|