merged cont.
[opensuse:yast-rest-service.git] / webservice-tasks / lib / tasks / osc_build.rake
1 #--
2 # Webyast Webservice framework
3 #
4 # Copyright (C) 2009, 2010 Novell, Inc. 
5 #   This library is free software; you can redistribute it and/or modify
6 # it only under the terms of version 2.1 of the GNU Lesser General Public
7 # License as published by the Free Software Foundation. 
8 #
9 #   This library is distributed in the hope that it will be useful, but WITHOUT
10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 
12 # details. 
13 #
14 #   You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software 
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 #++
18
19 require 'rake'
20
21 desc "Build package locally"
22 task :'osc_build'  do
23   require File.join(File.dirname(__FILE__), "osc_prepare")
24   
25   build_dist = ENV["DIST"] || "openSUSE_11.2"
26
27   obs_project, package_name = osc_prepare
28   
29   puts "Building package #{package_name} from project #{obs_project}"
30
31   require 'fileutils'
32   require 'tmpdir'
33   
34   pkg_dir = File.join(Dir.tmpdir, obs_project, build_dist)
35   FileUtils.makedirs pkg_dir
36   
37   begin
38     system("osc checkout '#{obs_project}' #{package_name} > /dev/null")
39     
40     #clean www dir and also clean before copy old entries in osc dir to test if package build after remove some file
41     system("rm -vrf '#{obs_project}/#{package_name}/'*")  
42     system("cp -v package/* '#{obs_project}/#{package_name}'")
43
44     Dir.chdir File.join(Dir.pwd, obs_project, package_name) do
45       puts "building package..."
46
47       sh "osc build --no-verify --release=1 --root=/var/tmp/build-root-#{build_dist} --keep-pkgs=#{pkg_dir} --prefer-pkgs=#{pkg_dir} #{build_dist} > /dev/null"
48     end
49   ensure
50     puts "cleaning"
51     `rm -rf '#{obs_project}'`
52   end
53 end