dyndoc-ruby 1.3.6 → 1.4.5

Sign up to get free protection for your applications and to get access to all the features.
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