aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2012-05-28 05:25:04 -0400
committerRalph Amissah <ralph@amissah.com>2012-05-28 05:27:09 -0400
commit45a35b75f4196bbf30e65b64b4463ab4fb620846 (patch)
tree787af2de10a70eb39f2d2733765dc1c678a62d5e
parentv3: hub, manifest re-run where related multilingual documents, fix (diff)
v3: sisupod.txz processing
* BUG image copying/processing for sisupod
-rw-r--r--data/doc/sisu/CHANGELOG_v35
-rw-r--r--lib/sisu/v3/dal.rb3
-rw-r--r--lib/sisu/v3/hub.rb14
-rw-r--r--lib/sisu/v3/options.rb60
-rw-r--r--lib/sisu/v3/param.rb3
-rw-r--r--lib/sisu/v3/sisupod_make.rb21
-rw-r--r--lib/sisu/v3/sysenv.rb6
7 files changed, 82 insertions, 30 deletions
diff --git a/data/doc/sisu/CHANGELOG_v3 b/data/doc/sisu/CHANGELOG_v3
index e4aaeba9..485d3c32 100644
--- a/data/doc/sisu/CHANGELOG_v3
+++ b/data/doc/sisu/CHANGELOG_v3
@@ -40,9 +40,14 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_3.2.10.orig.tar.xz
--init-site / --configure), checks whether exists if not copies (for
--init-site / --configure just copies, takes as a re-copy request)
+* v3: sisupod.txz processing
+ BUG image copying/processing for sisupod
+
BUGS
* broken mini table of contents (minitoc) manifest for multilingual files,
better run without use --exc-manifest-minitoc
+ * sisupood image copying/processing, broken
+
%% 3.2.9.orig.tar.xz (2012-05-19:20/6)
http://git.sisudoc.org/?p=code/sisu.git;a=log;h=refs/tags/sisu_3.2.9
http://git.sisudoc.org/?p=code/sisu.git;a=log;h=refs/tags/debian/sisu_3.2.9-1
diff --git a/lib/sisu/v3/dal.rb b/lib/sisu/v3/dal.rb
index 476ddb94..dd1ec494 100644
--- a/lib/sisu/v3/dal.rb
+++ b/lib/sisu/v3/dal.rb
@@ -271,6 +271,9 @@ module SiSU_DAL
fn=(@fnx && @fnx =~/\.ss[tmi]$/) \
? @fnx
: @opt.fns
+ if @opt.fno =~/\.txz$/
+ Dir.chdir(@opt.f_pth[:pth])
+ end
file_array=@env.read_source_file(fn)
file_array.each do |l|
if l =~/\r\n/; l.gsub!(/\r\n/,"\n")
diff --git a/lib/sisu/v3/hub.rb b/lib/sisu/v3/hub.rb
index 1e400504..daa75166 100644
--- a/lib/sisu/v3/hub.rb
+++ b/lib/sisu/v3/hub.rb
@@ -77,7 +77,9 @@ module SiSU
@opt.lng='en'
end
@@pwd=@opt.pth
- Dir.chdir(@opt.pth) #watch
+ @opt.pth=@opt.f_pths[i][:pth]
+ @opt.lng=@opt.f_pths[i][:lng]
+ Dir.chdir(@opt.f_pth[:pth]) #watch
@env=SiSU_Env::InfoEnv.new(fns)
yield
end
@@ -108,9 +110,11 @@ module SiSU
@opt.pth=Dir.pwd
@opt.lng='en'
elsif @opt.fno =~/\.txz$/
+ @opt.pth=@opt.f_pths[i][:pth]
+ @opt.lng=@opt.f_pths[i][:lng]
else
- @opt.pth=@opt.paths[i]
- @opt.lng=@opt.lngs[i]
+ @opt.pth=@opt.f_pths[i][:pth]
+ @opt.lng=@opt.f_pths[i][:lng]
end
@@pwd=@opt.pth
Dir.chdir(@opt.pth) #watch
@@ -332,8 +336,8 @@ p "#{__LINE__}:#{__FILE__}" if @opt.act[:maintenance][:set] ==:on
gsub(/\.ssm$/,'.ssm.sst')
@opt.f_pth=@opt.f_pths[i]
if @opt.fns !~/\.-sst$/
- @opt.pth=@opt.paths[i]
- @opt.lng=@opt.lngs[i]
+ @opt.pth=@opt.f_pths[i][:pth]
+ @opt.lng=@opt.f_pths[i][:lng]
else
@opt.pth=Dir.pwd
@opt.lng='en'
diff --git a/lib/sisu/v3/options.rb b/lib/sisu/v3/options.rb
index 44d4e40e..c7789f3a 100644
--- a/lib/sisu/v3/options.rb
+++ b/lib/sisu/v3/options.rb
@@ -196,6 +196,7 @@ module SiSU_Commandline
def set_files_and_paths_and_general_extract(s)
c,w='',''
m,f,pth,z,lng,lngs=[],[],[],[],[],[]
+ lng_is=''
a=s.split(/\s+/)
r_l=Px[:lng_lst].join('|')
a.uniq.each do |x|
@@ -208,7 +209,43 @@ module SiSU_Commandline
m << x
end
elsif x =~ /(?:\.(?:(?:-|ssm\.)?sst(?:\.xml)?|ssm|ssi|sx[sdn]\.xml|s[1-3]|kdi|ssp)|\S+?\.ss[mt]\.(?:txz|zip)|sisupod\.(?:txz|zip))$/
- if x =~/^(?:https?|file):\/\/\S+/ \
+ if x =~/\S+?\.ss[mt]\.(?:txz|zip)|sisupod\.(?:txz|zip)/
+ if x =~/^(?:https?|file):\/\/\S+/ #\
+ end
+ pwd=Dir.pwd
+ fn_pod=x.gsub(/.+?([^\/]+)\.txz$/,'\1')
+ fullname=@env.processing_path.processing + '/sisupod/' + fn_pod
+ pt=Pathname.new(fullname)
+ FileUtils::mkdir_p(pt.to_s)
+ Dir.chdir(pt.realpath)
+ options=s.gsub(/(\s+--?\S+)+.+/,'\1')
+ system("
+ chdir #{fullname}
+ tar xaf #{x}
+ chdir #{pwd}
+ ")
+ Dir.chdir(pt.realpath.to_s + '/sisupod/doc')
+ r=Px[:lng_lst].join('|')
+ Dir.entries("#{fullname}/sisupod/doc").each do |d_lng|
+ if d_lng =~/^(?:#{r})$/
+ Dir.chdir(pt.realpath.to_s + "/sisupod/doc/#{d_lng}")
+ filenames=Dir.glob("*.ss[mt]")
+ filenames.each do |fn|
+ f_pths << {
+ pth: "#{fullname}/sisupod/doc/#{d_lng}",
+ f: "#{fn}",
+ pth_stub: 'doc',
+ lng: d_lng,
+ lng_is: d_lng,
+ url_base: '',
+ url: ''
+ }
+ Dir.chdir(pwd)
+ f << fn
+ end
+ end
+ end
+ elsif x =~/^(?:https?|file):\/\/\S+/ \
and x =~/\S+?\.ss[mt]$/
r_url=/(http:\/\/\S+?\/\S+?\/src(?:\/(?:#{r_l}))?)\//
url_base = (x[r_url,1])
@@ -252,12 +289,7 @@ module SiSU_Commandline
url: url
}
f << fn
- elsif x =~/^(?:https?|file):\/\/\S+/ \
- and x =~/\S+?\.ss[mt]\.(?:txz|zip)|sisupod\.(?:txz|zip)/
- x=x.gsub(/^file:\/\//,'')
- f << x
elsif FileTest.file?(x)
-### FIX
pt=Pathname.new(x)
pth << pt.split[0].realpath.to_s #remove?
f << pt.split[1].to_s #remove?
@@ -266,14 +298,7 @@ module SiSU_Commandline
l_p = (pt.split[0].realpath.to_s[t,1]) \
? pt.split[0].realpath.to_s[t,1]
: nil
- lng << l_p
- lngs << if l_p
- l_p
- elsif x =~/~(#{r_l})\.ss[tm]/
- $1
- else lng_base
- end
- lng_is =if l_p
+ lngs << lng_is = if l_p
l_p
elsif x =~/~(#{r_l})\.ss[tm]/
$1
@@ -283,14 +308,11 @@ module SiSU_Commandline
pth: pt.split[0].realpath.to_s,
f: pt.split[1].to_s,
pth_stub: pt.split[0].realpath.to_s[r_u,1],
- lng: (pt.split[0].realpath.to_s[t,1]) \
- ? pt.split[0].realpath.to_s[t,1]
- : nil,
+ lng: lng_is,
lng_is: lng_is,
url_base: nil,
url: nil
}
-# Dir.chdir(pt.split[0].realpath)
else puts "file not found: #{x}"
end
elsif x =~ /\.termsheet\.rb$/
@@ -301,7 +323,7 @@ module SiSU_Commandline
puts "#{x} in #{a.join(' ')}?"
end
end
- { cmd: c, mod: m, what: w, paths: pth, files: f, f_pths: f_pths, lng: lng, lngs: lngs }
+ { cmd: c, mod: m, what: w, paths: pth, files: f, f_pths: f_pths, lng: lng_is, lngs: lngs }
end
def expand_numeric_shortcuts(a)
shortcut=SiSU_Env::InfoProcessingFlag.new
diff --git a/lib/sisu/v3/param.rb b/lib/sisu/v3/param.rb
index 77b4e8e7..f1c4aa3a 100644
--- a/lib/sisu/v3/param.rb
+++ b/lib/sisu/v3/param.rb
@@ -90,6 +90,7 @@ module SiSU_Param
and @opt.f_pth[:pth] != Dir.pwd #BUG check
# you may need to change Dir.pwd to @opt.f_pth[:pth] where the latter
# has a path value that is different, however, f_pth is not always set!
+ Dir.chdir(@opt.f_pth[:pth])
p '-- bug alert -- '
p __FILE__ + ':' + __LINE__.to_s
p 'f_pth ' + @opt.f_pth[:pth]
@@ -1076,6 +1077,7 @@ module SiSU_Param
@rgx_image=/(?:^|[^_\\])\{(?:\s*|\~\^\s+)(\S+?\.(?:png|jpg|gif)\b)/m
@rgx_audio=/\{\s*(\S+?\.(?:mp3|ogg))/
@rgx_mm=/\{\s*(\S+?\.(?:ogg|mpeg))/ #expand and distinguish ogg
+ Dir.chdir(@opt.f_pth[:pth])
begin
rescue
SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@fns).error do
@@ -1469,7 +1471,6 @@ module SiSU_Param
end
@papersize_array=@papersize.scan(/(?:a4|letter|legal|book|a5|b5)/i)
fn=@opt.fno #decide what to do a filesize on .ssm tells very little about actual document size
- #fn=@fns=~/\.ssm\.sst$/ ? @fns.gsub(/.sst/,'') : @fns #decide what to do a filesize on .ssm tells very little about actual document size
@filesize=(File.size(fn)).to_s
if @sys.openssl !=false
skin=@doc_skin \
diff --git a/lib/sisu/v3/sisupod_make.rb b/lib/sisu/v3/sisupod_make.rb
index f438687f..33ae8db2 100644
--- a/lib/sisu/v3/sisupod_make.rb
+++ b/lib/sisu/v3/sisupod_make.rb
@@ -272,9 +272,22 @@ module SiSU_Doc
x[:f].each do |f|
pth="#{@env.processing_path.processing_sisupod(@opt)}/doc/#{@opt.lng}"
FileUtils::mkdir_p(pth) unless FileTest.directory?(pth)
- (@opt.fno =~/\.ssm$/) \
- ? FileUtils::cp_r("#{@env.path.pwd}#{doc_import_dir}/#{f[:f]}","#{@env.processing_path.processing_sisupod(@opt)}/doc/#{@opt.lng}/#{f[:n]}")
- : FileUtils::cp_r("#{@env.path.pwd}/#{f[:f]}","#{@env.processing_path.processing_sisupod(@opt)}/doc/#{@opt.lng}/#{f[:n]}")
+ if f[:f] =~/\~(\S{2,3})\.ss[tm]$/
+ lng_f=$1
+ if @opt.lng == lng_f
+ (@opt.fno =~/\.ssm$/) \
+ ? FileUtils::cp_r("#{@env.path.pwd}#{doc_import_dir}/#{f[:f]}",
+ "#{@env.processing_path.processing_sisupod(@opt)}/doc/#{@opt.lng}/#{f[:n]}")
+ : FileUtils::cp_r("#{@env.path.pwd}/#{f[:f]}",
+ "#{@env.processing_path.processing_sisupod(@opt)}/doc/#{@opt.lng}/#{f[:n]}")
+ end
+ else
+ (@opt.fno =~/\.ssm$/) \
+ ? FileUtils::cp_r("#{@env.path.pwd}#{doc_import_dir}/#{f[:f]}",
+ "#{@env.processing_path.processing_sisupod(@opt)}/doc/#{@opt.lng}/#{f[:n]}")
+ : FileUtils::cp_r("#{@env.path.pwd}/#{f[:f]}",
+ "#{@env.processing_path.processing_sisupod(@opt)}/doc/#{@opt.lng}/#{f[:n]}")
+ end
end
end #NB not all possibilies met, revisit, also in case of composite file may wish to add README
end
@@ -302,7 +315,7 @@ module SiSU_Doc
end
end
__END__
-question?: should you permit the packing of multiple files in single .gz ?
+question?: should you permit the packing of multiple documents in single .xz ?
open @opt.fns, parse file
extract from file content:
diff --git a/lib/sisu/v3/sysenv.rb b/lib/sisu/v3/sysenv.rb
index f699ee92..acc38507 100644
--- a/lib/sisu/v3/sysenv.rb
+++ b/lib/sisu/v3/sysenv.rb
@@ -1885,7 +1885,11 @@ WOK
r=Px[:lng_lst].join('|')
u=/.+?\/([^\/]+)(?:\/(?:#{r})$|$)/
base_stub=@sys.pwd.gsub(u,'\1')
- "#{path.webserv}/#{base_stub}"
+ if Dir.pwd =~/\/sisupod\/[^\/]+\/sisupod\/doc/
+ "#{path.webserv}/doc"
+ else
+ "#{path.webserv}/#{base_stub}"
+ end
end
def feed
(defined? @rc['webserv']['feed']) \