Am Dienstag, 13. September 2011, 16:02:33 schrieb Troy Telford:

> I've been working with the source services to provide a tighter

> integration between OBS and a version control system.

>

> I'd like to be able to get configuration parameters for a source

> service from the project config. That way, I can copy the _service file

> between two projects, and the project config determines, for example,

> which SCM branch to use. That way I can have something like:

>

> project (uses the main development branch)

> project:branch (uses a 'bugfix' branch)

 

OBS 2.3 is providing project and package name via an environment variable

$OBS_SERVICE_PROJECT and $OBS_SERVICE_PACKAGE.

 

This way does not require to modify all existing services.

 

bye

adrian

 

> That way, the project config (one place to edit) can hold the branch to

> use, instead of the _service file(s) - which can be numerous, depending

> on the number of packages in a project.

>

> Since the project config is in /srv/obs/projects/<project>.cfg, it's a

> simple matter of to scan the <project>.cfg file for a special term -

> like %git_branch, and return a value which is used to generate the

> tarball from the version control system.

>

> The problem is that I need a way to make the project name available to

> the source service. This patch does most of the work: It adds

> --obsproject <prjname> as an argument to the source service script.

> From there, it's necessary to edit the source service scripts to they

> can ignore the --obsproject option, as it is always provided (much like

> $myworkdir).

>

> --- bs_service.org 2011-09-13 13:07:20.955737006 -0600

> +++ bs_service 2011-09-13 14:25:12.602314611 -0600

> @@ -147,6 +147,9 @@

> push @run, "--$param->{'name'}";

> push @run, $param->{'_content'};

> }

> + # Push out the project so we can check against it.

> + push @run, "--obsproject";

> + push @run, "$projid";

> push @run, "--outdir";

> push @run, "$myworkdir/.tmp";

> BSUtil::cleandir("$myworkdir/.tmp");

> --- /home/ttelford/tar_scm 2011-09-13 16:00:16.499841484 -0600

> +++ tar_scm 2011-09-13 13:40:51.000000000 -0600

> @@ -70,6 +70,10 @@

> fi

> shift

> ;;

> + *-obsproject)

> + PROJECT="$2"

> + shift

> + ;;

> *)

> echo Unknown parameter $1.

> echo 'Usage: tar_scm --scm $SCM --url $URL --outdir $OUT'

--

Adrian Schroeter

SUSE Linux Products GmbH

email: adrian@suse.de