dyndoc-ruby 1.3.0 → 1.3.9
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 +4 -4
- data/bin/dyn-rebase-url +46 -0
- data/bin/dyn-site +7 -0
- data/lib/dyndoc-html-servers.rb +37 -23
- data/lib/dyndoc-tasks.rb +4 -0
- data/lib/dyndoc-world.rb +75 -0
- data/share/dyn-site/docker/dyn-site.sh +54 -0
- data/share/dyn-site/docker/files/Dockerfile-dyndoc +31 -0
- data/share/dyn-site/docker/files/Dockerfile-website +9 -0
- data/share/dyn-site/docker/files/docker-compose.yml +21 -0
- data/share/dyn-site/dyn-site.sh +167 -0
- data/share/html-srv/dyn-html-srv.ru +9 -16
- metadata +12 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e134057e655c0154df49f4518d6964d373efd163adde55ac057f734649c677b
|
4
|
+
data.tar.gz: 6f92db285fbbb590d952480e9ba1b8a1fc099c6924861b87a548e097b1188e55
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 673b82c1efc5b4e1f6a16e9f394ff35cba499353050043351c13037ef49e6ee24be0a75acb1d1ef378ad6decf741859aa9b15920eee2f5936b78d6ab17e46417
|
7
|
+
data.tar.gz: d1b541c745c7dab4ee9c8372f71d9f7524c6b438ad8c0d101e5adf6de0a6581b4674f735dbf601daaf0af124cb0466abdb631440d0a708c84a36c298dbe22f60
|
data/bin/dyn-rebase-url
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
cur=0
|
4
|
+
opts={mode: :default, to: ""}
|
5
|
+
|
6
|
+
##p ARGV
|
7
|
+
|
8
|
+
while ["--dir","--mode","--from","--to","--help","--ext"].include? ARGV[cur]
|
9
|
+
##p [:cur,ARGV[cur]]
|
10
|
+
case ARGV[cur]
|
11
|
+
when "--dir","--help"
|
12
|
+
opts[ARGV[cur].to_sym]=true
|
13
|
+
cur += 1
|
14
|
+
when "--mode"
|
15
|
+
opts[:mode]==ARGV[cur+1].to_sym if ["default","href"].include? ARGV[cur+1]
|
16
|
+
cur += 2
|
17
|
+
when "--from","--to"
|
18
|
+
opts[ARGV[cur][2..-1].to_sym]=ARGV[cur+1]
|
19
|
+
cur += 2
|
20
|
+
when "--ext"
|
21
|
+
opts[ARGV[cur].to_sym]=ARGV[cur+1]
|
22
|
+
cur += 2
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
file=ARGV[cur]
|
27
|
+
opts[:help]=true unless file
|
28
|
+
if opts[:help]
|
29
|
+
puts "rebase_url [--dir] [--from <from_path>] [--to <to_path>] [--ext <extension>] file"
|
30
|
+
else
|
31
|
+
ext=opts[:ext] ? "."+opts[:ext] : ""
|
32
|
+
files=opts[:dir] ? Dir[File.join(file,"*"+ext)] : [file]
|
33
|
+
##p files
|
34
|
+
##p opts
|
35
|
+
files.each do |filename|
|
36
|
+
content=File.read(filename)
|
37
|
+
File.open(filename,"w") do |f|
|
38
|
+
case opts[:mode]
|
39
|
+
when :href
|
40
|
+
f << content.gsub(/\ href="#{opts[:from]}/," href=\""+opts[:to])
|
41
|
+
else
|
42
|
+
f << content.gsub(/#{opts[:from]}/,opts[:to])
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/bin/dyn-site
ADDED
data/lib/dyndoc-html-servers.rb
CHANGED
@@ -270,10 +270,11 @@ module Dyndoc
|
|
270
270
|
user: nil #current_email
|
271
271
|
}
|
272
272
|
|
273
|
-
puts "watching "+
|
273
|
+
puts "watching "+ dyn_public_edit_root + " and " + dyn_root
|
274
274
|
old_html_file=""
|
275
|
-
::FileWatcher.new([dyn_root
|
276
|
-
##
|
275
|
+
::FileWatcher.new([dyn_public_edit_root,dyn_root]).watch() do |filename, event|
|
276
|
+
##
|
277
|
+
p [:filename,filename,event]
|
277
278
|
if [:changed,:updated,:new].include? event and File.extname(filename) == ".dyn"
|
278
279
|
##p [:filename_event,event,filename]
|
279
280
|
if (lint_error=Dyndoc::Linter.check_file(filename)).empty?
|
@@ -304,27 +305,40 @@ module Dyndoc
|
|
304
305
|
|
305
306
|
html_file=opts[:html_files][opts[:current_doc_tag]] # No more default # || html_files[""]
|
306
307
|
##p [:opts,opts,:current_doc_tag,opts[:current_doc_tag]]
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
html_file
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
if
|
315
|
-
|
308
|
+
state=""
|
309
|
+
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
|
322
|
+
puts dyn_file[1..-1]+(dyn_public_edit_file.empty? ? "" : "*")+" processed => "+html_file+" created!"
|
323
|
+
options[:first] = html_file != old_html_file
|
324
|
+
if html_file != old_html_file
|
325
|
+
old_html_file = html_file
|
326
|
+
url=File.join(base_url,html_file)
|
327
|
+
## p [:url,url]
|
328
|
+
Dyndoc::Browser.load(url)
|
329
|
+
else
|
330
|
+
Dyndoc::Browser.reload
|
331
|
+
end
|
332
|
+
rescue
|
333
|
+
state="error: "
|
334
|
+
ensure
|
335
|
+
notify_file=filename.split("/")
|
336
|
+
if (ind=notify_file.index ".edit")
|
337
|
+
notify_file=notify_file[0..ind].join("/")
|
338
|
+
File.open(notify_file+"/notify.out","w") do |f|
|
339
|
+
f << state + filename
|
340
|
+
end
|
316
341
|
end
|
317
|
-
html_file = "erb"+$1
|
318
|
-
end
|
319
|
-
puts dyn_file[1..-1]+(dyn_public_edit_file.empty? ? "" : "*")+" processed => "+html_file+" created!"
|
320
|
-
options[:first] = html_file != old_html_file
|
321
|
-
if html_file != old_html_file
|
322
|
-
old_html_file = html_file
|
323
|
-
url=File.join(base_url,html_file)
|
324
|
-
## p [:url,url]
|
325
|
-
Dyndoc::Browser.load(url)
|
326
|
-
else
|
327
|
-
Dyndoc::Browser.reload
|
328
342
|
end
|
329
343
|
end
|
330
344
|
end
|
data/lib/dyndoc-tasks.rb
CHANGED
@@ -83,6 +83,10 @@ def DyndocTasks.dyn_yml(doc)
|
|
83
83
|
dyntaskname += "_task.dyn" unless dyntaskname=~/_task.dyn$/
|
84
84
|
dyntaskpath=dyntaskname
|
85
85
|
is_dyntask=File.exists? dyntaskpath
|
86
|
+
unless is_dyntask
|
87
|
+
dyntaskpath=File.join(ENV["HOME"],".dyndoc-world","tasks",dyntaskname)
|
88
|
+
is_dyntask=File.exists? dyntaskpath
|
89
|
+
end
|
86
90
|
unless is_dyntask
|
87
91
|
dyntaskpath=File.join(ENV["HOME"],"dyndoc","tasks",dyntaskname)
|
88
92
|
is_dyntask=File.exists? dyntaskpath
|
data/lib/dyndoc-world.rb
ADDED
@@ -0,0 +1,75 @@
|
|
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.yml?(prj,yml)
|
29
|
+
admin=(prj=="admin")
|
30
|
+
cfg=DyndocWorld.cfg(admin)
|
31
|
+
cfg=cfg[prj] unless admin
|
32
|
+
return true unless cfg
|
33
|
+
##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? "../"))
|
35
|
+
end
|
36
|
+
|
37
|
+
## file ##
|
38
|
+
## from yml
|
39
|
+
## ex: public/<user>/<pathname>
|
40
|
+
## edit/<user>/<pathname>
|
41
|
+
## 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
|
72
|
+
end
|
73
|
+
return success
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,54 @@
|
|
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
|
@@ -0,0 +1,31 @@
|
|
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
|
@@ -0,0 +1,21 @@
|
|
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
|
@@ -0,0 +1,167 @@
|
|
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
|
@@ -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
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
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,@
|
49
|
-
p [prj,yml,@
|
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
|
57
|
-
|
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
|
+
version: 1.3.9
|
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
|
+
date: 2019-12-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: R4rb
|
@@ -187,6 +187,8 @@ executables:
|
|
187
187
|
- dyn-ctl
|
188
188
|
- dyn-4ever
|
189
189
|
- dyn-yml
|
190
|
+
- dyn-rebase-url
|
191
|
+
- dyn-site
|
190
192
|
extensions: []
|
191
193
|
extra_rdoc_files: []
|
192
194
|
files:
|
@@ -200,7 +202,9 @@ files:
|
|
200
202
|
- bin/dyn-http
|
201
203
|
- bin/dyn-init
|
202
204
|
- bin/dyn-lint
|
205
|
+
- bin/dyn-rebase-url
|
203
206
|
- bin/dyn-scan
|
207
|
+
- bin/dyn-site
|
204
208
|
- bin/dyn-srv
|
205
209
|
- bin/dyn-task
|
206
210
|
- bin/dyn-x
|
@@ -213,6 +217,7 @@ files:
|
|
213
217
|
- lib/dyndoc-html-servers.rb
|
214
218
|
- lib/dyndoc-linter.rb
|
215
219
|
- lib/dyndoc-tasks.rb
|
220
|
+
- lib/dyndoc-world.rb
|
216
221
|
- lib/dyndoc/cli/interactive-client.rb
|
217
222
|
- lib/dyndoc/srv/interactive-server.rb
|
218
223
|
- lib/dyndoc/srv/tilt.rb
|
@@ -225,6 +230,11 @@ files:
|
|
225
230
|
- share/demo/testBeamer.dyn
|
226
231
|
- share/demo/testBeamer_lib.dyn
|
227
232
|
- 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
|
228
238
|
- share/dyndoc.yml/README.md
|
229
239
|
- share/dyndoc.yml/example.dyndoc.yml
|
230
240
|
- share/dyntasks/clean_task.dyn
|