dyndoc-ruby 1.4.0 → 1.4.6

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 874ff2bfd3cfd0a3cbc30680e7ddadb68be8a3c417d85582e05c699855a96cec
4
- data.tar.gz: c47643d6023b0c525a23944127f578eb4c519cc19d35302deb7fdc4724f248f7
3
+ metadata.gz: 8ca881ea3393dc076e5e9c0906d7b1b6ada9e7e137ed7b51c6e2747d87e0eab5
4
+ data.tar.gz: 0d70c629074f76cffc709ead2f8672676f5f301c63addca578307ed7656ddca0
5
5
  SHA512:
6
- metadata.gz: 43fc0de9ab39f1dbee93acd2d3bedc272b21b154227dfe5a3c2c943816ae3f23a0e1b8372b2fd773181c5bd033d022d681900baf88c3c1ab64d686ca8ad698ad
7
- data.tar.gz: 0ead492497f229e9b37b04196336e3910db2611c1af3bd9d8fcf23a2943c7703b3e9def436ede1b3c0753e32670931dd7c0bc08bbb7eda3db40b3c39abbbd301
6
+ metadata.gz: 057d227514732b85c02080275d55fae7c1523c93df7e397ba6d559709cbdce21e17c46770fbf4a3370fb78e76ec6ab710fbaddb9d903031f41cc444340833751
7
+ data.tar.gz: 6f0723b13c1f65ca9fd028b18c05d312a9f0459c571ab191a6c8043059f5c3b88b176bffff10eb7a28f7c93f4f1e4823b835f9b5c6ae0518555ac48212204044
data/bin/dyn-ctl CHANGED
@@ -6,6 +6,15 @@ SRVS=["dyn-srv","dyn-html","dyn-http","dyn-task"]
6
6
  CMD="dyn-ctl"
7
7
  DYNCTL_PLIST=File.expand_path("~/Library/LaunchAgents/local.dyn-ctl.plist")
8
8
 
9
+ def srvs?(srvs)
10
+ if srvs
11
+ srvs=srvs.split(",",-1).map{|e| "dyn-"+e}
12
+ else
13
+ srvs=SRVS.dup
14
+ end
15
+ return srvs
16
+ end
17
+
9
18
  case (ARGV[0] || "start").downcase
10
19
  when "init"
11
20
  rodasrv=File.expand_path("~/RodaSrv")
@@ -58,7 +67,8 @@ when "unwatch"
58
67
  end
59
68
 
60
69
  when "start"
61
- status=SRVS.map do |srv|
70
+ srvs=srvs?(ARGV[1])
71
+ status=srvs.map do |srv|
62
72
  `#{srv} status`.empty?
63
73
  end
64
74
  if status.any?
@@ -69,16 +79,18 @@ when "start"
69
79
  `osascript -e '#{cmd_to_display}'`
70
80
  end
71
81
  puts message
72
- status.each_with_index { |e,i| `#{SRVS[i]} start` if e }
82
+ status.each_with_index { |e,i| `#{srvs[i]} start` if e }
73
83
  end
74
84
 
75
85
  when "stop"
76
- SRVS.each {|srv| `#{srv} stop`}
86
+ srvs=srvs?(ARGV[1])
87
+ srvs.each {|srv| `#{srv} stop`}
77
88
 
78
89
  when "status"
79
- SRVS.each {|srv| puts srv+(`#{srv} status`.empty? ? "stopped" : "running")}
90
+ srvs=srvs?(ARGV[1])
91
+ srvs.each {|srv| puts srv+"->"+(`#{srv} status`.empty? ? "stopped" : "running")}
80
92
 
81
- when "new"
93
+ when "new"
82
94
 
83
95
  if RUBY_PLATFORM =~ /darwin/
84
96
  ## launchctl seems to work but actually: dyn-srv, dyn-html and dyn-http started but noit properly
data/bin/dyn-rebase-url CHANGED
@@ -29,7 +29,7 @@ if opts[:help]
29
29
  puts "rebase_url [--dir] [--from <from_path>] [--to <to_path>] [--ext <extension>] file"
30
30
  else
31
31
  ext=opts[:ext] ? "."+opts[:ext] : ""
32
- files=opts[:dir] ? Dir[File.join(file,"*"+ext)] : [file]
32
+ files=opts[:"--dir"] ? Dir[File.join(file,"*"+ext)] : [file]
33
33
  ##p files
34
34
  ##p opts
35
35
  files.each do |filename|
@@ -1,4 +1,5 @@
1
1
  require "socket"
