SVN_SILENT made messages (.desktop file)
[rsibreak.git] / release_rsibreak.rb
blobc0649eed7f306d8fc34bae0c2586b4644c5e1d30
1 #!/usr/bin/env ruby
3 # Ruby script for generating amaroK tarball releases from KDE SVN
5 # (c) 2005 Mark Kretschmann <markey@web.de>
6 # Some parts of this code taken from cvs2dist
7 # License: GNU General Public License V2
10 name       = "rsibreak"
11 egmodule   = "kdereview"
12 version    = "0.7.2"
13 docs       = "yes"
15 svnbase    = "svn+ssh://toma@svn.kde.org/home/kde"
16 svnroot    = "#{svnbase}/trunk"
17 adminroot  = "#{svnbase}/branches/KDE/3.5"
19 addDocs    = []
20 addPo      = []
22 #----------------------------------------------------------------
24 folder     = name + "-" + version
25 addPo      = [name] + addPo
26 addDocs    = [name] + addDocs
28 # Prevent using unsermake
29 oldmake = ENV["UNSERMAKE"]
30 ENV["UNSERMAKE"] = "no"
32 puts "Fetching #{egmodule}/#{name}..."
33 # Remove old folder, if exists
34 `rm -rf #{folder} 2> /dev/null`
35 `rm -rf folder.tar.bz2 2> /dev/null`
37 Dir.mkdir( folder )
38 Dir.chdir( folder )
40 `svn co -N #{svnroot}/#{egmodule}`
41 Dir.chdir( egmodule )
42 `svn up #{name}`
43 `svn up -N doc`
45 if ( docs != "no")
46     for dg in addDocs
47         dg.chomp!
48         `svn up doc/#{dg}`
49     end
50 else
51     `echo 'DO_NOT_COMPILE="$DO_NOT_COMPILE doc"' >> doc/configure.in.in`
52 end
54 `svn co #{adminroot}/kde-common/admin`
55 puts "done\n"
57 puts "\n"
58 puts "Fetching l10n docs for #{egmodule}/#{name}...\n"
59 puts "\n"
61 i18nlangs = `svn cat #{svnroot}/l10n/subdirs`
62 i18nlangsCleaned = []
63 for lang in i18nlangs
64   l = lang.chomp
65   if (l != "xx")
66     i18nlangsCleaned += [l];
67   end
68 end
69 i18nlangs = i18nlangsCleaned
71 Dir.mkdir( "l10n" )
72 Dir.chdir( "l10n" )
74 # docs
75 for lang in i18nlangs
76   lang.chomp!
78   for dg in addDocs
79     dg.chomp!
80     `rm -rf #{dg}`
81     docdirname = "l10n/#{lang}/docs/playground-utils/#{dg}"
82     if ( docs != "no")
83         `svn co -q #{svnroot}/#{docdirname} > /dev/null 2>&1`
84     end
85     next unless FileTest.exists?( dg )
86     print "Copying #{lang}'s #{dg} documentation over...  "
87     `cp -R #{dg}/ ../doc/#{lang}_#{dg}`
89     # we don't want KDE_DOCS = AUTO, cause that makes the
90     # build system assume that the name of the app is the
91     # same as the name of the dir the Makefile.am is in.
92     # Instead, we explicitly pass the name..
93     makefile = File.new( "../doc/#{lang}_#{dg}/Makefile.am", File::CREAT | File::RDWR | File::TRUNC )
94     makefile << "KDE_LANG = #{lang}\n"
95     makefile << "KDE_DOCS = #{dg}\n"
96     makefile.close()
98     puts( "done.\n" )
99   end
102 puts "\n"
103 puts "Fetching l10n po for #{egmodule}/#{name}...\n"
104 puts "\n"
106 Dir.chdir( ".." ) # in egmodule now
108 $subdirs = false
109 Dir.mkdir( "po" )
111 for lang in i18nlangs
112   lang.chomp!
113   dest = "po/#{lang}"
115   for dg in addPo
116     dg.chomp!
117     pofilename = "l10n/#{lang}/messages/playground-utils/#{dg}.po"
118     `svn cat #{svnroot}/#{pofilename} 2> /dev/null | tee l10n/#{dg}.po`
119     next if FileTest.size( "l10n/#{dg}.po" ) == 0
121     if !FileTest.exist?( dest )
122       Dir.mkdir( dest )
123     end
125     print "Copying #{lang}'s #{dg}.po over ..  "
126     `mv l10n/#{dg}.po #{dest}`
127     puts( "done.\n" )
129     makefile = File.new( "#{dest}/Makefile.am", File::CREAT | File::RDWR | File::TRUNC )
130     makefile << "KDE_LANG = #{lang}\n"
131     makefile << "SUBDIRS  = $(AUTODIRS)\n"
132     makefile << "POFILES  = AUTO\n"
133     makefile.close()
135     $subdirs = true
136   end
139 if $subdirs
140   makefile = File.new( "po/Makefile.am", File::CREAT | File::RDWR | File::TRUNC )
141   makefile << "SUBDIRS = $(AUTODIRS)\n"
142   makefile.close()
143 else
144   `rm -Rf po`
147 `rm -rf l10n`
148 puts "\n"
150 # Remove SVN data folder
151 `find -name ".svn" | xargs rm -rf`
153 `/bin/mv * ..`
154 Dir.chdir( ".." ) # name-version
155 `rmdir #{egmodule}`
157 # Move some important files to the root folder
158 Dir.chdir( "#{name}" )
159 `/bin/mv -f src/#{name}.lsm ..`
160 `/bin/mv -f AUTHORS ..`
161 `/bin/mv -f COPYING ..`
162 `/bin/mv -f INSTALL ..`
163 `/bin/mv -f ChangeLog ..`
164 `/bin/mv -f NEWS ..`
165 #`/bin/mv -f README ..`
166 `/bin/mv -f TODO ..`
167 #`/bin/mv -f HACKING ..`
168 `/bin/rm release_rsibreak.rb makechangelog ../INDEX ../README icons/artwork-v1.tar.gz icons/artwork-v2.tar.gz`
169 `/bin/rm icons/artwork-v3.tar.gz`
170 Dir.chdir( ".." )
173 # Generate makefiles
174 `find | xargs touch`
176 puts "\n"
177 puts "Generating Makefiles..  "
179 # Remove that ugly warning which is added just because we sit in playground
180 `echo "AUTOMAKE_OPTIONS = foreign" > Makefile.am.in`
181 `echo "DISTCLEANFILES = inst-apps" >> Makefile.am.in`
182 `echo "include admin/deps.am" >> Makefile.am.in`
183 `echo "include admin/Doxyfile.am" >> Makefile.am.in`
185 ENV["ACLOCAL"]="aclocal"
186 ENV["AUTOCONF"]="autoconf"
188 `make -f Makefile.cvs`
189 puts "done.\n"
191 `rm -rf autom4te.cache`
192 `rm stamp-h.in`
196 puts "\n"
197 puts "Compressing..  "
198 Dir.chdir( ".." ) # root folder
199 `tar -jcf #{folder}.tar.bz2 #{folder}`
200 `rm -rf #{folder}`
201 puts "done.\n"
204 ENV["UNSERMAKE"] = oldmake