sisu 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. checksums.yaml +7 -0
  2. data/bin/sisu +367 -0
  3. data/bin/sisugem +367 -0
  4. data/data/sisu/image/arrow_next_red.png +0 -0
  5. data/data/sisu/image/arrow_prev_red.png +0 -0
  6. data/data/sisu/image/arrow_up_red.png +0 -0
  7. data/data/sisu/image/b_bluebell.png +0 -0
  8. data/data/sisu/image/b_doc.png +0 -0
  9. data/data/sisu/image/b_epub.png +0 -0
  10. data/data/sisu/image/b_home.png +0 -0
  11. data/data/sisu/image/b_info.png +0 -0
  12. data/data/sisu/image/b_odf.png +0 -0
  13. data/data/sisu/image/b_pdf.png +0 -0
  14. data/data/sisu/image/b_search.png +0 -0
  15. data/data/sisu/image/b_toc.png +0 -0
  16. data/data/sisu/image/bullet_08.png +0 -0
  17. data/data/sisu/image/bullet_09.png +0 -0
  18. data/data/sisu/image/bullet_10.png +0 -0
  19. data/data/sisu/image/bullet_11.png +0 -0
  20. data/data/sisu/image/bullet_12.png +0 -0
  21. data/data/sisu/image/bullet_doc.png +0 -0
  22. data/data/sisu/image/bullet_red.png +0 -0
  23. data/data/sisu/image/dot_clear.png +0 -0
  24. data/data/sisu/image/dot_white.png +0 -0
  25. data/data/sisu/image/gplv3.png +0 -0
  26. data/data/sisu/image/gplv3_free_software.png +0 -0
  27. data/data/sisu/image/next.png +0 -0
  28. data/data/sisu/image/previous.png +0 -0
  29. data/data/sisu/image/rb7.ico +0 -0
  30. data/data/sisu/image/sisu.png +0 -0
  31. data/data/sisu/image/toctoc.png +0 -0
  32. data/data/sisu/version.yml +5 -0
  33. data/lib/sisu.rb +94 -0
  34. data/lib/sisu/air.rb +80 -0
  35. data/lib/sisu/ao.rb +590 -0
  36. data/lib/sisu/ao_character_check.rb +102 -0
  37. data/lib/sisu/ao_composite.rb +286 -0
  38. data/lib/sisu/ao_doc_objects.rb +565 -0
  39. data/lib/sisu/ao_doc_str.rb +2269 -0
  40. data/lib/sisu/ao_endnotes.rb +136 -0
  41. data/lib/sisu/ao_expand_insertions.rb +514 -0
  42. data/lib/sisu/ao_hash_digest.rb +174 -0
  43. data/lib/sisu/ao_idx.rb +422 -0
  44. data/lib/sisu/ao_images.rb +187 -0
  45. data/lib/sisu/ao_metadata.rb +86 -0
  46. data/lib/sisu/ao_misc_arrange.rb +207 -0
  47. data/lib/sisu/ao_numbering.rb +720 -0
  48. data/lib/sisu/ao_persist.rb +194 -0
  49. data/lib/sisu/ao_references.rb +502 -0
  50. data/lib/sisu/ao_syntax.rb +640 -0
  51. data/lib/sisu/cgi.rb +84 -0
  52. data/lib/sisu/cgi_pgsql.rb +270 -0
  53. data/lib/sisu/cgi_sql_common.rb +986 -0
  54. data/lib/sisu/cgi_sqlite.rb +244 -0
  55. data/lib/sisu/conf.rb +287 -0
  56. data/lib/sisu/constants.rb +388 -0
  57. data/lib/sisu/css.rb +3484 -0
  58. data/lib/sisu/db_columns.rb +1997 -0
  59. data/lib/sisu/db_create.rb +689 -0
  60. data/lib/sisu/db_dbi.rb +90 -0
  61. data/lib/sisu/db_drop.rb +207 -0
  62. data/lib/sisu/db_import.rb +877 -0
  63. data/lib/sisu/db_indexes.rb +146 -0
  64. data/lib/sisu/db_load_tuple.rb +323 -0
  65. data/lib/sisu/db_remove.rb +182 -0
  66. data/lib/sisu/db_select.rb +230 -0
  67. data/lib/sisu/db_sqltxt.rb +173 -0
  68. data/lib/sisu/db_tests.rb +114 -0
  69. data/lib/sisu/dbi.rb +166 -0
  70. data/lib/sisu/dbi_discrete.rb +206 -0
  71. data/lib/sisu/digests.rb +306 -0
  72. data/lib/sisu/dp.rb +1606 -0
  73. data/lib/sisu/dp_identify_markup.rb +161 -0
  74. data/lib/sisu/dp_make.rb +668 -0
  75. data/lib/sisu/embedded.rb +149 -0
  76. data/lib/sisu/errors.rb +84 -0
  77. data/lib/sisu/generic_parts.rb +131 -0
  78. data/lib/sisu/git.rb +277 -0
  79. data/lib/sisu/html.rb +775 -0
  80. data/lib/sisu/html_concordance.rb +391 -0
  81. data/lib/sisu/html_format.rb +1348 -0
  82. data/lib/sisu/html_harvest.rb +109 -0
  83. data/lib/sisu/html_harvest_author_format.rb +111 -0
  84. data/lib/sisu/html_harvest_authors.rb +466 -0
  85. data/lib/sisu/html_harvest_topics.rb +893 -0
  86. data/lib/sisu/html_lite_shared.rb +324 -0
  87. data/lib/sisu/html_manifest.rb +1032 -0
  88. data/lib/sisu/html_minitoc.rb +230 -0
  89. data/lib/sisu/html_parts.rb +437 -0
  90. data/lib/sisu/html_persist.rb +237 -0
  91. data/lib/sisu/html_promo.rb +440 -0
  92. data/lib/sisu/html_scroll.rb +235 -0
  93. data/lib/sisu/html_segments.rb +716 -0
  94. data/lib/sisu/html_shared.rb +62 -0
  95. data/lib/sisu/html_table.rb +64 -0
  96. data/lib/sisu/html_tune.rb +301 -0
  97. data/lib/sisu/hub.rb +277 -0
  98. data/lib/sisu/hub_actions.rb +1122 -0
  99. data/lib/sisu/hub_loop_markup_files.rb +170 -0
  100. data/lib/sisu/hub_options.rb +1695 -0
  101. data/lib/sisu/i18n.rb +702 -0
  102. data/lib/sisu/manpage.rb +377 -0
  103. data/lib/sisu/manpage_format.rb +85 -0
  104. data/lib/sisu/object_munge.rb +307 -0
  105. data/lib/sisu/prog_text_translation.rb +1702 -0
  106. data/lib/sisu/qrcode.rb +754 -0
  107. data/lib/sisu/relaxng.rb +1153 -0
  108. data/lib/sisu/remote.rb +246 -0
  109. data/lib/sisu/rexml.rb +148 -0
  110. data/lib/sisu/se.rb +158 -0
  111. data/lib/sisu/se_cleanoutput.rb +145 -0
  112. data/lib/sisu/se_clear.rb +105 -0
  113. data/lib/sisu/se_createsite.rb +273 -0
  114. data/lib/sisu/se_css.rb +221 -0
  115. data/lib/sisu/se_date.rb +92 -0
  116. data/lib/sisu/se_db.rb +214 -0
  117. data/lib/sisu/se_envcall.rb +326 -0
  118. data/lib/sisu/se_file_op.rb +2758 -0
  119. data/lib/sisu/se_filemap.rb +247 -0
  120. data/lib/sisu/se_get_init.rb +238 -0
  121. data/lib/sisu/se_hub_particulars.rb +234 -0
  122. data/lib/sisu/se_info_env.rb +2179 -0
  123. data/lib/sisu/se_info_port.rb +70 -0
  124. data/lib/sisu/se_info_system.rb +202 -0
  125. data/lib/sisu/se_load.rb +108 -0
  126. data/lib/sisu/se_processing.rb +659 -0
  127. data/lib/sisu/se_programs.rb +394 -0
  128. data/lib/sisu/se_remotes.rb +553 -0
  129. data/lib/sisu/se_standardise_lang.rb +176 -0
  130. data/lib/sisu/se_version.rb +174 -0
  131. data/lib/sisu/shared_images.rb +137 -0
  132. data/lib/sisu/shared_markup_alt.rb +336 -0
  133. data/lib/sisu/shared_metadata.rb +1361 -0
  134. data/lib/sisu/shared_sem.rb +156 -0
  135. data/lib/sisu/sisu_thor_lib.rb +407 -0
  136. data/lib/sisu/sitemaps.rb +224 -0
  137. data/lib/sisu/src_kdissert_share.rb +102 -0
  138. data/lib/sisu/src_po4a_share.rb +309 -0
  139. data/lib/sisu/src_po4a_shelf.rb +1217 -0
  140. data/lib/sisu/src_po4a_shelf_set.rb +297 -0
  141. data/lib/sisu/src_po4a_sst_ao_sst.rb +893 -0
  142. data/lib/sisu/src_po4a_sst_ao_sst_set.rb +284 -0
  143. data/lib/sisu/src_po4a_sstm.rb +135 -0
  144. data/lib/sisu/src_shared.rb +347 -0
  145. data/lib/sisu/src_sisupod_make.rb +171 -0
  146. data/lib/sisu/src_sisupod_sstm.rb +109 -0
  147. data/lib/sisu/sst_convert_markup.rb +323 -0
  148. data/lib/sisu/sst_do_inline_footnotes.rb +440 -0
  149. data/lib/sisu/sst_from_xml.rb +178 -0
  150. data/lib/sisu/sst_identify_markup.rb +482 -0
  151. data/lib/sisu/sst_to_s_xml_sax.rb +471 -0
  152. data/lib/sisu/termsheet.rb +163 -0
  153. data/lib/sisu/texinfo.rb +430 -0
  154. data/lib/sisu/texinfo_format.rb +541 -0
  155. data/lib/sisu/texpdf.rb +1162 -0
  156. data/lib/sisu/texpdf_format.rb +1689 -0
  157. data/lib/sisu/texpdf_parts.rb +235 -0
  158. data/lib/sisu/txt_asciidoc.rb +354 -0
  159. data/lib/sisu/txt_asciidoc_decorate.rb +207 -0
  160. data/lib/sisu/txt_markdown.rb +389 -0
  161. data/lib/sisu/txt_markdown_decorate.rb +207 -0
  162. data/lib/sisu/txt_orgmode.rb +376 -0
  163. data/lib/sisu/txt_orgmode_decorate.rb +186 -0
  164. data/lib/sisu/txt_output.rb +86 -0
  165. data/lib/sisu/txt_plain.rb +410 -0
  166. data/lib/sisu/txt_plain_decorate.rb +189 -0
  167. data/lib/sisu/txt_read.rb +109 -0
  168. data/lib/sisu/txt_rst.rb +371 -0
  169. data/lib/sisu/txt_rst_decorate.rb +186 -0
  170. data/lib/sisu/txt_shared.rb +241 -0
  171. data/lib/sisu/txt_textile.rb +367 -0
  172. data/lib/sisu/txt_textile_decorate.rb +186 -0
  173. data/lib/sisu/update.rb +141 -0
  174. data/lib/sisu/urls.rb +696 -0
  175. data/lib/sisu/utils.rb +232 -0
  176. data/lib/sisu/utils_composite.rb +115 -0
  177. data/lib/sisu/utils_response.rb +114 -0
  178. data/lib/sisu/utils_screen_text_color.rb +472 -0
  179. data/lib/sisu/utils_spell.rb +99 -0
  180. data/lib/sisu/webrick.rb +191 -0
  181. data/lib/sisu/wikispeak.rb +375 -0
  182. data/lib/sisu/xhtml.rb +472 -0
  183. data/lib/sisu/xhtml_epub2.rb +890 -0
  184. data/lib/sisu/xhtml_epub2_concordance.rb +322 -0
  185. data/lib/sisu/xhtml_epub2_format.rb +2272 -0
  186. data/lib/sisu/xhtml_epub2_persist.rb +278 -0
  187. data/lib/sisu/xhtml_epub2_segments.rb +599 -0
  188. data/lib/sisu/xhtml_epub2_tune.rb +330 -0
  189. data/lib/sisu/xhtml_parts.rb +183 -0
  190. data/lib/sisu/xhtml_shared.rb +62 -0
  191. data/lib/sisu/xhtml_table.rb +97 -0
  192. data/lib/sisu/xml_docbook5.rb +376 -0
  193. data/lib/sisu/xml_dom.rb +624 -0
  194. data/lib/sisu/xml_fictionbook2.rb +389 -0
  195. data/lib/sisu/xml_format.rb +865 -0
  196. data/lib/sisu/xml_md_oai_pmh_dc.rb +229 -0
  197. data/lib/sisu/xml_odf_odt.rb +887 -0
  198. data/lib/sisu/xml_odf_odt_format.rb +674 -0
  199. data/lib/sisu/xml_parts.rb +191 -0
  200. data/lib/sisu/xml_persist.rb +126 -0
  201. data/lib/sisu/xml_sax.rb +521 -0
  202. data/lib/sisu/xml_scaffold_structure_collapsed.rb +198 -0
  203. data/lib/sisu/xml_scaffold_structure_sisu.rb +201 -0
  204. data/lib/sisu/xml_shared.rb +665 -0
  205. data/lib/sisu/xml_tables.rb +261 -0
  206. data/lib/sisu/zap.rb +90 -0
  207. metadata +251 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 18bd00a4b80ceebf2fe0f79c8b231a22b5352f9b