2
+ require 'dyndoc-servers-cfg'
2
3
 
3
4
  module Dyndoc
4
5
 
@@ -11,7 +12,7 @@ module Dyndoc
11
12
  ## reinit is an array
12
13
  def initialize(cmd,tmpl_filename,addr="127.0.0.1",reinit=[],port=7777)
13
14
 
14
- @addr,@port,@cmd,@tmpl_filename=addr,port,cmd,tmpl_filename
15
+ @addr,@port,@cmd,@tmpl_filename=addr,DyndocServers.dyn_cli_port? || port,cmd,tmpl_filename
15
16
  ##p [:tmpl_filename,@tmpl_filename,@cmd]
16
17
  ## The layout needs to be reintailized for new dyndoc file but not for the layout (of course)!
17
18
  dyndoc_cmd="dyndoc"
@@ -1,6 +1,7 @@
1
1
  require 'socket' # Get sockets from stdlib
2
2
  require "dyndoc-core"
3
3
  require 'dyndoc-converter'
4
+ require 'dyndoc-servers-cfg'
4
5
 
5
6
 
6
7
  module Dyndoc
@@ -67,7 +68,7 @@ module Dyndoc
67
68
  end
68
69
 
69
70
  def init_server
70
- @server = TCPServer.new('0.0.0.0',7777)
71
+ @server = TCPServer.new('0.0.0.0',DyndocServers.dyn_srv_port? || 7777)
71
72
  end
72
73
 
73
74
  def run
@@ -2,6 +2,7 @@ require 'dyndoc/init/home'
2
2
  require 'pathname'
3
3
  require 'yaml'
4
4
  require 'filewatcher'
5
+ require 'dyndoc-servers-cfg'
5
6
 
6
7
  #if RUBY_VERSION >= "2.4"
7
8
  class FileWatcher < Filewatcher
@@ -228,7 +229,8 @@ module Dyndoc
228
229
 
229
230
  def HtmlServers.dyn_http_server(host=nil,port=nil)
230
231
  require 'thin'
231
- dyn_html_srv_ru="/home/ubuntu/tools/dyn-html/srv.ru" # DyndocDockerSite guest-tools folder
232
+ dyn_html_srv_ru=File.join(ENV["HOME"],"RodaSrv","public","users",".dyn-html","srv.ru")
233
+ dyn_html_srv_ru="/home/ubuntu/tools/dyn-html/srv.ru" unless File.exists? dyn_html_srv_ru # DyndocDockerSite guest-tools folder
232
234
  dyn_html_srv_ru=File.join(ENV["HOME"],"dyndoc","html-srv","dyn.ru") unless File.exists? dyn_html_srv_ru
233
235
  dyn_html_srv_ru=File.expand_path("../../share/html-srv/dyn-html-srv.ru",__FILE__) unless File.exists? dyn_html_srv_ru
234
236
 
@@ -236,7 +238,7 @@ module Dyndoc
236
238
  if HtmlServers.cfg["html-srv-port"]
237
239
  arg += ["-p",HtmlServers.cfg["html-srv-port"].to_s]
238
240
  else
239
- arg += ["-p",port || "9294"]
241
+ arg += ["-p",(port || DyndocServers.dyn_http_port? || 9294).to_s]
240
242
  end
241
243
  if host
242
244
  arg += ["-a",host]
@@ -248,6 +250,23 @@ module Dyndoc
248
250
  Thin::Runner.new(arg).run!
249
251
  end
250
252
 
253
+ def HtmlServers.create_html_page(dyn_file,html_file,opts,pages_root)
254
+
255
+ Dyndoc.cli_convert_from_file(dyn_file[1..-1],html_file, opts)
256
+ ## fix html_file for _rmd, _adoc and _ttm
257
+ if html_file =~ /^(.*)_(rmd|adoc|ttm)\.html$/
258
+ html_file = $1+".html"
259
+ end
260
+ if html_file =~ /^(.*)_erb\.html$/
261
+ erb_page=File.join(pages_root,$1)
262
+ if File.exists? erb_page+"_erb.html"
263
+ FileUtils.mv erb_page+"_erb.html",erb_page+".erb"
264
+ end
265
+ html_file = "erb"+$1
266
+ end
267
+
268
+ end
269
+
251
270
  def HtmlServers.dyn_html_filewatcher(cfg={}) #cfg
252
271
  require 'dyndoc-convert'
253
272
  require 'dyndoc-edit'
@@ -257,14 +276,14 @@ module Dyndoc
257
276
  $VERBOSE = nil
258
277
  options={first: true}
259
278
  ## To put inside yaml config file!
