dyndoc-ruby 1.3.4 → 1.4.2

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: 2ec509c1bb4aa90c2960546ea660bb8c1b734d84e090cb7892738f4ec812972d
4
- data.tar.gz: c58112a3f6326a0c2421058ca28df3fbbe286d3a8766859a9b3fecdd30ff57c4
3
+ metadata.gz: eb2f3e831ea517eaff9fc31d345306051d56fb4c2a8c501ffd6e57cacb7e31b1
4
+ data.tar.gz: 0002b697759d5ada6085ef5ab02040e0e9c83bf19c864fb250ea210382ec5be1
5
5
  SHA512:
6
- metadata.gz: '045482d13e19620b809a07c60d27e2b0e20d55f97406d19aca29545b85d4b21d9bd7d69f28abb9eced64a93ead570a4546d57c2f4032fc7c39b930bc0f17904a'
7
- data.tar.gz: 722057d19ff0d07762b5c6fffd8a5abf61405f63c3a2757f8592c41ffff023eaaea1806baaa0eb1835090c3b200fd8f13b19c93009427327c926ad24e60ba1a2
6
+ metadata.gz: ecc7fef24adac129da5b2fe4753d183f62fdbbf31ba4638d2da20e5dbad11d423dc54f329b3caa9b8229985f1e87567e544c3a81530e777f052acc0192b88c3f
7
+ data.tar.gz: 2169eb881e4d9a25fea6b3d7fd1ce8b791c5708d6c1e6e8ab66c22fb68f2f6c6fea5b442cf3f3e7d11fc60fd0058331650fc5ce5cdb948fe00b1ee4e20f1059c
@@ -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,15 @@ 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="/home/ubuntu/tools/dyn-html/srv.ru" # DyndocDockerSite guest-tools folder
233
+ dyn_html_srv_ru=File.join(ENV["HOME"],"dyndoc","html-srv","dyn.ru") unless File.exists? dyn_html_srv_ru
234
+ dyn_html_srv_ru=File.expand_path("../../share/html-srv/dyn-html-srv.ru",__FILE__) unless File.exists? dyn_html_srv_ru
235
+
232
236
  arg=["-R",dyn_html_srv_ru]
233
237
  if HtmlServers.cfg["html-srv-port"]
234
238
  arg += ["-p",HtmlServers.cfg["html-srv-port"].to_s]
235
239
  else
236
- arg += ["-p",port || "9294"]
240
+ arg += ["-p",(port || DyndocServers.dyn_http_port? || 9294).to_s]
237
241
  end
238
242
  if host
239
243
  arg += ["-a",host]
@@ -245,6 +249,23 @@ module Dyndoc
245
249
  Thin::Runner.new(arg).run!
246
250
  end
247
251
 
252
+ def HtmlServers.create_html_page(dyn_file,html_file,opts,pages_root)
253
+
254
+ Dyndoc.cli_convert_from_file(dyn_file[1..-1],html_file, opts)
255
+ ## fix html_file for _rmd, _adoc and _ttm
256
+ if html_file =~ /^(.*)_(rmd|adoc|ttm)\.html$/
257
+ html_file = $1+".html"
258
+ end
259
+ if html_file =~ /^(.*)_erb\.html$/
260
+ erb_page=File.join(pages_root,$1)
261
+ if File.exists? erb_page+"_erb.html"
262
+ FileUtils.mv erb_page+"_erb.html",erb_page+".erb"
263
+ end
264
+ html_file = "erb"+$1
265
+ end
266
+
267
+ end
268
+
248
269
  def HtmlServers.dyn_html_filewatcher(cfg={}) #cfg
249
270
  require 'dyndoc-convert'
250
271
  require 'dyndoc-edit'
@@ -261,7 +282,7 @@ module Dyndoc
261
282
  pages_root = File.join(public_root ,"pages")
262
283
  current_email = cfg["email"] || HtmlServers.cfg["email"] || "rdrouilh@gmail.com" #default email user can be overriden by -u option
263
284
  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
285
+ port=(cfg["html-srv-port"] || HtmlServers.cfg["html-srv-port"] || DyndocServers.dyn_http_port? || "9294").to_s
265
286
  base_url= host+":"+port
266
287
 