4
+ data.tar.gz: 053d72c0dbb92e47f87581ba2416925f63907e4d
5
+ SHA512:
6
+ metadata.gz: cf5b3acd8b1dd03cbbedd9e3e615fec972477174563ad0f27b60b8a8ed03914262a0e6d81c77ae03ddb805d5f3be77e7040ac72e0136bf6f6c9107159d81a302
7
+ data.tar.gz: cc379aaae9efc40470efaa3dd7dfadba3a131a2d4662d60d0ed78d5438f2198d36b4aa4b40937936ff662ea332c655fc7f911b50e6fcaea5cf0ee6e41c2a0d6f
data/bin/sisu ADDED
@@ -0,0 +1,367 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+ #SiSU: copyright (C) 1997 - 2015 Ralph Amissah; License GPL 3, see appended program information
4
+ class Orient
5
+ require 'singleton'
6
+ include Singleton
7
+ def initialize #(called_as_,argv)
8
+ super()
9
+ @called_as,@argv=$0,$*
10
+ end
11
+ def version_major
12
+ '7'
13
+ end
14
+ def sisu_called_from_directory
15
+ @@sisu_called_from_directory ||= Dir.pwd
16
+ end
17
+ def sisu_run_from?
18
+ if processing.called_as == processing.sisu_runtime_path \
19
+ and File.dirname(processing.sisu_runtime_path) != RbConfig::CONFIG['bindir']
20
+ :full_path_to_sisu_bin_in_sisu_dir_tree
21
+ elsif processing.sisu_runtime_path =~/\/gems\// \
22
+ and processing.sisu_runtime_path \
23
+ =~ /\/sisu-(?:\d+|[a-z])\.(?:\d+|[a-z])\.(?:\d+|[a-z])\//
24
+ :gem_install
25
+ else
26
+ :system_install
27
+ end
28
+ end
29
+ def processing
30
+ def called_as
31
+ @called_as
32
+ end
33
+ def argv
34
+ @argv
35
+ end
36
+ def argv_str
37
+ argv.inspect
38
+ end
39
+ def sisu_runtime_path
40
+ __FILE__
41
+ end
42
+ def bin_file_regex
43
+ %r{\bsisu$}
44
+ end
45
+ def gem_regex
46
+ %r{\/sisu-(?:\d+|[a-z])\.(?:\d+|[a-z])\.(?:\d+|[a-z])\/}
47
+ end
48
+ self
49
+ end
50
+ def sisu_lib
51
+ 'sisu'
52
+ end
53
+ def sisu_version_info_path
54
+ "#{sisu_path_base_system_data}/version.yml"
55
+ end
56
+ def paths_set
57
+ if sisu_run_from? == :system_install \
58
+ and processing.called_as \
59
+ =~ /^#{RbConfig::CONFIG['bindir']}\/sisu$/
60
+ :set_path_system
61
+ elsif sisu_run_from? == :full_path_to_sisu_bin_in_sisu_dir_tree \
62
+ and processing.called_as \
63
+ !~ /^#{RbConfig::CONFIG['bindir']}\/sisu$/ \
64
+ && File.expand_path(processing.called_as) \
65
+ =~ /bin\/sisu$/ \
66
+ && FileTest.file?(processing.called_as)
67
+ :set_dir_tree_full_path
68
+ elsif sisu_run_from? ==:gem_install
69
+ :set_path_gem
70
+ else nil
71
+ end
72
+ end
73
+ def git_version
74
+ if sisu_run_from? == :full_path_to_sisu_bin_in_sisu_dir_tree \
75
+ && FileTest.file?('/usr/bin/git') \
76
+ && FileTest.directory?(processing.sisu_runtime_path.gsub(/\/bin\/sisu\S*/,'/.git'))
77
+ bin_base=processing.sisu_runtime_path.gsub(/\/bin\/sisu\S*/,'')
78
+ pwd=Dir.pwd
79
+ Dir.chdir(bin_base)
80
+ x=`git describe --long --tags 2>&1`.strip.
81
+ gsub(/^[a-z_-]*([0-9.]+)/,'\1').
82
+ gsub(/([^-]*-g)/,'r\1').
83
+ gsub(/-/,'.')
84
+ x=(x=~/^[0-9]+\.[0-9]+\.[0-9]+\.r[0-9]+\.g[0-9a-f]{7}/) \
85
+ ? x
86
+ : nil
87
+ Dir.chdir(pwd)
88
+ x
89
+ else nil
90
+ end
91
+ end
92
+ def sisu_path_base
93
+ case paths_set
94
+ when :set_path_system
95
+ RbConfig::CONFIG['datadir'] + '/sisu'
96
+ when :set_dir_tree_full_path
97
+ File.expand_path(processing.called_as).
98
+ sub(/\/bin\/sisu$/,'')
99
+ when :set_path_gem
100
+ Gem::Specification.find_by_name("sisu").gem_dir
101
+ else nil
102
+ end
103
+ end
104
+ def sisu_path_base_system_data
105
+ case paths_set
106
+ when :set_path_system
107
+ RbConfig::CONFIG['datadir'] + '/sisu'
108
+ when :set_dir_tree_full_path
109
+ File.expand_path(processing.called_as).
110
+ sub(/\/bin\/sisu$/,'/data/sisu')
111
+ when :set_path_gem
112
+ Gem::Specification.find_by_name("sisu").gem_dir + '/data/sisu'
113
+ else nil
114
+ end
115
+ end
116
+ def sisu_this_lib
117
+ if processing.sisu_runtime_path =~/\/gems\// \
118
+ and processing.sisu_runtime_path \
119
+ =~ /\/sisu-(?:\d+|[a-z])\.(?:\d+|[a-z])\.(?:\d+|[a-z])\//
120
+ # gem sought
121
+ processing.sisu_runtime_path.
122
+ gsub(/\/bin\/sisu[a-z0-7_-]*$/,'/lib/sisu')
123
+ elsif (processing.called_as \
124
+ !~ /^#{RbConfig::CONFIG['bindir']}\/sisu$/)
125
+ # called off file system, project directory tree
126
+ File.expand_path(processing.called_as).
127
+ sub(/bin\/sisu\S*/,'lib/sisu')
128
+ else
129
+ # distro installation
130
+ sisulib={
131
+ vendorlib: RbConfig::CONFIG['vendordir'] + '/sisu',
132
+ sitelib: RbConfig::CONFIG['sitelibdir'] + '/sisu',
133
+ }
134
+ if FileTest.directory?(sisulib[:sitelib]) # Arch Linux; Debian local
135
+ sisulib[:sitelib]
136
+ elsif FileTest.directory?(sisulib[:vendorlib]) # Debian GNU Linux system
137
+ sisulib[:vendorlib]
138
+ else 'sisu' # assume lib paths work
139
+ end
140
+ end
141
+ end
142
+ def sisu_this_lib_
143
+ if (processing.called_as \
144
+ !~ /^#{RbConfig::CONFIG['bindir']}\/sisu$/)
145
+ File.expand_path(processing.called_as).
146
+ sub(/bin\/sisu\S*/,'lib/sisu')
147
+ else 'sisu'
148
+ end
149
+ end
150
+ def language_list
151
+ def codes
152
+ %w[am bg bn br ca cs cy da de el en eo es et eu fi fr ga gl he hi hr hy ia is it ja ko la lo lt lv ml mr nl nn no oc pl pt pt_BR ro ru sa se sk sl sq sr sv ta te th tk tr uk ur us vi zh]
153
+ end
154
+ def regex
155
+ codes.join('|')
156
+ end
157
+ self
158
+ end
159
+ def sisu_is
160
+ def version_major?
161
+ version_major
162
+ end
163
+ def runtime_path?
164
+ processing.sisu_runtime_path
165
+ end
166
+ def runtime_type?
167
+ sisu_run_from?
168
+ end
169
+ def called_from?
170
+ sisu_called_from_directory
171
+ end
172
+ def path_base?
173
+ sisu_path_base
174
+ end
175
+ def path_base_system_data?
176
+ sisu_path_base_system_data
177
+ end
178
+ def version_info_path?
179
+ sisu_version_info_path
180
+ end
181
+ def language_list?
182
+ language_list.codes
183
+ end
184
+ def language_list_regex?
185
+ language_list.regex
186
+ end
187
+ def git_version_info?
188
+ git_version
189
+ end
190
+ def runtime?
191
+ {
192
+ call_path: called_from?,
193
+ runtime_path: runtime_path?,
194
+ runtime_type: runtime_type?,
195
+ }
196
+ end
197
+ self
198
+ end
199
+ def get_processing_info
200
+ def sortout
201
+ unless @clm_pf
202
+ processing_files={}
203
+ command_line_modifiers=[]
204
+ processing.argv.each do |x|
205
+ if x =~/^-+/
206
+ command_line_modifiers << x
207
+ elsif x =~/\.ss[tm]/
208
+ if x =~/\//
209
+ markup_path,markup_file =
210
+ (/(\S+\/)((?:#{language_list.regex})?[^\/]+)/).
211
+ match(x)[1,2]
212
+ if not processing_files[markup_path]
213
+ processing_files[markup_path]=[]
214
+ end
215
+ processing_files[markup_path] << markup_file
216
+ else
217
+ if not processing_files['./']
218
+ processing_files['./']=[]
219
+ end
220
+ processing_files['./'] << x
221
+ end
222
+ end
223
+ end
224
+ end
225
+ @clm_pf ||={
226
+ command_line_modifiers: command_line_modifiers,
227
+ processing_files: processing_files,
228
+ }
229
+ end
230
+ def command_line_modifiers
231
+ sortout[:command_line_modifiers]
232
+ end
233
+ def processing_files
234
+ sortout[:processing_files]
235
+ end
236
+ self
237
+ end
238
+ def control
239
+ require sisu_this_lib
240
+ sisu_called_from_directory
241
+ begin
242
+ if get_processing_info.processing_files.length > 0
243
+ get_processing_info.processing_files.each_pair do |markup_dir,markup_file|
244
+ begin
245
+ $sisu_document_markup_directory=markup_dir.gsub(/\/$/,'')
246
+ argv_sub=get_processing_info.command_line_modifiers + markup_file
247
+ if FileTest.directory?(markup_dir)
248
+ system("cd #{markup_dir}")
249
+ Dir.chdir(markup_dir)
250
+ $sisu_document_markup_directory_base_fixed_path=
251
+ Dir.pwd.gsub(/\/(?:#{language_list.regex})$/,'')
252
+ SiSU_libs::CallHubMaster.new(argv_sub,sisu_is.runtime?)
253
+ elsif markup_dir =~/https?:/
254
+ markup_file.each do |mf|
255
+ (FileTest.file?(mf)) \
256
+ ? (puts 'requested remote file already exists in current directory ' \
257
+ + Dir.pwd + ' using ' + mf)
258
+ : (system("wget #{markup_dir}/#{mf}"))
259
+ end
260
+ $sisu_document_markup_directory_base_fixed_path=
261
+ Dir.pwd.gsub(/\/(?:#{language_list.regex})$/,'')
262
+ argv_sub=command_line_modifiers + markup_file
263
+ SiSU_libs::CallHubMaster.new(argv_sub,sisu_is.runtime?)
264
+ else p "Error directory specified #{markup_dir} not found"
265
+ end
266
+ ensure
267
+ Dir.chdir(sisu_called_from_directory)
268
+ system("cd #{sisu_called_from_directory}")
269
+ end
270
+ end
271
+ else
272
+ $sisu_document_markup_directory=Dir.pwd.gsub(/\/$/,'')
273
+ $sisu_document_markup_directory_base_fixed_path=
274
+ Dir.pwd.gsub(/(^|\/)(?:#{language_list.regex})$/,'')
275
+ SiSU_libs::CallHubMaster.new(processing.argv,sisu_is.runtime?)
276
+ end
277
+ rescue
278
+ ensure
279
+ SiSU_libs::HubClose.new(@argv,sisu_called_from_directory)
280
+ Dir.chdir(sisu_called_from_directory)
281
+ system("cd #{sisu_called_from_directory}")
282
+ end
283
+ end
284
+ end
285
+ #% sisu select source & branch, begin
286
+ $VERBOSE=nil
287
+ require 'rbconfig'
288
+ begin
289
+ require 'singleton'
290
+ s=Orient.instance
291
+ SiSU_is=s.sisu_is
292
+ s.control
293
+ rescue #% -
294
+ STDERR.puts 'ERROR'
295
+ STDERR.puts $!
296
+ STDERR.puts $@
297
+ puts %{
298
+ #{%x{ruby -v}.strip.to_s}
299
+ #{RUBY_VERSION}
300
+ ruby version: #{RbConfig::CONFIG['RUBY_PROGRAM_VERSION']}p#{RbConfig::CONFIG['PATCHLEVEL']}
301
+ ruby named: #{RbConfig::CONFIG['ruby_version']}
302
+ rubylib: #{RbConfig::CONFIG['rubylibdir']}
303
+ vendor lib #{RbConfig::CONFIG['vendordir']}
304
+ site lib local: #{RbConfig::CONFIG['sitelibdir']}
305
+ gem dir: #{Gem.dir}
306
+ gem path: #{Gem.path}
307
+ }
308
+ system(%{echo "
309
+ system RUBYPATH: ${RUBYPATH}
310
+ system RUBYLIB: ${RUBYLIB}
311
+ "})
312
+ end
313
+ __END__
314
+
315
+ * Name: SiSU
316
+
317
+ ** Description: documents, structuring, processing, publishing, search
318
+
319
+ ** Author: Ralph Amissah
320
+ <ralph@amissah.com>
321
+ <ralph.amissah@gmail.com>
322
+
323
+ ** Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
324
+ 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Ralph Amissah,
325
+ All Rights Reserved.
326
+
327
+ ** License: GPL 3 or later:
328
+
329
+ SiSU, a framework for document structuring, publishing and search
330
+
331
+ Copyright (C) Ralph Amissah
332
+
333
+ This program is free software: you can redistribute it and/or modify it
334
+ under the terms of the GNU General Public License as published by the Free
335
+ Software Foundation, either version 3 of the License, or (at your option)
336
+ any later version.
337
+
338
+ This program is distributed in the hope that it will be useful, but WITHOUT
339
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
340
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
341
+ more details.
342
+
343
+ You should have received a copy of the GNU General Public License along with
344
+ this program. If not, see <http://www.gnu.org/licenses/>.
345
+
346
+ If you have Internet connection, the latest version of the GPL should be
347
+ available at these locations:
348
+ <http://www.fsf.org/licensing/licenses/gpl.html>
349
+ <http://www.gnu.org/licenses/gpl.html>
350
+
351
+ <http://www.sisudoc.org/sisu/en/manifest/gpl.fsf.html>
352
+
353
+ ** SiSU uses:
354
+ * Standard SiSU markup syntax,
355
+ * Standard SiSU meta-markup syntax, and the
356
+ * Standard SiSU object citation numbering and system
357
+
358
+ ** Hompages:
359
+ <http://www.jus.uio.no/sisu>
360
+ <http://www.sisudoc.org>
361
+
362
+ ** Download:
363
+ <http://www.sisudoc.org/sisu/en/SiSU/download.html>
364
+
365
+ ** Git
366
+ <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=summary>
367
+ <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=bin/sisu;hb=HEAD>
data/bin/sisugem ADDED
@@ -0,0 +1,367 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+ #SiSU: copyright (C) 1997 - 2015 Ralph Amissah; License GPL 3, see appended program information
4
+ class Orient
5
+ require 'singleton'
6
+ include Singleton
7
+ def initialize #(called_as_,argv)
8
+ super()
9
+ @called_as,@argv=$0,$*
10
+ end
11
+ def version_major
12
+ '7'
13
+ end
14
+ def sisu_called_from_directory
15
+ @@sisu_called_from_directory ||= Dir.pwd
16
+ end
17
+ def sisu_run_from?
18
+ if processing.called_as == processing.sisu_runtime_path \
19
+ and File.dirname(processing.sisu_runtime_path) != RbConfig::CONFIG['bindir']
20
+ :full_path_to_sisu_bin_in_sisu_dir_tree
21
+ elsif processing.sisu_runtime_path =~/\/gems\// \
22
+ and processing.sisu_runtime_path \
23
+ =~ /\/sisu-(?:\d+|[a-z])\.(?:\d+|[a-z])\.(?:\d+|[a-z])\//
24
+ :gem_install
25
+ else
26
+ :system_install
27
+ end
28
+ end
29
+ def processing
30
+ def called_as
31
+ @called_as
32
+ end
33
+ def argv
34
+ @argv
35
+ end
36
+ def argv_str
37
+ argv.inspect
38
+ end
39
+ def sisu_runtime_path
40
+ __FILE__
41
+ end
42
+ def bin_file_regex
43
+ %r{\bsisu$}
44
+ end
45
+ def gem_regex
46
+ %r{\/sisu-(?:\d+|[a-z])\.(?:\d+|[a-z])\.(?:\d+|[a-z])\/}
47
+ end
48
+ self
49
+ end
50
+ def sisu_lib
51
+ 'sisu'
52
+ end
53
+ def sisu_version_info_path
54
+ "#{sisu_path_base_system_data}/version.yml"
55
+ end
56
+ def paths_set
57
+ if sisu_run_from? == :system_install \
58
+ and processing.called_as \
59
+ =~ /^#{RbConfig::CONFIG['bindir']}\/sisu$/
60
+ :set_path_system
61
+ elsif sisu_run_from? == :full_path_to_sisu_bin_in_sisu_dir_tree \
62
+ and processing.called_as \
63
+ !~ /^#{RbConfig::CONFIG['bindir']}\/sisu$/ \
64
+ && File.expand_path(processing.called_as) \
65
+ =~ /bin\/sisu$/ \
66
+ && FileTest.file?(processing.called_as)
67
+ :set_dir_tree_full_path
68
+ elsif sisu_run_from? ==:gem_install
69
+ :set_path_gem
70
+ else nil
71
+ end
72
+ end
73
+ def git_version
74
+ if sisu_run_from? == :full_path_to_sisu_bin_in_sisu_dir_tree \
75
+ && FileTest.file?('/usr/bin/git') \
76
+ && FileTest.directory?(processing.sisu_runtime_path.gsub(/\/bin\/sisu\S*/,'/.git'))
77
+ bin_base=processing.sisu_runtime_path.gsub(/\/bin\/sisu\S*/,'')
78
+ pwd=Dir.pwd
79
+ Dir.chdir(bin_base)
80
+ x=`git describe --long --tags 2>&1`.strip.
81
+ gsub(/^[a-z_-]*([0-9.]+)/,'\1').
82
+ gsub(/([^-]*-g)/,'r\1').
83
+ gsub(/-/,'.')
84
+ x=(x=~/^[0-9]+\.[0-9]+\.[0-9]+\.r[0-9]+\.g[0-9a-f]{7}/) \
85
+ ? x
86
+ : nil
87
+ Dir.chdir(pwd)
88
+ x
89
+ else nil
90
+ end
91
+ end
92
+ def sisu_path_base
93
+ case paths_set
94
+ when :set_path_system
95
+ RbConfig::CONFIG['datadir'] + '/sisu'
96
+ when :set_dir_tree_full_path
97
+ File.expand_path(processing.called_as).
98
+ sub(/\/bin\/sisu$/,'')
99
+ when :set_path_gem
100
+ Gem::Specification.find_by_name("sisu").gem_dir
101
+ else nil
102
+ end
103
+ end
104
+ def sisu_path_base_system_data
105
+ case paths_set
106
+ when :set_path_system
107
+ RbConfig::CONFIG['datadir'] + '/sisu'
108
+ when :set_dir_tree_full_path
109
+ File.expand_path(processing.called_as).
110
+ sub(/\/bin\/sisu$/,'/data/sisu')
111
+ when :set_path_gem
112
+ Gem::Specification.find_by_name("sisu").gem_dir + '/data/sisu'
113
+ else nil
114
+ end
115
+ end
116
+ def sisu_this_lib
117
+ if processing.sisu_runtime_path =~/\/gems\// \
118
+ and processing.sisu_runtime_path \
119
+ =~ /\/sisu-(?:\d+|[a-z])\.(?:\d+|[a-z])\.(?:\d+|[a-z])\//
120
+ # gem sought
121
+ processing.sisu_runtime_path.
122
+ gsub(/\/bin\/sisu[a-z0-7_-]*$/,'/lib/sisu')
123
+ elsif (processing.called_as \
124
+ !~ /^#{RbConfig::CONFIG['bindir']}\/sisu$/)
125
+ # called off file system, project directory tree
126
+ File.expand_path(processing.called_as).
127
+ sub(/bin\/sisu\S*/,'lib/sisu')
128
+ else
129
+ # distro installation
130
+ sisulib={
131
+ vendorlib: RbConfig::CONFIG['vendordir'] + '/sisu',
132
+ sitelib: RbConfig::CONFIG['sitelibdir'] + '/sisu',
133
+ }
134
+ if FileTest.directory?(sisulib[:sitelib]) # Arch Linux; Debian local
135
+ sisulib[:sitelib]
136
+ elsif FileTest.directory?(sisulib[:vendorlib]) # Debian GNU Linux system
137
+ sisulib[:vendorlib]
138
+ else 'sisu' # assume lib paths work
139
+ end
140
+ end
141
+ end
142
+ def sisu_this_lib_
143
+ if (processing.called_as \
144
+ !~ /^#{RbConfig::CONFIG['bindir']}\/sisu$/)
145
+ File.expand_path(processing.called_as).
146
+ sub(/bin\/sisu\S*/,'lib/sisu')
147
+ else 'sisu'
148
+ end
149
+ end
150
+ def language_list
151
+ def codes
152
+ %w[am bg bn br ca cs cy da de el en eo es et eu fi fr ga gl he hi hr hy ia is it ja ko la lo lt lv ml mr nl nn no oc pl pt pt_BR ro ru sa se sk sl sq sr sv ta te th tk tr uk ur us vi zh]
153
+ end
154
+ def regex
155
+ codes.join('|')
156
+ end
157
+ self
158
+ end
159
+ def sisu_is
160
+ def version_major?
161
+ version_major
162
+ end
163
+ def runtime_path?
164
+ processing.sisu_runtime_path
165
+ end
166
+ def runtime_type?
167
+ sisu_run_from?
168
+ end
169
+ def called_from?
170
+ sisu_called_from_directory
171
+ end
172
+ def path_base?
173
+ sisu_path_base
174
+ end
175
+ def path_base_system_data?
176
+ sisu_path_base_system_data
177
+ end
178
+ def version_info_path?
179
+ sisu_version_info_path
180
+ end
181
+ def language_list?
182
+ language_list.codes
183
+ end
184
+ def language_list_regex?
185
+ language_list.regex
186
+ end
187
+ def git_version_info?
188
+ git_version
189
+ end
190
+ def runtime?
191
+ {
192
+ call_path: called_from?,
193
+ runtime_path: runtime_path?,
194
+ runtime_type: runtime_type?,
195
+ }
196
+ end
197
+ self
198
+ end
199
+ def get_processing_info
200
+ def sortout
201
+ unless @clm_pf
202
+ processing_files={}
203
+ command_line_modifiers=[]
204
+ processing.argv.each do |x|
205
+ if x =~/^-+/
206
+ command_line_modifiers << x
207
+ elsif x =~/\.ss[tm]/
208
+ if x =~/\//
209
+ markup_path,markup_file =
210
+ (/(\S+\/)((?:#{language_list.regex})?[^\/]+)/).
211
+ match(x)[1,2]
212
+ if not processing_files[markup_path]
213
+ processing_files[markup_path]=[]
214
+ end
215
+ processing_files[markup_path] << markup_file
216
+ else
217
+ if not processing_files['./']
218
+ processing_files['./']=[]
219
+ end
220
+ processing_files['./'] << x
221
+ end
222
+ end
223
+ end
224
+ end
225
+ @clm_pf ||={
226
+ command_line_modifiers: command_line_modifiers,
227
+ processing_files: processing_files,
228
+ }
229
+ end
230
+ def command_line_modifiers
231
+ sortout[:command_line_modifiers]
232
+ end
233
+ def processing_files
234
+ sortout[:processing_files]
235
+ end
236
+ self
237
+ end
238
+ def control
239
+ require sisu_this_lib
240
+ sisu_called_from_directory
241
+ begin
242
+ if get_processing_info.processing_files.length > 0
243
+ get_processing_info.processing_files.each_pair do |markup_dir,markup_file|
244
+ begin
245
+ $sisu_document_markup_directory=markup_dir.gsub(/\/$/,'')
246
+ argv_sub=get_processing_info.command_line_modifiers + markup_file
247
+ if FileTest.directory?(markup_dir)
248
+ system("cd #{markup_dir}")
249
+ Dir.chdir(markup_dir)
250
+ $sisu_document_markup_directory_base_fixed_path=
251
+ Dir.pwd.gsub(/\/(?:#{language_list.regex})$/,'')
252
+ SiSU_libs::CallHubMaster.new(argv_sub,sisu_is.runtime?)
253
+ elsif markup_dir =~/https?:/
254
+ markup_file.each do |mf|
255
+ (FileTest.file?(mf)) \
256
+ ? (puts 'requested remote file already exists in current directory ' \
257
+ + Dir.pwd + ' using ' + mf)
258
+ : (system("wget #{markup_dir}/#{mf}"))
259
+ end
260
+ $sisu_document_markup_directory_base_fixed_path=
261
+ Dir.pwd.gsub(/\/(?:#{language_list.regex})$/,'')
262
+ argv_sub=command_line_modifiers + markup_file
263
+ SiSU_libs::CallHubMaster.new(argv_sub,sisu_is.runtime?)
264
+ else p "Error directory specified #{markup_dir} not found"
265
+ end
266
+ ensure
267
+ Dir.chdir(sisu_called_from_directory)
268
+ system("cd #{sisu_called_from_directory}")
269
+ end
270
+ end
271
+ else
272
+ $sisu_document_markup_directory=Dir.pwd.gsub(/\/$/,'')
273
+ $sisu_document_markup_directory_base_fixed_path=
274
+ Dir.pwd.gsub(/(^|\/)(?:#{language_list.regex})$/,'')
275
+ SiSU_libs::CallHubMaster.new(processing.argv,sisu_is.runtime?)
276
+ end
277
+ rescue
278
+ ensure
279
+ SiSU_libs::HubClose.new(@argv,sisu_called_from_directory)
280
+ Dir.chdir(sisu_called_from_directory)
281
+ system("cd #{sisu_called_from_directory}")
282
+ end
283
+ end
284
+ end
285
+ #% sisu select source & branch, begin
286
+ $VERBOSE=nil
287
+ require 'rbconfig'
288
+ begin
289
+ require 'singleton'
290
+ s=Orient.instance
291
+ SiSU_is=s.sisu_is
292
+ s.control
293
+ rescue #% -
294
+ STDERR.puts 'ERROR'
295
+ STDERR.puts $!
296
+ STDERR.puts $@
297
+ puts %{
298
+ #{%x{ruby -v}.strip.to_s}
299
+ #{RUBY_VERSION}
300
+ ruby version: #{RbConfig::CONFIG['RUBY_PROGRAM_VERSION']}p#{RbConfig::CONFIG['PATCHLEVEL']}
301
+ ruby named: #{RbConfig::CONFIG['ruby_version']}
302
+ rubylib: #{RbConfig::CONFIG['rubylibdir']}
303
+ vendor lib #{RbConfig::CONFIG['vendordir']}
304
+ site lib local: #{RbConfig::CONFIG['sitelibdir']}
305
+ gem dir: #{Gem.dir}
306
+ gem path: #{Gem.path}
307
+ }
308
+ system(%{echo "
309
+ system RUBYPATH: ${RUBYPATH}
310
+ system RUBYLIB: ${RUBYLIB}
311
+ "})
312
+ end
313
+ __END__
314
+
315
+ * Name: SiSU
316
+
317
+ ** Description: documents, structuring, processing, publishing, search
318
+
319
+ ** Author: Ralph Amissah
320
+ <ralph@amissah.com>
321
+ <ralph.amissah@gmail.com>
322
+
323
+ ** Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
324
+ 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Ralph Amissah,
325
+ All Rights Reserved.
326
+
327
+ ** License: GPL 3 or later:
328
+
329
+ SiSU, a framework for document structuring, publishing and search
330
+
331
+ Copyright (C) Ralph Amissah
332
+
333
+ This program is free software: you can redistribute it and/or modify it
334
+ under the terms of the GNU General Public License as published by the Free
335
+ Software Foundation, either version 3 of the License, or (at your option)
336
+ any later version.
337
+
338
+ This program is distributed in the hope that it will be useful, but WITHOUT
339
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
340
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
341
+ more details.
342
+
343
+ You should have received a copy of the GNU General Public License along with
344
+ this program. If not, see <http://www.gnu.org/licenses/>.
345
+
346
+ If you have Internet connection, the latest version of the GPL should be
347
+ available at these locations:
348
+ <http://www.fsf.org/licensing/licenses/gpl.html>
349
+ <http://www.gnu.org/licenses/gpl.html>
350
+
351
+ <http://www.sisudoc.org/sisu/en/manifest/gpl.fsf.html>
352
+
353
+ ** SiSU uses:
354
+ * Standard SiSU markup syntax,
355
+ * Standard SiSU meta-markup syntax, and the
356
+ * Standard SiSU object citation numbering and system
357
+
358
+ ** Hompages:
359
+ <http://www.jus.uio.no/sisu>
360
+ <http://www.sisudoc.org>
361
+
362
+ ** Download:
363
+ <http://www.sisudoc.org/sisu/en/SiSU/download.html>
364
+
365
+ ** Git
366
+ <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=summary>
367
+ <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=bin/sisu;hb=HEAD>