Am Dienstag, 13. September 2011, 16:09:14 schrieb Troy Telford:
> A modified tar_scm that uses a 'cfgterm' that is searched for in the
> obs project config.
>
> It's a little hackish, but it's an example of what you can do. This
> way, it's possible to have the same _service file in:
well, I can't import it in this form at least, since breaks current setups.
(not supporting --revision anymore)
>
> some_project
>
> and
>
> home:ttelford:some_project
>
> due to differences in the 'cfgterm', the end result can be very
> different - because it's pulling from an entirely different scm branch.
> It makes it a lot easier to have multiple developers, each working on
> their own piece of the code
>
> To set up a new user, it just takes a loop of 'osc copy' and one 'osc
> meta prjconf'. It's a lot less work than modifying the _service file
> in x packages each time there's a new user.
I can't follow you here. The purpose of the _service file is that the generation of the sources is reproducable by everybody in the same way.
And this code makes it dependend now on local configurations ?
Why should it be needed to modify a _service file when a new user gets added ?
Because each user works in his own branch ? But which branch gets built on the server then ?
bye
adrian
>
> --- tar_scm 2011-09-13 13:40:51.873444973 -0600
> +++ tar_scm_branch 2011-09-13 16:03:25.665728335 -0600
> @@ -19,6 +19,7 @@
> MYREVISION=""
> MYPACKAGEMETA=""
> MYGITARGS="--depth 1"
> +PROJECT=""
>
> while test $# -gt 0; do
> case $1 in
> @@ -34,8 +35,8 @@
> MYSUBDIR="$2"
> shift
> ;;
> - *-revision)
> - MYREVISION="$2"
> + *-cfgterm)
> + CFGTERM="$2"
> shift
> ;;
> *-version)
> @@ -83,6 +84,27 @@
> shift
> done
>
> +# Get the actual revision from the configuration file(s):
> +# Verify config file exists:
> +if [[ -f /srv/obs/projects/${PROJECT}.conf ]]
> +then
> + if [[ ! -z ${CFGTERM} ]]
> + then
> + MYREVISION=$(cat /srv/obs/projects/${PROJECT}.conf | grep -E
> ${CFGTERM} | awk '{print $2}')
> + if [[ -z MYREVISION ]]
> + then
> + echo "Revision search term not found."
> + exit 1
> + fi
> + else
> + echo "Config search term not defined!"
> + exit 1
> + fi
> +else
> + echo "project config for ${PROJECT} does not exist."
> + exit 1
> +fi
> +
> FILE="$MYFILENAME"
> VERSION="$MYVERSION"
> if [ -z "$MYPACKAGEMETA" ]; then
--
Adrian Schroeter
SUSE Linux Products GmbH
email: adrian@suse.de