Arch packaging script.

master
Alexander Yakovlev 12 years ago
parent 519f5ff616
commit c4c931d740

@ -360,7 +360,7 @@ namespace :packaging do
f.rewind
f.puts(newstr)
end
cp "README", $prefix
cp "README", $prefix
sh "7za a #{$prefix}.7z #{$prefix}"
puts "Packaging complete."
end
@ -369,6 +369,73 @@ namespace :packaging do
end
desc "Packaging for Arch Linux"
task :arch do
$prefix = "./package/arch/files"
Rake::Task["rake:clean"].invoke
mkdir_p "#{$prefix}/lang"
mkdir_p "#{$prefix}/stead"
mkdir_p "#{$prefix}/tests"
mkdir_p "#{$prefix}/doc/modules"
FileList["lang/*.ini"].each do |file|
cp file,"#{$prefix}/lang"
end
FileList["stead/*.lua"].each do |file|
cp file,"#{$prefix}/stead"
end
FileList["doc/modules/*.txt"].each do |file|
cp file, "#{$prefix}/doc/modules"
end
FileList["tests/*.c"].each do |file|
cp file, "#{$prefix}/tests"
end
FileList["doc/*.txt","doc/*.html","doc/*.pdf"].each do |file|
cp file, "#{$prefix}/doc"
end
mkdir_p "#{$prefix}/src"
Dir.glob("src/*/*.{c,h}").each do |file|
mkdir_p $prefix + "/src/" + file.split("/").at(-2)
cp file, $prefix + "/src/" + file.split("/").at(-2)
end
Dir.glob("games/*/*.{ini,lua,s3m,xm,it,jpg,png,ogg,wav,bin,ttf}").each do |file|
mkdir_p $prefix + "/games/" + file.split("/").at(-2)
cp file, $prefix + "/games/" + file.split("/").at(-2)
end
Dir.glob("games/*/*/*.{ini,lua,s3m,xm,it,jpg,png,ogg,wav,bin,ttf}").each do |file|
mkdir_p $prefix + "/games/" + file.split("/").at(-3) + file.split("/").at(-2)
cp file, $prefix + "/games/" + file.split("/").at(-3) + file.split("/").at(-2)
end
Dir.glob("themes/*/*.{ini,jpg,png,ogg,wav,ttf}").each do |file|
mkdir_p $prefix + "/themes/" + file.split("/").at(-2)
cp file, $prefix + "/themes/" + file.split("/").at(-2)
end
cp "Rakefile", $prefix
cp "README", $prefix+"/doc"
sh "tar -cz -f package/arch/steed_#{VERSION}.tar.gz package/arch/files/*"
require 'digest/md5'
md5 = Digest::MD5.hexdigest(File.read("package/arch/steed_#{VERSION}.tar.gz"))
File.open('package/arch/PKGBUILD', 'w') do |f| #until steed has no site the path is relative
f.puts <<"EOF"
# Contributor: Oreolek <keloero@oreolek.ru>
pkgname=steed
pkgver=#{VERSION}
pkgrel=1
pkgdesc="adventure interpreter"
arch=('i686' 'x86_64')
license=('GPL')
depends=('sdl' 'sdl_image' 'sdl_mixer' 'sdl_ttf' 'lua' 'libsoup-2.4')
makedepends=( 'pkgconfig' 'ruby')
source=(./steed_#{VERSION}.tar.gz)
md5sums=#{md5}
build() {
cd $startdir/src/steed-$pkgver
echo '/usr' | rake install
}
EOF
end
end
task :all => [:android, :windows, :linux, :debian, :arch] do
end

@ -48,6 +48,7 @@ stead = {
}
instead = stead;
steed = stead;
module_init = stead.module_init;
@ -204,6 +205,52 @@ function cat(v,...)
end
stead.cat = cat;
function load_mo_file(mo_file)
-- http://lua-users.org/lists/lua-l/2010-04/msg00005.html
-- open file and read data
local fd,err=io.open(mo_file,"rb")
if not fd then return nil,err end
local mo_data=fd:read("*all")
fd:close()
-- precache some functions
local byte=string.byte
local sub=string.sub
-- check format
local peek_long --localize
local magic=sub(mo_data,1,4)
-- intel magic 0xde120495
if magic=="\222\018\004\149" then
peek_long=function(offs)
local a,b,c,d=byte(mo_data,offs+1,offs+4)
return ((d*256+c)*256+b)*256+a
end
-- motorola magic = 0x950412de
elseif magic=="\149\004\018\222" then
peek_long=function(offs)
local a,b,c,d=byte(mo_data,offs+1,offs+4)
return ((a*256+b)*256+c)*256+d
end
else
return nil,"no valid mo-file"
end
-- version
local V=peek_long(4)
if V~=0 then
return nul,"unsupported version"
end
-- get number of offsets of table
local N,O,T=peek_long(8),peek_long(12),peek_long(16)
-- traverse and get strings
local hash={}
for nstr=1,N do
local ol,oo=peek_long(O),peek_long(O+4) O=O+8
local tl,to=peek_long(T),peek_long(T+4) T=T+8
hash[sub(mo_data,oo+1,oo+ol)]=sub(mo_data,to+1,to+tl)
end
return hash -- return table
end
stead.load_mo_file = load_mo_file;
function txtnb(v)
if type(v) ~= 'string' then return nil; end
return iface:nb(v);

Loading…
Cancel
Save