|
@@ -26,28 +26,28 @@ EOF
|
|
|
|
|
|
group_add()
|
|
group_add()
|
|
{
|
|
{
|
|
- groupadd -K GID_MIN=${group_gid_min} "${group_r_prefix}$1"
|
|
|
|
- groupadd -K GID_MIN=${group_gid_min} "${group_w_prefix}$1"
|
|
|
|
|
|
+ groupadd -K GID_MIN=${group_gid_min} "${group_r_prefix}$1" || return 1
|
|
|
|
+ groupadd -K GID_MIN=${group_gid_min} "${group_w_prefix}$1" || return 1
|
|
}
|
|
}
|
|
|
|
|
|
group_del()
|
|
group_del()
|
|
{
|
|
{
|
|
- groupdel "${group_r_prefix}$1"
|
|
|
|
- groupdel "${group_w_prefix}$1"
|
|
|
|
|
|
+ groupdel "${group_r_prefix}$1" || return 1
|
|
|
|
+ groupdel "${group_w_prefix}$1" || return 1
|
|
}
|
|
}
|
|
|
|
|
|
create_repo_svn()
|
|
create_repo_svn()
|
|
{
|
|
{
|
|
- svnadmin --fs-type=fsfs create "$1"
|
|
|
|
|
|
+ svnadmin --fs-type=fsfs create "$1" || return 1
|
|
}
|
|
}
|
|
|
|
|
|
create_repo_git()
|
|
create_repo_git()
|
|
{
|
|
{
|
|
local saved_dir=""
|
|
local saved_dir=""
|
|
saved_dir=`pwd`
|
|
saved_dir=`pwd`
|
|
- mkdir "$1"
|
|
|
|
|
|
+ mkdir "$1" || return 1
|
|
cd "$1"
|
|
cd "$1"
|
|
- git init --bare >/dev/null
|
|
|
|
|
|
+ git init --bare --shared >/dev/null || return 1
|
|
cd "$saved_dir"
|
|
cd "$saved_dir"
|
|
}
|
|
}
|
|
|
|
|
|
@@ -63,7 +63,7 @@ data_add()
|
|
local saved_umask=`umask`
|
|
local saved_umask=`umask`
|
|
umask 002
|
|
umask 002
|
|
local create_vcs_func="create_repo_$opts_vcs"
|
|
local create_vcs_func="create_repo_$opts_vcs"
|
|
- $create_vcs_func "$repo_w"
|
|
|
|
|
|
+ $create_vcs_func "$repo_w" || return 1
|
|
umask ${saved_umask}
|
|
umask ${saved_umask}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -75,16 +75,16 @@ data_fixmod()
|
|
local repo_r="${r_root}/${r_name}"
|
|
local repo_r="${r_root}/${r_name}"
|
|
local repo_w="${r_root}/${r_name}/${r_name}"
|
|
local repo_w="${r_root}/${r_name}/${r_name}"
|
|
|
|
|
|
- chmod 750 "${repo_r}"
|
|
|
|
- chgrp "${group_r_prefix}${r_name}" "${repo_r}"
|
|
|
|
- chgrp -R "${group_w_prefix}${r_name}" "${repo_w}"
|
|
|
|
|
|
+ chmod 750 "${repo_r}" || return 1
|
|
|
|
+ chgrp "${group_r_prefix}${r_name}" "${repo_r}" || return 1
|
|
|
|
+ chgrp -R "${group_w_prefix}${r_name}" "${repo_w}" || return 1
|
|
local dirs=""
|
|
local dirs=""
|
|
dirs=`find "$repo_w" -type d`
|
|
dirs=`find "$repo_w" -type d`
|
|
local dir=""
|
|
local dir=""
|
|
for dir in $dirs; do
|
|
for dir in $dirs; do
|
|
- chmod g+s "$dir"
|
|
|
|
|
|
+ chmod g+s "$dir" || return 1
|
|
done
|
|
done
|
|
- chmod -R g+w "${repo_w}"
|
|
|
|
|
|
+ chmod -R g+w "${repo_w}" || return 1
|
|
}
|
|
}
|
|
|
|
|
|
data_del()
|
|
data_del()
|
|
@@ -122,10 +122,10 @@ repository_add()
|
|
test "x$repo_link" = "x" && { echo "Error: Illegal repository link \"\"" 1>&2; exit 1; }
|
|
test "x$repo_link" = "x" && { echo "Error: Illegal repository link \"\"" 1>&2; exit 1; }
|
|
test -d "$repo_root" || { echo "Error: Illegal repository root \"$repo_root\"" 1>&2; exit 1; }
|
|
test -d "$repo_root" || { echo "Error: Illegal repository root \"$repo_root\"" 1>&2; exit 1; }
|
|
test -d "$repo_link" || { echo "Error: Illegal repository link \"$repo_link\"" 1>&2; exit 1; }
|
|
test -d "$repo_link" || { echo "Error: Illegal repository link \"$repo_link\"" 1>&2; exit 1; }
|
|
- group_add "$rep_name"
|
|
|
|
- data_add "$rep_name" "$repo_root" "$repo_link"
|
|
|
|
- data_fixmod "$rep_name" "$repo_root" "$repo_link"
|
|
|
|
- link_add "$rep_name" "$repo_root" "$repo_link"
|
|
|
|
|
|
+ group_add "$rep_name" || { echo "Error: Can't add group for 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; }
|
|
|
|
+ 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 "The repository \"$rep_name\" was succesfully created."
|
|
done
|
|
done
|
|
}
|
|
}
|
|
@@ -142,9 +142,9 @@ repository_del()
|
|
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 "The repository \"$rep_name\" will be not deleted."; continue; }
|
|
fi
|
|
fi
|
|
- link_del "$rep_name" "$repo_link"
|
|
|
|
- data_del "$rep_name" "$repo_root"
|
|
|
|
- group_del "$rep_name"
|
|
|
|
|
|
+ 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; }
|
|
|
|
+ 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 "The repository \"$rep_name\" was succesfully deleted."
|
|
done
|
|
done
|
|
}
|
|
}
|
|
@@ -156,8 +156,8 @@ repository_fixmod()
|
|
for rep_name in "$@"; do
|
|
for rep_name in "$@"; do
|
|
find_repo "$rep_name"
|
|
find_repo "$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"
|
|
|
|
- link_add "$rep_name" "$repo_root" "$repo_link"
|
|
|
|
|
|
+ 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; }
|
|
echo "The repository \"$rep_name\" was succesfully fixed."
|
|
echo "The repository \"$rep_name\" was succesfully fixed."
|
|
done
|
|
done
|
|
}
|
|
}
|
|
@@ -188,12 +188,8 @@ user_add()
|
|
esac
|
|
esac
|
|
shift
|
|
shift
|
|
for user_name in "$@"; do
|
|
for user_name in "$@"; do
|
|
- if [ $r -ne 0 ]; then
|
|
|
|
- adduser "${user_name}" "${group_r_prefix}${repository_name}"
|
|
|
|
- fi
|
|
|
|
- if [ $w -ne 0 ]; then
|
|
|
|
- adduser "${user_name}" "${group_w_prefix}${repository_name}"
|
|
|
|
- fi
|
|
|
|
|
|
+ test $r -ne 0 && adduser "${user_name}" "${group_r_prefix}${repository_name}"
|
|
|
|
+ test $w -ne 0 && adduser "${user_name}" "${group_w_prefix}${repository_name}"
|
|
done
|
|
done
|
|
}
|
|
}
|
|
|
|
|
|
@@ -223,12 +219,8 @@ user_del()
|
|
esac
|
|
esac
|
|
shift
|
|
shift
|
|
for user_name in "$@"; do
|
|
for user_name in "$@"; do
|
|
- if [ $r -ne 0 ]; then
|
|
|
|
- deluser "${user_name}" "${group_r_prefix}${repository_name}"
|
|
|
|
- fi
|
|
|
|
- if [ $w -ne 0 ]; then
|
|
|
|
- deluser "${user_name}" "${group_w_prefix}${repository_name}"
|
|
|
|
- fi
|
|
|
|
|
|
+ test $r -ne 0 && deluser "${user_name}" "${group_r_prefix}${repository_name}"
|
|
|
|
+ test $w -ne 0 && deluser "${user_name}" "${group_w_prefix}${repository_name}"
|
|
done
|
|
done
|
|
}
|
|
}
|
|
|
|
|
|
@@ -348,4 +340,4 @@ case "$action" in
|
|
;;
|
|
;;
|
|
esac
|
|
esac
|
|
|
|
|
|
-exit 0
|
|
|
|
|
|
+exit $?
|