dyndoc-ruby 1.3.6 → 1.4.5

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: 1429abd256e9d0441df24744231a62ae8129a5274c3e8de413e700a81dfdc917
4
- data.tar.gz: 21e08fa73d544abf8618461df13e40cdfc333a542e4c71185ae301ad12784ea7
3
+ metadata.gz: d255842b28ec56165e4afeaa4365023f907564018686c100ddaaa51a5da082d8
4
+ data.tar.gz: 0cfcbc668b436f90246754c516b2c6fe3ab7c8db9a1c0fa25f308fafbb994440
5
5
  SHA512:
6
- metadata.gz: 1a02a9276665a3302bea5445e7d7b1f2b1129ae62ca5409464afc25180254ebf053046298cac9f46130a8e4b1d8ac282f5ddf01dd93066d29905942d8f1d534a
7
- data.tar.gz: 3953bd8ce467a7e6dc5306085e0062152571af478634e3404eb057da0211d8d726091e88bf57e15ae0c3e854deeecef445c0d7c38df34f9f0fa5640f961e21b1
6
+ metadata.gz: 9d31008fa44284347b7cb449547b070c3fadff5d46502add8d765da72add3306d8b9aeb2395534e51b6f64be18cc7a7e6e94431f97c5ecc50c74e20e580b8d1e
7
+ data.tar.gz: cb6cdaac3ac2f79261eed45e915d1ca55adf438a27858fb302462466a34c1c0ee5c43e6bcdfcf6fb091330834c0b2ae586b3d9d42a4a7ca8b16fffe827a46a42
@@ -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
@@ -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,12 +229,16 @@ module Dyndoc
228
229
 
229
230
  def HtmlServers.dyn_http_server(host=nil,port=nil)
230
231
  require 'thin'
231
- dyn_html_srv_ru=File.expand_path("../../share/html-srv/dyn-html-srv.ru",__FILE__)
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
234
+ dyn_html_srv_ru=File.join(ENV["HOME"],"dyndoc","html-srv","dyn.ru") unless File.exists? dyn_html_srv_ru
235
+ dyn_html_srv_ru=File.expand_path("../../share/html-srv/dyn-html-srv.ru",__FILE__) unless File.exists? dyn_html_srv_ru
236
+
232
237
  arg=["-R",dyn_html_srv_ru]
233
238
  if HtmlServers.cfg["html-srv-port"]
234
239
  arg += ["-p",HtmlServers.cfg["html-srv-port"].to_s]
235
240
  else
236
- arg += ["-p",port || "9294"]
241
+ arg += ["-p",(port || DyndocServers.dyn_http_port? || 9294).to_s]
237
242
  end
238
243
  if host
239
244
  arg += ["-a",host]
@@ -245,6 +250,23 @@ module Dyndoc
245
250
  Thin::Runner.new(arg).run!
246
251
  end
247
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
+
248
270
  def HtmlServers.dyn_html_filewatcher(cfg={}) #cfg
249
271
  require 'dyndoc-convert'
250
272
  require 'dyndoc-edit'
@@ -254,14 +276,14 @@ module Dyndoc
254
276
  $VERBOSE = nil
255
277
  options={first: true}
256
278
  ## To put inside yaml config file!
257
- root ||= cfg["root"] || HtmlServers.cfg["root"] || File.join(ENV["HOME"],"RCqls","RodaServer")
279
+ root ||= cfg["root"] || HtmlServers.cfg["root"] || File.join(ENV["HOME"],"RodaSrv")
258
280
  dyn_root = cfg["dyn_root"] || HtmlServers.cfg["dyn_root"] || File.join(root ,"edit")
259
281
  public_root = cfg["public_root"] || HtmlServers.cfg["public_root"] || File.join(root ,"public")
260
282
  dyn_public_edit_root = File.join(public_root,"users","*",".edit","**","*.dyn")
261
283
  pages_root = File.join(public_root ,"pages")