260
- root ||= cfg["root"] || HtmlServers.cfg["root"] || File.join(ENV["HOME"],"RCqls","RodaServer")
279
+ root ||= cfg["root"] || HtmlServers.cfg["root"] || File.join(ENV["HOME"],"RodaSrv")
261
280
  dyn_root = cfg["dyn_root"] || HtmlServers.cfg["dyn_root"] || File.join(root ,"edit")
262
281
  public_root = cfg["public_root"] || HtmlServers.cfg["public_root"] || File.join(root ,"public")
263
282
  dyn_public_edit_root = File.join(public_root,"users","*",".edit","**","*.dyn")
264
283
  pages_root = File.join(public_root ,"pages")
265
284
  current_email = cfg["email"] || HtmlServers.cfg["email"] || "rdrouilh@gmail.com" #default email user can be overriden by -u option
266
285
  host=(cfg["html-srv-host"] || HtmlServers.cfg["html-srv-host"] || "http://localhost").to_s
267
- port=(cfg["html-srv-port"] || HtmlServers.cfg["html-srv-port"] || "9294").to_s
286
+ port=(cfg["html-srv-port"] || HtmlServers.cfg["html-srv-port"] || DyndocServers.dyn_http_port? || "9294").to_s
268
287
  base_url= host+":"+port
269
288
 
