SVN_SILENT made messages (.desktop file)
[rsibreak.git] / release_rsibreak.rb
blobe8e3ef4f83f19046e51d554b76e45b1e78dd1639
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   = "utils"
12 version    = "0.4.0"
13 docs       = "no"
15 svnbase    = "https://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}/playground/#{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-#{egmodule}/#{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-#{egmodule}/#{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 src/original_artwork.tar.gz`
169 Dir.chdir( ".." )
172 # Generate makefiles
173 `find | xargs touch`
175 puts "\n"
176 puts "Generating Makefiles..  "
178 # Remove that ugly warning which is added just because we sit in playground
179 `echo "AUTOMAKE_OPTIONS = foreign" > Makefile.am.in`
180 `echo "DISTCLEANFILES = inst-apps" >> Makefile.am.in`
181 `echo "include admin/deps.am" >> Makefile.am.in`
182 `echo "include admin/Doxyfile.am" >> Makefile.am.in`
184 `make -f Makefile.cvs`
185 puts "done.\n"
187 `rm -rf autom4te.cache`
188 `rm stamp-h.in`
192 puts "\n"
193 puts "Compressing..  "
194 Dir.chdir( ".." ) # root folder
195 `tar -jcf #{folder}.tar.bz2 #{folder}`
196 `rm -rf #{folder}`
197 puts "done.\n"
200 ENV["UNSERMAKE"] = oldmake