1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
|
#!/usr/bin/env ruby
#
# Ruby script for generating amaroK tarball releases from KDE SVN
#
# (c) 2005 Mark Kretschmann <markey@web.de>
# (c) 2006-2007 Tom Albers <tomalbers@kde.nl>
# Some parts of this code taken from cvs2dist
# License: GNU General Public License V2
if ARGV.length != 2
puts "Usage: gen_kde4_pkg_stable.rb <version> <i18n-branch>"
exit
end
egmodule = "network"
name = "libktorrent"
docs = "no"
addDocs = []
addPo = []
remove = ""
version = ARGV[0]
svnbase = "svn+ssh://guisson@svn.kde.org/home/kde"
if ARGV[1] == "stable"
svnroot = "#{svnbase}/branches/stable"
svnextragear = "extragear-kde4"
else
svnroot = "#{svnbase}/trunk"
svnextragear = "extragear"
end
svntags = "#{svnbase}/tags/#{name}"
#----------------------------------------------------------------
folder = name + "-" + version
addPo = [name] + addPo
addDocs = [name] + addDocs
puts "Fetching #{egmodule}/#{name}..."
# Remove old folder, if exists
`rm -rf #{folder} 2> /dev/null`
`rm -rf folder.tar.bz2 2> /dev/null`
Dir.mkdir( folder )
Dir.chdir( folder )
# Do the main checkouts.
`svn co #{svntags}/#{version} #{name}-tmp`
Dir.chdir( name + "-tmp" )
`svn co #{svnroot}/#{svnextragear}/#{egmodule}/doc/#{name} doc`
# Move them to the toplevel
`/bin/mv * ..`
Dir.chdir( ".." )
`find -name ".svn" | xargs rm -rf`
`rmdir #{name}-tmp`
puts "done\n"
puts "\n"
puts "Fetching l10n docs for #{egmodule}/#{name}...\n"
puts "\n"
i18nlangs = `svn cat #{svnroot}/l10n-kde4/subdirs`
i18nlangsCleaned = []
for lang in i18nlangs
l = lang.chomp
if (l != "x-test")
i18nlangsCleaned += [l];
end
end
i18nlangs = i18nlangsCleaned
Dir.mkdir( "l10n" )
Dir.chdir( "l10n" )
# docs
for lang in i18nlangs
lang.chomp!
for dg in addDocs
dg.chomp!
`rm -rf #{dg}`
docdirname = "l10n-kde4/#{lang}/docs/extragear-#{egmodule}/#{dg}"
if ( docs != "no")
puts "Checking if #{dg} has translated documentation...\n"
`svn co -q #{svnroot}/#{docdirname} > /dev/null 2>&1`
end
next unless FileTest.exists?( dg )
print "Copying #{lang}'s #{dg} documentation over... "
`cp -R #{dg}/ ../doc/#{lang}_#{dg}`
makefile = File.new( "../doc/#{lang}_#{dg}/CMakeLists.txt", File::CREAT | File::RDWR | File::TRUNC )
makefile << "KDE4_CREATE_HANDBOOK(#{lang})\n"
makefile.close()
puts( "done.\n" )
end
end
puts "\n"
puts "Fetching l10n po for #{egmodule}/#{name}...\n"
puts "\n"
Dir.chdir( ".." ) # in egmodule now
$subdirs = false
Dir.mkdir( "po" )
topmakefile = File.new( "po/CMakeLists.txt", File::CREAT | File::RDWR | File::TRUNC )
for lang in i18nlangs
lang.chomp!
dest = "po/#{lang}"
for dg in addPo
dg.chomp!
pofilename = "l10n-kde4/#{lang}/messages/extragear-#{egmodule}/#{dg}.po"
`svn cat #{svnroot}/#{pofilename} 2> /dev/null | tee l10n/#{dg}.po`
next if FileTest.size( "l10n/#{dg}.po" ) == 0
if !FileTest.exist?( dest )
Dir.mkdir( dest )
makefile = File.new( "#{dest}/CMakeLists.txt", File::CREAT | File::RDWR | File::TRUNC )
makefile << "file(GLOB _po_files *.po)\n"
makefile << "GETTEXT_PROCESS_PO_FILES( #{lang} ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )\n"
makefile.close()
topmakefile << "add_subdirectory( #{lang} )\n"
end
print "Copying #{lang}'s #{dg}.po over .. "
`mv l10n/#{dg}.po #{dest}`
puts( "done.\n" )
end
end
topmakefile.close()
`rm -rf l10n`
puts "\n"
# add l10n to compilation.
`echo "find_package(Msgfmt REQUIRED)" >> CMakeLists.txt`
`echo "find_package(Gettext REQUIRED)" >> CMakeLists.txt`
`echo "add_subdirectory( po )" >> CMakeLists.txt`
# Remove cruft
`find -name ".svn" | xargs rm -rf`
#`find -name "Messages.sh" | xargs rm -rf`
if ( remove != "")
`/bin/rm #{remove}`
end
puts "\n"
puts "Compressing.. "
Dir.chdir( ".." ) # root folder
`tar -jcf #{folder}.tar.bz2 #{folder}`
#`rm -rf #{folder}`
puts "done.\n"
|