Make happy dashboard
[rsibreak.git] / release_rsibreak.rb
blobdcdca293dc1ab1c1da3380b8cab9b5549d728601
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 # (c) 2006-2007 Tom Albers <tomalbers@kde.nl>
7 # Some parts of this code taken from cvs2dist
8 # License: GNU General Public License V2
11 name       = "rsibreak"
12 egmodule   = "utils"
13 version    = "0.9.0-beta1"
14 docs       = "no"
16 svnbase    = "svn+ssh://toma@svn.kde.org/home/kde"
17 svnroot    = "#{svnbase}/trunk"
19 addDocs    = []
20 addPo      = [ "plasma_applet_rsibreak.po" ]
22 #----------------------------------------------------------------
24 folder     = name + "-" + version
25 addPo      = [name] + addPo
26 addDocs    = [name] + addDocs
28 puts "Fetching #{egmodule}/#{name}..."
29 # Remove old folder, if exists
30 `rm -rf #{folder} 2> /dev/null`
31 `rm -rf folder.tar.bz2 2> /dev/null`
33 Dir.mkdir( folder )
34 Dir.chdir( folder )
36 # Do the main checkouts.
37 `svn co #{svnroot}/extragear/#{egmodule}/#{name}`
38 Dir.chdir( name )
39 `svn co #{svnroot}/extragear/#{egmodule}/doc/#{name} doc`
41 # Move them to the toplevel
42 `/bin/mv * ..`
43 Dir.chdir( ".." )
44 `find -name ".svn" | xargs rm -rf`
45 `rmdir #{name}`
47 puts "done\n"
49 puts "\n"
50 puts "Fetching l10n docs for #{egmodule}/#{name}...\n"
51 puts "\n"
53 i18nlangs = `svn cat #{svnroot}/l10n-kde4/subdirs`
54 i18nlangsCleaned = []
55 for lang in i18nlangs
56   l = lang.chomp
57   if (l != "xx")
58     i18nlangsCleaned += [l];
59   end
60 end
61 i18nlangs = i18nlangsCleaned
63 Dir.mkdir( "l10n" )
64 Dir.chdir( "l10n" )
66 # docs
67 for lang in i18nlangs
68   lang.chomp!
70   for dg in addDocs
71     dg.chomp!
72     `rm -rf #{dg}`
73     docdirname = "l10n-kde4/#{lang}/docs/extragear-utils/#{dg}"
74     if ( docs != "no")
75         puts "Checking if #{dg} has translated documentation...\n"
76         `svn co -q #{svnroot}/#{docdirname} > /dev/null 2>&1`
77     end
78     next unless FileTest.exists?( dg )
79     print "Copying #{lang}'s #{dg} documentation over...  "
80     `cp -R #{dg}/ ../doc/#{lang}_#{dg}`
82     # we don't want KDE_DOCS = AUTO, cause that makes the
83     # build system assume that the name of the app is the
84     # same as the name of the dir the Makefile.am is in.
85     # Instead, we explicitly pass the name..
86     makefile = File.new( "../doc/#{lang}_#{dg}/Makefile.am", File::CREAT | File::RDWR | File::TRUNC )
87     makefile << "KDE_LANG = #{lang}\n"
88     makefile << "KDE_DOCS = #{dg}\n"
89     makefile.close()
91     puts( "done.\n" )
92   end
93 end
95 puts "\n"
96 puts "Fetching l10n po for #{egmodule}/#{name}...\n"
97 puts "\n"
99 Dir.chdir( ".." ) # in egmodule now
101 $subdirs = false
102 Dir.mkdir( "po" )
104 topmakefile = File.new( "po/CMakeLists.txt", File::CREAT | File::RDWR | File::TRUNC )
105 for lang in i18nlangs
106   lang.chomp!
107   dest = "po/#{lang}"
109   for dg in addPo
110     dg.chomp!
111     pofilename = "l10n-kde4/#{lang}/messages/extragear-utils/#{dg}.po"
112     `svn cat #{svnroot}/#{pofilename} 2> /dev/null | tee l10n/#{dg}.po`
113     next if FileTest.size( "l10n/#{dg}.po" ) == 0
115     if !FileTest.exist?( dest )
116       Dir.mkdir( dest )
117     end
119     print "Copying #{lang}'s #{dg}.po over ..  "
120     `mv l10n/#{dg}.po #{dest}`
121     puts( "done.\n" )
123     makefile = File.new( "#{dest}/CMakeLists.txt", File::CREAT | File::RDWR | File::TRUNC )
124     makefile << "kde4_create_po_files()\n"
125     makefile << "kde4_install_po_files(#{lang})\n"
126     makefile.close()
128     topmakefile << "add_subdirectory(#{lang})\n"
129   end
131 topmakefile.close()
133 `rm -rf l10n`
134 puts "\n"
136 # add l10n to compilation.
137 `echo "find_package(Msgfmt REQUIRED)" >> CMakeLists.txt`
138 `echo "add_subdirectory( po )" >> CMakeLists.txt`
139 `echo "add_subdirectory( doc )" >> CMakeLists.txt`
141 # Remove cruft 
142 `find -name ".svn" | xargs rm -rf`
143 `find -name "Messages.sh" | xargs rm -rf`
144 `/bin/rm release_rsibreak.rb makechangelog icons/artwork-v?.tar.gz rsibreak.kdevelop`
146 puts "\n"
147 puts "Compressing..  "
148 Dir.chdir( ".." ) # root folder
149 `tar -jcf #{folder}.tar.bz2 #{folder}`
150 #`rm -rf #{folder}`
151 puts "done.\n"