262
284
  current_email = cfg["email"] || HtmlServers.cfg["email"] || "rdrouilh@gmail.com" #default email user can be overriden by -u option
263
285
  host=(cfg["html-srv-host"] || HtmlServers.cfg["html-srv-host"] || "http://localhost").to_s
264
- 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
265
287
  base_url= host+":"+port
266
288
 
267
289
  opts = {
@@ -307,18 +329,8 @@ module Dyndoc
307
329
  ##p [:opts,opts,:current_doc_tag,opts[:current_doc_tag]]
308
330
  state=""
309
331
  begin
310
- Dyndoc.cli_convert_from_file(dyn_file[1..-1],html_file, opts)
311
- ## fix html_file for _rmd, _adoc and _ttm
312
- if html_file =~ /^(.*)_(rmd|adoc|ttm)\.html$/
313
- html_file = $1+".html"
314
- end
315
- if html_file =~ /^(.*)_erb\.html$/
316
- erb_page=File.join(pages_root,$1)
317
- if File.exists? erb_page+"_erb.html"
318
- FileUtils.mv erb_page+"_erb.html",erb_page+".erb"
319
- end
320
- html_file = "erb"+$1
321
- end
332
+ HtmlServers.create_html_page(dyn_file,html_file,opts,pages_root)
333
+
322
334
  puts dyn_file[1..-1]+(dyn_public_edit_file.empty? ? "" : "*")+" processed => "+html_file+" created!"
323
335
  options[:first] = html_file != old_html_file
324
336
  if html_file != old_html_file
@@ -329,8 +341,8 @@ module Dyndoc
329
341
  else
330
342
  Dyndoc::Browser.reload
331
343
  end
332
- rescue
333
- state="error: "
344
+ rescue => e
345
+ state="error: #{e.message} =>"
334
346
  ensure
335
347
  notify_file=filename.split("/")
336
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
@@ -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
@@ -1,11 +1,81 @@
1
+ require 'yaml'
2
+
1
3
  module DyndocWorld
2
4
 
3
- def DyndocWorld.yml?(prj,yml)
4
- true
5
+ @@root=nil
6
+ @@public=nil
7
+
8
+ def DyndocWorld.root(root=nil)
9
+ @@root=root if root
10
+ return @@root
5
11
  end
6
12
 
7
- def DyndocWorld.prj_dir(prj,yml)
8
- prj
13
+ def DyndocWorld.public_root(public_root=nil)
14
+ @@public=public_root if public_root
15
+ return @@public
9
16
  end
10
17
 
18
+ def DyndocWorld.cfg(admin=nil)
19
+ cfg={}
20
+ secret = File.join(DyndocWorld.root,admin ? ".admin.yml" : ".secret.yml")
21
+ cfg = YAML::load_file(secret) if DyndocWorld.root and File.exists? secret
22
+ return cfg
23
+ end
24
+
25
+ ## access ##
26
+ ## prj is to give access for a user or a group of users
27
+ ## if prj or prj/secret is undefined it is accessible
28
+ def DyndocWorld.prj_file?(yml)
29
+ prj=yml["prj"] || yml["project"] || "default"
30
+ admin=(prj=="admin")
31
+ cfg=DyndocWorld.cfg(admin)
32
+ cfg=cfg[prj] unless admin
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
39
+ ##DEBUG: p [:"yml?", cfg, yml, (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
+
59
+ end
60
+
61
+ ## file ##
62
+ ## from yml
63
+ ## ex: public/<user>/<pathname>
64
+ ## edit/<user>/<pathname>
65
+ ## dynworld/<user>/<pathname>
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
78
+ end
79
+ return res
80
+ end
11
81
  end
@@ -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
@@ -10,9 +10,10 @@ cfg.merge! YAML::load_file(cfg_yml) if File.exist? cfg_yml
10
10
  root = cfg["root"] || File.join(ENV["HOME"],"RCqls","RodaServer")
11
11
  $public_root = cfg["public_root"] || File.join(root ,"public")
12
12
  ##p [:public_root,$public_root]
13
- $dynworld_root=cfg["dynworld_root"] || File.join(ENV["HOME"],".dyndoc-world")
14
13
 
15
14
  require 'dyndoc-world'
15
+ DyndocWorld.root(cfg["dynworld_root"] || File.join(ENV["HOME"],".dyndoc-world"))
16
+ DyndocWorld.public_root($public_root)
16
17
 
17
18
  class App < Roda
18
19
  use Rack::Session::Cookie, :secret => (secret="Thanks like!")
@@ -42,24 +43,19 @@ class App < Roda
42
43
 
43
44
  r.post "file-save" do
44
45
  puts "file-save"
45
- prj,yml,@file,@content=r['prj'].strip,r['yml'].strip,r['file'].strip,r['content']
46
- p [prj,yml,@file,@content]
46
+ prj,yml,@content=r['prj'].strip,r['yml'].strip,r['content']
47
+ p [prj,yml,@content]
47
48
  success=false
48
49
  unless yml.empty?
49
50
  yml="---\n" + yml unless yml[0,4] == "---\n"
50
51
  yml=YAML::load(yml)
51
52
  p [:yml, yml]
52
53
  require 'fileutils'
53
- if @file and !(@file.include? "../") and (DyndocWorld.yml?(prj,yml))
54
- if Dir.exists? $dynworld_root
55
- prj_dir=DyndocWorld.prj_dir(prj,yml)
56
- dynworld_file=File.join($dynworld_root,prj_dir,@file)
57
- FileUtils.mkdir_p File.dirname dynworld_file
58
- File.open(dynworld_file,"w") {|f| f << @content.strip}
59
- success=true
60
- end
54
+ if DyndocWorld.yml?(prj,yml)
55
+ success=DyndocWorld.prj_file(yml,@content)
61
56
  end
62
57
  end
58
+ p [:success, "{success: " + success.to_s + "}"]
63
59
  "{success: " + success.to_s + "}"
64
60
  end
65
61
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dyndoc-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.6
4
+ version: 1.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - RCqls
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-24 00:00:00.000000000 Z
11
+ date: 2020-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: R4rb
@@ -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
@@ -230,11 +229,6 @@ files:
230
229
  - share/demo/testBeamer.dyn
231
230
  - share/demo/testBeamer_lib.dyn
232
231
  - share/demo/test_atom.dyn
233
- - share/dyn-site/docker/dyn-site.sh
234
- - share/dyn-site/docker/files/Dockerfile-dyndoc
235
- - share/dyn-site/docker/files/Dockerfile-website
236
- - share/dyn-site/docker/files/docker-compose.yml
237
- - share/dyn-site/dyn-site.sh
238
232
  - share/dyndoc.yml/README.md
239
233
  - share/dyndoc.yml/example.dyndoc.yml
240
234
  - share/dyntasks/clean_task.dyn
@@ -499,7 +493,7 @@ licenses:
499
493
  - MIT
500
494
  - GPL-2.0
501
495
  metadata: {}
502
- post_install_message:
496
+ post_install_message:
503
497
  rdoc_options: []
504
498
  require_paths:
505
499
  - lib
@@ -516,7 +510,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
516
510
  requirements:
517
511
  - none
518
512
  rubygems_version: 3.0.6
519
- signing_key:
513
+ signing_key:
520
514
  specification_version: 4
521
515
  summary: R and Ruby in text document
522
516
  test_files: []
@@ -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?
@@ -1,54 +0,0 @@
1
- #!/bin/bash
2
-
3
- cmd=$1
4
- script="bin/.action.sh"
5
-
6
- RootSrv=/home/ubuntu/RodaSrv
7
-
8
- echo "## do not modify since automatically generated" > $script
9
-
10
- case $cmd in
11
- first)
12
- ## Not necessary for docker
13
- #mkdir -p ../../RodaSrv/edit
14
- #mkdir -p ../../RodaSrv/public/users
15
- ;;
16
- init)
17
- ## Create the RodaSrv folder
18
- echo "mkdir -p /home/ubuntu/RodaSrv/edit" >> $script
19
- echo "mkdir -p /home/ubuntu/RodaSrv/public" >> $script
20
- echo "mkdir -p /home/ubuntu/RodaSrv/system" >> $script
21
- ## Config file
22
- echo "echo '---' > /home/ubuntu/dyndoc/etc/dyn-html.yml" >> $script
23
- echo "echo 'root: /home/ubuntu/RodaSrv' >> /home/ubuntu/dyndoc/etc/dyn-html.yml" >> $script
24
- docker-compose exec --user ubuntu website bash /home/ubuntu/bin/.action.sh
25
- ;;
26
- add)
27
- # get RodaWebUser from environment variable
28
- RodaWebUser=$2
29
- if [ "$RodaWebUser" != "" ]; then
30
- echo "mkdir -p ${RootSrv}/edit/${RodaWebUser}" >> $script
31
- echo "mkdir -p ${RootSrv}/public/pages" >> $script
32
- echo "mkdir -p ${RootSrv}/public/users/${RodaWebUser}/pages/${RodaWebUser}" >> $script
33
- echo "cd ${RootSrv}/public/pages" >> $script
34
- echo "ln -s ../users/${RodaWebUser}/pages/${RodaWebUser} ${RodaWebUser}" >> $script
35
- docker-compose exec --user ubuntu website bash /home/ubuntu/bin/.action.sh
36
- fi
37
- ;;
38
- status | start | stop)
39
- docker-compose exec --user ubuntu website bash -c "/usr/local/bin/dyn-ctl $cmd"
40
- ;;
41
- bash)
42
- docker-compose exec --user ubuntu website bash
43
- ;;
44
- build)
45
- docker-compose build dyndoc-ruby
46
- docker-compose build website
47
- ;;
48
- up)
49
- docker-compose up -d website
50
- ;;
51
- down)
52
- docker-compose down
53
- ;;
54
- esac
@@ -1,31 +0,0 @@
1
- FROM ubuntu:$DyndocRubyUbuntu$
2
- MAINTAINER "Cqls Team"
3
-
4
- RUN groupadd -r ubuntu && useradd -r -g ubuntu ubuntu
5
-
6
- RUN apt-get update && \
7
- apt-get -y install sudo
8
-
9
- RUN apt-get install -y curl wget locales
10
-
11
- RUN locale-gen fr_FR.UTF-8
12
- ENV LANG fr_FR.UTF-8
13
- ENV LANGUAGE fr_FR:fr
14
- ENV LC_ALL fr_FR.UTF-8
15
-
16
- RUN bash -c "$(curl -fs https://cqls.dyndoc.fr/users/RCqls/Dyndoc/install/install-ubuntu16.sh)"
17
-
18
- EXPOSE 9294
19
-
20
- WORKDIR /home/ubuntu
21
-
22
- VOLUME ["/home/ubuntu/bin"]
23
-
24
- RUN chown -R ubuntu:ubuntu /home/ubuntu
25
-
26
- USER ubuntu
27
-
28
- RUN dyn-init
29
-
30
- RUN dpm install rcqls/DyndocWebTools.dyn
31
- RUN dpm link rcqls/DyndocWebTools.dyn
@@ -1,9 +0,0 @@
1
- FROM rcqls/dyndoc-ruby
2
- MAINTAINER "Cqls Team"
3
-
4
- USER ubuntu
5
-
6
- RUN mkdir -p /home/ubuntu/RodaSrv/public/edit
7
- RUN mkdir -p /home/ubuntu/RodaSrv/public/users
8
-
9
- ENTRYPOINT /usr/local/bin/dyn-ctl start && /bin/bash
@@ -1,21 +0,0 @@
1
- version: '2'
2
-
3
- services:
4
- dyndoc-ruby:
5
- build:
6
- context: DockerFiles
7
- dockerfile: Dockerfile-dyndoc
8
- image: rcqls/dyndoc-ruby-$DyndocRubyUbuntu$
9
-
10
- website:
11
- build:
12
- context: DockerFiles
13
- dockerfile: Dockerfile-website
14
- restart: always
15
- volumes:
16
- - $RodaSrvPublic$:/home/ubuntu/RodaSrv/public
17
- - $RodaSrvSystem$:/home/ubuntu/RodaSrv/install
18
- - ./bin:/home/ubuntu/bin
19
- ports:
20
- - $RodaSrvPort$:9294
21
- tty: true
@@ -1,167 +0,0 @@
1
- #!/bin/bash
2
-
3
-
4
- RootSrv=$HOME/RodaSrv
5
-
6
- if [ "$1" = "--root" ];then
7
- shift
8
- RootSrv=$1
9
- if [ $RootSrv = "cfg" ]; then
10
- RootSrv=`ruby -e 'require "yaml";puts YAML::load_file(File.join(ENV["HOME"],"dyndoc/etc/dyn-html.yml"))["root"]'`
11
- fi
12
- shift
13
- fi
14
-
15
- Cmd=$1
16
-
17
- #echo "Command: $Cmd"
18
-
19
- if [ "$Cmd" = "" ]; then
20
- Cmd="help"
21
- fi
22
-
23
-
24
- case $Cmd in
25
- set-root)
26
- new-root=$2
27
- ## Config file
28
- echo "---" > $HOME/dyndoc/etc/dyn-html.yml
29
- echo "root: $new-root" >> $HOME/dyndoc/etc/dyn-html.yml
30
- ;;
31
- help)
32
- echo "Aide:"
33
- echo "----"
34
- echo " dyn-site [--root <cfg|ROOT>] first (création de l'arborescence de base)"
35
- echo " dyn-site [--root <cfg|ROOT>] init [zip|link <PATH>](installation de tools et system)"
36
- echo " dyn-site [--root <cfg|ROOT>] add <User> (ajout d'un utilisateur <User>)"
37
- echo " dyn-site [--root <cfg|ROOT>] rebase <Conf> (cas de workshop où <Conf>=<User>)"
38
- echo " dyn-site [--root <cfg|ROOT>] rebase-subdir <Subdir> <Prj> (Subdir=<User>/<PrjPath>)"
39
- echo " dyn-site vscode [--update] (install vscode plugin for dyndoc)"
40
- ## DANGEROUS!: echo " dyn-site set-root <new-root>"
41
- ;;
42
- first)
43
- ## Not necessary for docker
44
- mkdir -p $RootSrv/edit
45
- mkdir -p $RootSrv/public/users
46
- ;;
47
- init)
48
- installmode=$2
49
- case $installmode in
50
- zip)
51
- ## Install Specfic stuff inside
52
- mkdir -p $RootSrv/install/RodaSrvTools
53
- cd ${RootSrv}/install
54
- if ! [ -d DynRodaSystem ]; then git clone https://toltex-gogs.dyndoc.fr/rcqls/DynRodaSystem.git; fi
55
- if ! [ -f RodaSrvTools.zip ]; then
56
- wget https://toltex-seafile.dyndoc.fr/f/128ced4435/?raw=1 -O RodaSrvTools.zip
57
- cd RodaSrvTools
58
- unzip ../RodaSrvTools.zip
59
- fi
60
- ## Create links
61
- cd ${RootSrv}
62
- ln -sf install/DynRodaSystem system
63
- cd public
64
- ln -sf ../install/RodaSrvTools tools
65
- ;;
66
- link)
67
- rodatools_path=$2
68
- ## Create links
69
- cd ${RootSrv}
70
- ln -sf $rodatools_path/system system
71
- cd public
72
- ln -sf $rodatools_path/tools tools
73
- esac
74
- ;;
75
- add)
76
- RodaWebUser=$2
77
- if [ "$RodaWebUser" != "" ]; then
78
- mkdir -p ${RootSrv}/edit/${RodaWebUser}
79
- mkdir -p ${RootSrv}/public/pages
80
- mkdir -p ${RootSrv}/public/users/${RodaWebUser}/.pages
81
- cd ${RootSrv}/public/pages
82
- ln -s ../users/${RodaWebUser}/.pages ${RodaWebUser}
83
- fi
84
- ;;
85
- rebase)
86
- Conf=$2
87
- if [ "${Conf}" = "" ]; then
88
- exit
89
- fi
90
- PUBLIC_ROOT="$HOME/RodaSrv/public/users/${Conf}"
91
- SITE_ROOT="$HOME/RodaSrv/.site/$Conf"
92
- PAGES_ROOT="$SITE_ROOT/pages"
93
- mkdir -p ${SITE_ROOT}
94
- cp -R ${PUBLIC_ROOT}/* ${SITE_ROOT}/
95
- cd ${PAGES_ROOT}
96
- pages=$(ls *.html)
97
- echo "pages to process: $pages"
98
- for html in $pages
99
- do
100
- rebase_url --from /users/$Conf/ --to / $html
101
- rebase_url --from /$Conf/ --to / $html
102
- mv $html ..
103
- done
104
- cd $SITE_ROOT
105
- rm -fr pages
106
- ;;
107
- rebase-subdir)
108
- Subdir=$2
109
- if [ "${Subdir}" = "" ]; then
110
- echo "Subdir doit être non vide!"
111
- exit
112
- fi
113
- Prj=$3
114
- if [ "${Prj}" = "" ]; then
115
- echo "Prj doit être non vide!"
116
- exit
117
- fi
118
- PUBLIC_ASSETS="$HOME/RodaSrv/public/users/${Subdir}/${Prj}"
119
- PUBLIC_PAGES="$HOME/RodaSrv/public/pages/${Subdir}/${Prj}"
120
- SITE_ROOT="$HOME/RodaSrv/.site/$Prj"
121
- PAGES_ROOT="$SITE_ROOT/pages"
122
- if [ -d ${SITE_ROOT} ]; then
123
- rm -fr ${SITE_ROOT}
124
- fi
125
- mkdir -p ${PAGES_ROOT}
126
- cp -R ${PUBLIC_PAGES}/* ${PAGES_ROOT}/
127
- cp -R ${PUBLIC_ASSETS}/* ${SITE_ROOT}/
128
- cd ${PAGES_ROOT}
129
- pages=$(find . -name '*.html')
130
- echo "pages to process: $pages"
131
- for html in $pages
132
- do
133
- rebase_url --from /users/${Subdir}/${Prj}/ --to / $html
134
- rebase_url --from /${Subdir}/${Prj}/ --to / $html
135
- done
136
- cd $SITE_ROOT
137
- mv pages/* .
138
- rm -fr pages
139
- ;;
140
- vscode)
141
- if [ -d ~/.vscode/extensions ]; then
142
- cd ~/.vscode/extensions
143
- mkdir tmp
144
- cd tmp
145
- git clone https://github.com/rcqls/dyndoc-syntax
146
- cd ..
147
- if [ -d dyndoc ]; then
148
- if [ "$2" = "--update" ]; then
149
- rm -fr dyndoc
150
- mv tmp/dyndoc-syntax/vscode/dyndoc dyndoc
151
- rm -fr tmp
152
- fi
153
- else
154
- mv tmp/dyndoc-syntax/vscode/dyndoc dyndoc
155
- rm -fr tmp
156
- fi
157
- fi
158
- ;;
159
- # deploy)
160
- # Conf=$2
161
- # url="sfdsmqrk@ftp.sfds.asso.fr:$Conf/"
162
- # if [ "$3" != "" ]; then
163
- # url="$3"
164
- # fi
165
- # rsync -az $SITE_ROOT/* $url
166
- # ;;
167
- esac