267
288
  opts = {
@@ -305,27 +326,30 @@ module Dyndoc
305
326
 
306
327
  html_file=opts[:html_files][opts[:current_doc_tag]] # No more default # || html_files[""]
307
328
  ##p [:opts,opts,:current_doc_tag,opts[:current_doc_tag]]
308
- Dyndoc.cli_convert_from_file(dyn_file[1..-1],html_file, opts)
309
- ## fix html_file for _rmd, _adoc and _ttm
310
- if html_file =~ /^(.*)_(rmd|adoc|ttm)\.html$/
311
- html_file = $1+".html"
312
- end
313
- if html_file =~ /^(.*)_erb\.html$/
314
- erb_page=File.join(pages_root,$1)
315
- if File.exists? erb_page+"_erb.html"
316
- FileUtils.mv erb_page+"_erb.html",erb_page+".erb"
329
+ state=""
330
+ begin
331
+ HtmlServers.create_html_page(dyn_file,html_file,opts,pages_root)
332
+
333
+ puts dyn_file[1..-1]+(dyn_public_edit_file.empty? ? "" : "*")+" processed => "+html_file+" created!"
334
+ options[:first] = html_file != old_html_file
335
+ if html_file != old_html_file
336
+ old_html_file = html_file
337
+ url=File.join(base_url,html_file)
338
+ ## p [:url,url]
339
+ Dyndoc::Browser.load(url)
340
+ else
341
+ Dyndoc::Browser.reload
342
+ end
343
+ rescue => e
344
+ state="error: #{e.message} =>"
345
+ ensure
346
+ notify_file=filename.split("/")
347
+ if (ind=notify_file.index ".edit")
348
+ notify_file=notify_file[0..ind].join("/")
349
+ File.open(notify_file+"/notify.out","w") do |f|
350
+ f << state + filename
351
+ end
317
352
  end
318
- html_file = "erb"+$1
319
- end
320
- puts dyn_file[1..-1]+(dyn_public_edit_file.empty? ? "" : "*")+" processed => "+html_file+" created!"
321
- options[:first] = html_file != old_html_file
322
- if html_file != old_html_file
323
- old_html_file = html_file
324
- url=File.join(base_url,html_file)
325
- ## p [:url,url]
326
- Dyndoc::Browser.load(url)
327
- else
328
- Dyndoc::Browser.reload
329
353
  end
330
354
  end
331
355
  end
@@ -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
@@ -0,0 +1,81 @@
1
+ require 'yaml'
2
+
3
+ module DyndocWorld
4
+
5
+ @@root=nil
6
+ @@public=nil
7
+
8
+ def DyndocWorld.root(root=nil)
9
+ @@root=root if root
10
+ return @@root
11
+ end
12
+
13
+ def DyndocWorld.public_root(public_root=nil)
14
+ @@public=public_root if public_root
15
+ return @@public
16
+ end
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
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,12 +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
- $dynworld_tools=cfg["dynworld_tools"] || File.join(ENV["HOME"],"Gogs","dynworld")
15
- if Dir.exists? $dynworld_tools
16
- require File.join($dynworld_tools,"tools.rb")
17
- puts "Dynworld activated"
18
- end
13
+
14
+ require 'dyndoc-world'
15
+ DyndocWorld.root(cfg["dynworld_root"] || File.join(ENV["HOME"],".dyndoc-world"))
16
+ DyndocWorld.public_root($public_root)
19
17
 
20
18
  class App < Roda
21
19
  use Rack::Session::Cookie, :secret => (secret="Thanks like!")
@@ -45,24 +43,19 @@ class App < Roda
45
43
 
46
44
  r.post "file-save" do
47
45
  puts "file-save"
48
- prj,yml,@file,@content=r['prj'].strip,r['yml'].strip,r['file'].strip,r['content']
49
- p [prj,yml,@file,@content]
46
+ prj,yml,@content=r['prj'].strip,r['yml'].strip,r['content']
47
+ p [prj,yml,@content]
50
48
  success=false
51
49
  unless yml.empty?
52
50
  yml="---\n" + yml unless yml[0,4] == "---\n"
53
51
  yml=YAML::load(yml)
54
52
  p [:yml, yml]
55
53
  require 'fileutils'
56
- if @file and !(@file.include? "../") and (DyndocWorld.yml?(prj,yml))
57
- if Dir.exists? $dynworld_root
58
- prj_dir=DyndocWorld.prj_dir(prj,yml)
59
- dynworld_file=File.join($dynworld_root,prj_dir,@file)
60
- FileUtils.mkdir_p File.dirname dynworld_file
61
- File.open(dynworld_file,"w") {|f| f << @content.strip}
62
- success=true
63
- end
54
+ if DyndocWorld.yml?(prj,yml)
55
+ success=DyndocWorld.prj_file(yml,@content)
64
56
  end
65
57
  end
58
+ p [:success, "{success: " + success.to_s + "}"]
66
59
  "{success: " + success.to_s + "}"
67
60
  end
68
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.4
4
+ version: 1.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - RCqls
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-23 00:00:00.000000000 Z
11
+ date: 2020-10-31 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,7 +214,9 @@ 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
219
+ - lib/dyndoc-world.rb
220
220
  - lib/dyndoc/cli/interactive-client.rb
221
221
  - lib/dyndoc/srv/interactive-server.rb
222
222
  - lib/dyndoc/srv/tilt.rb
@@ -229,11 +229,6 @@ files:
229
229
  - share/demo/testBeamer.dyn
230
230
  - share/demo/testBeamer_lib.dyn
231
231
  - share/demo/test_atom.dyn
232
- - share/dyn-site/docker/dyn-site.sh
233
- - share/dyn-site/docker/files/Dockerfile-dyndoc
234
- - share/dyn-site/docker/files/Dockerfile-website
235
- - share/dyn-site/docker/files/docker-compose.yml
236
- - share/dyn-site/dyn-site.sh
237
232
  - share/dyndoc.yml/README.md
238
233
  - share/dyndoc.yml/example.dyndoc.yml
239
234
  - share/dyntasks/clean_task.dyn
@@ -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