# subversion functions
# -----------------------------------------------
+function svn_update {
+
+ # simple wrapper around svn update
+ # usage: svn_update
+
+ svn update
+
+}
+
+function svn_folder {
+
+ # simple svn folder checker
+ # usage: svn_folder <folder>
+
+ if [ -d "$1/.svn" ]; then
+ return
+ else
+ return 1
+ fi
+
+}
+
function templates_under_svn {
# check if svn usage is enabled
return 1
- elif [ -d "$folder/$file/.svn" ]; then
+ elif svn_folder $folder/$file; then
return 0
- elif [ -d "$folder/.svn" ]; then
+ elif svn_folder $folder; then
(
cd $folder
}
-function build_repo {
+function build_svn_repo {
# Checkout a new slackbuild working copy
# input: $1 - svn directory name
}
-function check_repo {
+function check_svn_repo {
# Verify if repository exist
# input: $1 - svn directory name
# $2 - svn address
[ $# -ne 2 ] && exit 5
- [ ! -d "$1" ] && build_repo $1 $2
+ [ ! -d "$1" ] && build_svn_repo $1 $2
}
-function sync_repo {
+function sync_svn_repo {
# Synchronize repository
# input: $1 - svn directory name
mkdir -p $folder
cd $folder
- if [ -d ".svn" ]; then
+ if svn_folder $(pwd); then
su_svn update
else
- build_repo $folder $url
+ build_svn_repo $folder $url
fi
cd $pwd
folder="`absolute_folder $file`"
cwd="`pwd`"
- if [ -d "$folder/.svn" ]; then
+ if svn_folder $folder; then
cd $folder
su_svn add `basename $file`
else
for i in $folders; do
cd ..
- if [ -d ".svn" ]; then
+ if svn_folder $(pwd); then
# add the parent folder
su_svn add --depth=empty $i
file="$1"
folder="`dirname $file`"
- if [ -e "$file" ] && [ -d "$folder/.svn" ] && svn_check $file; then
+ if [ -e "$file" ] && svn_folder $folder && svn_check $file; then
chown_svn $file && chgrp_svn $file
( cd $folder && su_svn del --force `basename $file` )
else
fi
# add file to the revision system
- if [ -d "`dirname $dest`/.svn" ]; then
+ if svn_folder `dirname $dest`; then
chown_svn $dest && chgrp_svn $dest
( cd `dirname $dest` && svn_add `basename $dest` )
fi
DIR=$DIR/$i
if [ ! -e ${DIR:1} ]; then
su_svn mkdir ${DIR:1}
- elif [ -d "${DIR:1}" ] && [ ! -d "${DIR:1}/.svn" ]; then
+ elif [ -d "${DIR:1}" ] && ! svn_folder ${DIR:1}; then
su_svn add ${DIR:1}
fi
done
folder="`absolute_folder $file`"
fi
- if [ -d "$folder/.svn" ]; then
+ if svn_folder $folder; then
return true
fi
for i in $folders; do
cd ..
- if [ -d ".svn" ]; then
+ if svn_folder $(pwd); then
cd $cwd
return true
fi
local repos="$1" tmpfile
shift
- if [ -d "$repos/.svn" ]; then
+ if svn_folder $repos; then
cwd="`pwd`"
chown_svn $repos && chgrp_svn $repos
cd $repos
mkdir -p $folder
- if [ -d "$folder/.svn" ]; then
+ if svn_folder $folder; then
echo "Packages folder $folder seens to be already under revision control, aborting."
EXIT_CODE="1"
return $EXIT_CODE
# update template files from svn
# usage: update_template_files
- if templates_under_svn && [ -d "`template_files`/.svn" ]; then
+ if templates_under_svn && svn_folder `template_files`; then
echo Checking out last template revision from svn...
cd `dirname $TEMPLATE_BASE`
svn update
if [ -d "$1" ]; then
if [ -d "`template_files`" ]; then
echo "Copying template files to $1..."
- if templates_under_svn && [ -d "`template_files`/.svn" ]; then
+ if templates_under_svn && svn_folder `template_files`; then
rsync -av --exclude=.svn `template_files`/ $1/
else
rsync -av `template_files`/ $1/
function repository_update {
- if [ ! -z "$1" ] && [ -d "$1/.svn" ]; then
+ if [ ! -z "$1" ] && svn_folder $1; then
echo "Fetching changes from svn repository for $1..."
cwd="`pwd`"
chown_svn $1 && chgrp_svn $1
local cwd
- if [ -d "$PACKAGES_DIR/.svn" ]; then
+ if svn_folder $PACKAGES_DIR; then
echo "Status of $PACKAGES_DIR."
cwd="`pwd`"
cd $PACKAGES_DIR && su_svn status
cd $cwd
fi
- if [ -d "$NOARCH_DIR/.svn" ]; then
+ if svn_folder $NOARCH_DIR; then
cwd="`pwd`"
echo "Status of $NOARCH_DIR."
cd $NOARCH_DIR && su_svn status
if [ ! -d "$folder" ]; then
echo "Creating packages folder $folder..."
basedir="`dirname $folder`"
- if [ -d "$basedir/.svn" ] && ! svn_check $folder; then
+ if svn_folder $basedir && ! svn_check $folder; then
(
cd $basedir
chown_svn $basedir && chgrp_svn $basedir
mkdir -p $folder/$SUBFOLDER
fi
elif [ ! -e $folder/$SUBFOLDER ]; then
- if [ -d "$folder/.svn" ] && ! svn_check $folder/$SUBFOLDER; then
+ if svn_folder $folder && ! svn_check $folder/$SUBFOLDER; then
(
cd $folder
chown_svn $folder && chgrp_svn $folder
fi
# Using subversion
- if [ -d "$makepkg_repos/.svn" ]; then
+ if svn_folder $makepkg_repos; then
(
function create_package {
# Synchronize repository
- [ $SYNC -eq $yes ] && sync_repo $SLACKBUILDS_DIR $SLACKBUILDS_SVN
+ [ $SYNC -eq $yes ] && sync_svn_repo $SLACKBUILDS_DIR $SLACKBUILDS_SVN
# Update keyring
update_keyring $SLACKBUILDS_DIR/GPG-KEY
mv $PACKAGES_DIR/$PKG_NAME.asc $NEW_REPOS/
fi
- if [ -d "$NEW_REPOS/.svn" ]; then
+ if svn_folder $NEW_REPOS; then
(
cd $NEW_REPOS
chown_svn $PACKAGES_DIR && chgrp_svn $PACKAGES_DIR
BASENAME="`basename $0`[$CREATEPKG_CHILD]"
check_config
-check_repo $SLACKBUILDS_DIR $SLACKBUILDS_SVN
+check_svn_repo $SLACKBUILDS_DIR $SLACKBUILDS_SVN
INSTALL=$off
NO_DEPS=$off
build_queue $*
;;
'--sync')
- sync_repo $SLACKBUILDS_DIR $SLACKBUILDS_SVN
+ sync_svn_repo $SLACKBUILDS_DIR $SLACKBUILDS_SVN
exit $EXIT_CODE
;;
'--help'|'-h'|'')
# issue a svn_commit from a template folder
# usage: template_svn_commit <template-folder>
- if templates_under_svn && [ -d "$1/.svn" ]; then
+ if templates_under_svn && svn_folder $1; then
cd $1
echo First checking out from the repository...
svn update
'--sync' )
# Synchronize mkbuilds repository
mkbuild_update_keyring
- sync_repo $MKBUILDS_DIR $MKBUILDS_SVN
+ sync_svn_repo $MKBUILDS_DIR $MKBUILDS_SVN
exit $?
;;
'-v'|'--version')
local candidate oldplace
# Check mkbuild directory
- [ ! -d $MKBUILDS_DIR ] && build_repo $MKBUILDS_DIR $MKBUILDS_SVN
+ if [ ! -d $MKBUILDS_DIR ] && build_svn_repo $MKBUILDS_DIR $MKBUILDS_SVN
# Get mkbuild path in parameter file
MKBUILD_PATH=$SLACKBUILD_PATH
local cwd
- if [ -d "$MKBUILDS_DIR/.svn" ]; then
+ if svn_folder $MKBUILDS_DIR; then
echo "Status of $MKBUILDS_DIR."
cwd="`pwd`"
cd $MKBUILDS_DIR && su_svn status
cd $cwd
fi
- if [ -d "$SLACKBUILDS_DIR/.svn" ]; then
+ if svn_folder $SLACKBUILDS_DIR; then
cwd="`pwd`"
echo "Status of $SLACKBUILDS_DIR."
cd $SLACKBUILDS_DIR && su_svn status
if [ ! -z "$2" ]; then
- if [ ! -d "$templates_folder/.svn" ]; then
+ if ! svn_folder $templates_folder; then
cd $basedir
echo Creating template `basename $TEMPLATE_BASE`...
- if templates_under_svn && [ -d "`dirname $TEMPLATE_BASE`/.svn" ]; then
+ if templates_under_svn && svn_folder `dirname $TEMPLATE_BASE`; then
cd `dirname $TEMPLATE_BASE`
svn mkdir `dirname $TEMPLATE_BASE`
else
touch `template_perms`
touch `template_packages`
- if templates_under_svn && [ -d "`dirname $TEMPLATE_BASE`/.svn" ]; then
+ if templates_under_svn && svn_folder `dirname $TEMPLATE_BASE`; then
cd `dirname $TEMPLATE_BASE`
info_commit="yes"
fi
- elif templates_under_svn && [ -d "$TEMPLATE_FOLDER/.svn" ]; then
+ elif templates_under_svn && svn_folder "$TEMPLATE_FOLDER"; then
mkdir `template_files` `template_scripts`
cd $TEMPLATE_FOLDER
cat $orig_packages > `template_packages`
fi
- if templates_under_svn && [ -d "$orig_template/.svn" ]; then
+ if templates_under_svn && svn_folder $orig_template; then
cd `dirname $TEMPLATE_BASE`
done
- if ! svn_check `template_packages` && [ -d "`dirname $TEMPLATE_BASE`/.svn" ]; then
+ if ! svn_check `template_packages` && svn_folder `dirname $TEMPLATE_BASE`; then
cd `dirname $TEMPLATE_BASE`
svn add `basedir $(template_packages)`
fi
if [ ! -a "`template_files`/$candidate" ]; then
mkdir -p `template_files`/`dirname $candidate`
cp -a $jail/$candidate `template_files`/$candidate
- if templates_under_svn && [ -d "`template_files`/.svn" ]; then
+ if templates_under_svn && svn_folder `template_files`; then
cwd="`pwd`"
cd `template_files`
svn add ./$candidate
destination="`echo $(template_files)/$file | sed -e 's/\/$//'`"
- if templates_under_svn && [ -d "`template_files`/.svn" ]; then
+ if templates_under_svn && svn_folder `template_files`; then
candidate="./`dirname $file`"
- if [ ! -d "`template_files`/$candidate/.svn" ]; then
+ if ! svn_folder `template_files`/$candidate; then
mkdir -p `template_files`/$candidate
cd `template_files`/`dirname $candidate`
while true; do
- if [ -d ".svn" ]; then
+ if svn_folder $(pwd); then
svn add `basename $candidate`
break
else
mkdir $component
fi
- if templates_under_svn && [ -d "`dirname $TEMPLATE_BASE`/.svn" ]; then
+ if templates_under_svn && svn_folder `dirname $TEMPLATE_BASE`; then
svn add $component
info_commit="yes"
fi
- elif templates_under_svn && [ -d "`dirname $TEMPLATE_BASE`/.svn" ] && \
+ elif templates_under_svn && svn_folder `dirname $TEMPLATE_BASE` && \
! svn_check $component; then
cd `dirname $TEMPLATE_BASE`
if [ -e "`template_files`/$1" ]; then
# first try to remove the file from the template
- if templates_under_svn && [ -d "`template_files`/.svn" ]; then
+ if templates_under_svn && svn_folder `template_files`; then
cd `template_files`
svn del --force ./$1 || rm -rf ./$1
if [ -z "$SILENT" ]; then
fi
elif [ -e "`template_scripts`/$1" ]; then
- if templates_under_svn && [ -d "`template_scripts`/.svn" ]; then
+ if templates_under_svn && svn_folder `template_scripts`; then
cd `template_scripts`
svn del --force ./$1 || rm -rf ./$1
if [ -z "$SILENT" ]; then
exit 1
fi
- if templates_under_svn && [ -d "$basedir/.svn" ]; then
+ if templates_under_svn && svn_folder $basedir; then
cd $TEMPLATE_FOLDER
svn update
svn del --force $template
vi `template_scripts`/$1
fi
if [ "$sha1sum" != "`sha1sum $(template_scripts)/$1`" ] && \
- [ -d "`dirname $TEMPLATE_BASE`/.svn" ] && [ -z "$SILENT" ]; then
+ svn_folder `dirname $TEMPLATE_BASE` && [ -z "$SILENT" ]; then
echo "Please run 'jail-commit --all' to send changes to the repository"
fi
else
touch `template_scripts`/$1
chmod +x `template_scripts`/$1
- if [ -d "`template_scripts`/.svn" ]; then
+ if svn_folder `template_scripts`; then
cd `template_scripts`
svn add $1
if [ -z "$SILENT" ]; then
vi `template_packages`
fi
if [ "$sha1sum" != "`sha1sum $(template_packages)`" ] && \
- [ -d "`dirname $TEMPLATE_BASE`/.svn" ] && [ -z "$SILENT" ]; then
+ svn_folder `dirname $TEMPLATE_BASE` && [ -z "$SILENT" ]; then
echo "Please run 'jail-commit --all' to send changes to the repository"
fi
elif [ -e "`template_packages`" ]; then
elif [ "$1" == "-s" ] || [ "$1" == "--sync" ]; then
- if templates_under_svn && [ -d "$TEMPLATE_FOLDER/.svn" ]; then
+ if templates_under_svn && svn_folder $TEMPLATE_FOLDER; then
( cd $TEMPLATE_FOLDER && svn update )
true
fi