270
289
  opts = {
@@ -310,18 +329,8 @@ module Dyndoc
310
329
  ##p [:opts,opts,:current_doc_tag,opts[:current_doc_tag]]
311
330
  state=""
312
331
  begin
313
- Dyndoc.cli_convert_from_file(dyn_file[1..-1],html_file, opts)
314
- ## fix html_file for _rmd, _adoc and _ttm
315
- if html_file =~ /^(.*)_(rmd|adoc|ttm)\.html$/
316
- html_file = $1+".html"
317
- end
318
- if html_file =~ /^(.*)_erb\.html$/
319
- erb_page=File.join(pages_root,$1)
320
- if File.exists? erb_page+"_erb.html"
321
- FileUtils.mv erb_page+"_erb.html",erb_page+".erb"
322
- end
323
- html_file = "erb"+$1
324
- end
332
+ HtmlServers.create_html_page(dyn_file,html_file,opts,pages_root)
333
+
325
334
  puts dyn_file[1..-1]+(dyn_public_edit_file.empty? ? "" : "*")+" processed => "+html_file+" created!"
326
335
  options[:first] = html_file != old_html_file
327
336
  if html_file != old_html_file
@@ -332,8 +341,8 @@ module Dyndoc
332
341
  else
333
342
  Dyndoc::Browser.reload
334
343
  end
335
- rescue
336
- state="error: "
344
+ rescue => e
345
+ state="error: #{e.message} =>"
337
346
  ensure
338
347
  notify_file=filename.split("/")
339
348
  if (ind=notify_file.index ".edit")
@@ -0,0 +1,24 @@
1
+ require 'yaml'
2
+ module DyndocServers
3
+ @@cfg=nil
4
+ @@servers_cfg_file=File.join(ENV["HOME"],".dyndoc-servers.yml")
5
+ def DyndocServers.cfg
6
+ unless @@cfg
7
+ @@cfg=(File.exist? @@servers_cfg_file) ? ::YAML::load_file(@@servers_cfg_file) : {}
8
+ end
9
+ @@cfg
10
+ end
11
+
12
+ def DyndocServers.dyn_cli_port?
13
+ DyndocServers.cfg["ports"] ? @@cfg["ports"]["dyn-cli"] : nil
14
+ end
15
+
16
+ def DyndocServers.dyn_srv_port?
17
+ DyndocServers.cfg["ports"] ? @@cfg["ports"]["dyn-srv"] : nil
18
+ end
19
+
20
+ def DyndocServers.dyn_http_port?
21
+ DyndocServers.cfg["ports"] ? @@cfg["ports"]["dyn-http"] : nil
22
+ end
23
+
24
+ end
data/lib/dyndoc-tasks.rb CHANGED
@@ -98,9 +98,9 @@ def DyndocTasks.dyn_yml(doc)
98
98
  end
99
99
  if is_dyntask
100
100
  dynfile=docname+".dyn"
101
- FileUtils.cp dyntaskpath, dynfile
102
- $params=cfg_yml["params"]
103
- $dyntask=dyntaskname
101
+ FileUtils.cp dyntaskpath, dynfile
102
+ $params=cfg_yml["params"]
103
+ $dyntask=dyntaskname
104
104
  cfg_yml["params"].each do |key,val|
105
105
  Settings["cfg_dyn.user_input"] << [key,val]
106
106
  end
@@ -126,8 +126,16 @@ def DyndocTasks.filewatcher(cfg={}) #cfg
126
126
  ::FileWatcher.new(dyntasks_root).watch() do |filename, event|
127
127
  ##DEBUG:
128
128
  puts filename + "->" + event.to_s+"\n"
129
- if [:changed,:updated,:new].include? event and File.extname(filename) == ".yml"
130
- DyndocTasks.dyn_yml filename
129
+ if [:changed,:updated,:new].include? event
130
+ case File.extname(filename)
131
+ when ".yml"
132
+ DyndocTasks.dyn_yml filename
133
+ when ".rb"
134
+ system("/usr/bin/env ruby "+filename)
135
+ when ".sh"
136
+ system("/usr/bin/env bash "+filename)
137
+ end
138
+
131
139
  end
132
140
  end
133
141
  end
data/lib/dyndoc-world.rb CHANGED
@@ -25,13 +25,37 @@ module DyndocWorld
25
25
  ## access ##
26
26
  ## prj is to give access for a user or a group of users
27
27
  ## if prj or prj/secret is undefined it is accessible
28
- def DyndocWorld.yml?(prj,yml)
28
+ def DyndocWorld.prj_file?(yml)
29
+ prj=yml["prj"] || yml["project"] || "default"
29
30
  admin=(prj=="admin")
30
31
  cfg=DyndocWorld.cfg(admin)
31
32
  cfg=cfg[prj] unless admin
32
- return true unless cfg
33
+ return nil unless cfg and yml["file"]
34
+ parts=yml["file"].split("/")
35
+ p [:parts,parts]
36
+ root=parts.shift
37
+ p [:root,root]
38
+ user=parts.shift
33
39
  ##DEBUG: p [:"yml?", cfg, yml, (cfg and yml and ((cfg["secret"] || "none") == (yml["secret"] || "none")) and yml["file"] and !(yml["file"].include? "../"))]
34
- return (cfg and yml and ((cfg["secret"] || "none") == (yml["secret"] || "none")) and yml["file"] and !(yml["file"].include? "../"))
40
+ if (cfg and yml and ((cfg["secret"] || "none") == (yml["secret"] || "none")) and yml["file"] and !(yml["file"].include? "../")) and ((cfg["users"] || []).include? user)
41
+ prj_file=nil
42
+ if ["public","edit","dynworld"].include? root
43
+ prj_subdir=cfg["subdir"] || ""
44
+ case root
45
+ when "public"
46
+ prj_file=File.join(DyndocWorld.public_root,"users",user)
47
+ prj_file=(Dir.exists? prj_file) ? File.join(prj_file,prj_subdir,parts) : ""
48
+ when "edit"
49
+ prj_file=File.join(DyndocWorld.public_root,"users",user,".edit")
50
+ prj_file=(Dir.exists? prj_file) ? File.join(prj_file,prj_subdir,parts) : ""
51
+ when "dynworld"
52
+ prj_file=File.join(DyndocWorld.root,user,prj_subdir,parts)
53
+ end
54
+ end
55
+ end
56
+ p [:prj_file,prj_file]
57
+ return prj_file
58
+
35
59
  end
36
60
 
37
61
  ## file ##
@@ -39,37 +63,19 @@ module DyndocWorld
39
63
  ## ex: public/<user>/<pathname>
40
64
  ## edit/<user>/<pathname>
41
65
  ## dynworld/<user>/<pathname>
42
- def DyndocWorld.prj_file(yml,content)
43
- success,prj_file=false,""
44
- parts=yml["file"].split("/")
45
- p [:parts,parts]
46
- root=parts.shift
47
- p [:root,root]
48
- if ["public","edit","dynworld"].include? root
49
- user=parts.shift
50
- case root
51
- when "public"
52
- prj_file=File.join(DyndocWorld.public_root,"users",user)
53
- prj_file=(Dir.exists? prj_file) ? File.join(prj_file,parts) : ""
54
- when "edit"
55
- prj_file=File.join(DyndocWorld.public_root,"users",user,".edit")
56
- prj_file=(Dir.exists? prj_file) ? File.join(prj_file,parts) : ""
57
- when "dynworld"
58
- prj_file=File.join(DyndocWorld.root,user,parts)
59
- end
60
- end
61
- p [:prj_file,prj_file]
62
- unless prj_file.empty?
63
- FileUtils.mkdir_p File.dirname prj_file
64
- File.open(prj_file,"w") {|f|
65
- if root == "edit"
66
- f << yml.to_yaml
67
- f << "---\n"
68
- end
69
- f << content.strip
70
- }
71
- success=true
66
+ def DyndocWorld.save_prj_file(prj_file,content)
67
+ FileUtils.mkdir_p File.dirname prj_file
68
+ File.open(prj_file,"w") {|f|
69
+ f << content.strip
70
+ }
71
+ end
72
+
73
+ def DyndocWorld.open_prj_file(prj_file)
74
+ res={success: false}
75
+ if File.exists? prj_file
76
+ res[:content]=File.read(prj_file)
77
+ res[:success]=true
72
78
  end
73
- return success
79
+ return res
74
80
  end
75
81
  end
metadata CHANGED
@@ -1,95 +1,95 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dyndoc-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.4.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - RCqls
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-05 00:00:00.000000000 Z
11
+ date: 2021-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: R4rb
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 1.0.0
20
17
  - - "~>"
21
18
  - !ruby/object:Gem::Version
22
19
  version: '1.0'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.0.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- version: 1.0.0
30
27
  - - "~>"
31
28
  - !ruby/object:Gem::Version
32
29
  version: '1.0'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.0.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: dyndoc-ruby-core
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: 1.0.0
40
37
  - - "~>"
41
38
  - !ruby/object:Gem::Version
42
39
  version: '1.0'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 1.0.0
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: 1.0.0
50
47
  - - "~>"
51
48
  - !ruby/object:Gem::Version
52
49
  version: '1.0'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 1.0.0
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: dyndoc-ruby-doc
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- version: 1.0.0
60
57
  - - "~>"
61
58
  - !ruby/object:Gem::Version
62
59
  version: '1.0'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 1.0.0
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - ">="
68
- - !ruby/object:Gem::Version
69
- version: 1.0.0
70
67
  - - "~>"
71
68
  - !ruby/object:Gem::Version
72
69
  version: '1.0'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 1.0.0
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: dyndoc-ruby-exec
75
75
  requirement: !ruby/object:Gem::Requirement
76
76
  requirements:
77
- - - ">="
78
- - !ruby/object:Gem::Version
79
- version: 0.1.0
80
77
  - - "~>"
81
78
  - !ruby/object:Gem::Version
82
79
  version: '0.1'
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 0.1.0
83
83
  type: :runtime
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: 0.1.0
90
87
  - - "~>"
91
88
  - !ruby/object:Gem::Version
92
89
  version: '0.1'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 0.1.0
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: asciidoctor
95
95
  requirement: !ruby/object:Gem::Requirement
@@ -188,7 +188,6 @@ executables:
188
188
  - dyn-4ever
189
189
  - dyn-yml
190
190
  - dyn-rebase-url
191
- - dyn-site
192
191
  extensions: []
193
192
  extra_rdoc_files: []
194
193
  files:
@@ -204,7 +203,6 @@ files:
204
203
  - bin/dyn-lint
205
204
  - bin/dyn-rebase-url
206
205
  - bin/dyn-scan
207
- - bin/dyn-site
208
206
  - bin/dyn-srv
209
207
  - bin/dyn-task
210
208
  - bin/dyn-x
@@ -216,6 +214,7 @@ files:
216
214
  - lib/dyndoc-edit.rb
217
215
  - lib/dyndoc-html-servers.rb
218
216
  - lib/dyndoc-linter.rb
217
+ - lib/dyndoc-servers-cfg.rb
219
218
  - lib/dyndoc-tasks.rb
220
219
  - lib/dyndoc-world.rb
221
220
  - lib/dyndoc/cli/interactive-client.rb
@@ -494,7 +493,7 @@ licenses:
494
493
  - MIT
495
494
  - GPL-2.0
496
495
  metadata: {}
497
- post_install_message:
496
+ post_install_message:
498
497
  rdoc_options: []
499
498
  require_paths:
500
499
  - lib
@@ -510,8 +509,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
510
509
  version: '0'
511
510
  requirements:
512
511
  - none
513
- rubygems_version: 3.0.6
514
- signing_key:
512
+ rubygems_version: 3.2.22
513
+ signing_key:
515
514
  specification_version: 4
516
515
  summary: R and Ruby in text document
517
516
  test_files: []
data/bin/dyn-site DELETED
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- cmd=::File.expand_path('../../share/dyn-site/dyn-site.sh', __FILE__)+" "+ARGV.join(" ")
4
-
5
- out=`/bin/bash -c "#{cmd}"`
6
-
7
- puts out unless out.empty?