dyndoc-ruby 1.3.2 → 1.4.1
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/lib/dyndoc-html-servers.rb +48 -24
- data/lib/dyndoc-tasks.rb +4 -0
- data/lib/dyndoc-world.rb +75 -0
- data/share/html-srv/dyn-html-srv.ru +9 -16
- metadata +3 -3
- data/share/dyn-site/dyn-site.sh +0 -167
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8723bdb859aae5e91938015ec532b9fb896f20acef9ffa6e035e54e48debd7f3
|
4
|
+
data.tar.gz: e3e6db01504a19b2b50318ad7ce985711eebee860f8b3dfd7875216eee4fb04c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0cd8c4aa4ec42053a1c1227fad45122d77f96780f6b853998c63565f090cb99a6e2e470a89c016dcae1db250c00618e1fad3b52493267e73847bc33a1df2c20a
|
7
|
+
data.tar.gz: 235cabc8a20637344b9ae44960e6a55f8292bd8739167919cebcc2c31a8667ad95199719af12006af7e3b9d76a2e7b2eeda2b9e56ec2a967662e8f2bc76a8686
|
data/lib/dyndoc-html-servers.rb
CHANGED
@@ -228,7 +228,10 @@ module Dyndoc
|
|
228
228
|
|
229
229
|
def HtmlServers.dyn_http_server(host=nil,port=nil)
|
230
230
|
require 'thin'
|
231
|
-
dyn_html_srv_ru=
|
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"],"dyndoc","html-srv","dyn.ru") unless File.exists? dyn_html_srv_ru
|
233
|
+
dyn_html_srv_ru=File.expand_path("../../share/html-srv/dyn-html-srv.ru",__FILE__) unless File.exists? dyn_html_srv_ru
|
234
|
+
|
232
235
|
arg=["-R",dyn_html_srv_ru]
|
233
236
|
if HtmlServers.cfg["html-srv-port"]
|
234
237
|
arg += ["-p",HtmlServers.cfg["html-srv-port"].to_s]
|
@@ -245,6 +248,23 @@ module Dyndoc
|
|
245
248
|
Thin::Runner.new(arg).run!
|
246
249
|
end
|
247
250
|
|
251
|
+
def HtmlServers.create_html_page(dyn_file,html_file,opts,pages_root)
|
252
|
+
|
253
|
+
Dyndoc.cli_convert_from_file(dyn_file[1..-1],html_file, opts)
|
254
|
+
## fix html_file for _rmd, _adoc and _ttm
|
255
|
+
if html_file =~ /^(.*)_(rmd|adoc|ttm)\.html$/
|
256
|
+
html_file = $1+".html"
|
257
|
+
end
|
258
|
+
if html_file =~ /^(.*)_erb\.html$/
|
259
|
+
erb_page=File.join(pages_root,$1)
|
260
|
+
if File.exists? erb_page+"_erb.html"
|
261
|
+
FileUtils.mv erb_page+"_erb.html",erb_page+".erb"
|
262
|
+
end
|
263
|
+
html_file = "erb"+$1
|
264
|
+
end
|
265
|
+
|
266
|
+
end
|
267
|
+
|
248
268
|
def HtmlServers.dyn_html_filewatcher(cfg={}) #cfg
|
249
269
|
require 'dyndoc-convert'
|
250
270
|
require 'dyndoc-edit'
|
@@ -270,10 +290,11 @@ module Dyndoc
|
|
270
290
|
user: nil #current_email
|
271
291
|
}
|
272
292
|
|
273
|
-
puts "watching "+
|
293
|
+
puts "watching "+ dyn_public_edit_root + " and " + dyn_root
|
274
294
|
old_html_file=""
|
275
|
-
::FileWatcher.new([dyn_root
|
276
|
-
##
|
295
|
+
::FileWatcher.new([dyn_public_edit_root,dyn_root]).watch() do |filename, event|
|
296
|
+
##
|
297
|
+
p [:filename,filename,event]
|
277
298
|
if [:changed,:updated,:new].include? event and File.extname(filename) == ".dyn"
|
278
299
|
##p [:filename_event,event,filename]
|
279
300
|
if (lint_error=Dyndoc::Linter.check_file(filename)).empty?
|
@@ -304,27 +325,30 @@ module Dyndoc
|
|
304
325
|
|
305
326
|
html_file=opts[:html_files][opts[:current_doc_tag]] # No more default # || html_files[""]
|
306
327
|
##p [:opts,opts,:current_doc_tag,opts[:current_doc_tag]]
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
328
|
+
state=""
|
329
|
+
begin
|
330
|
+
HtmlServers.create_html_page(dyn_file,html_file,opts,pages_root)
|
331
|
+
|
332
|
+
puts dyn_file[1..-1]+(dyn_public_edit_file.empty? ? "" : "*")+" processed => "+html_file+" created!"
|
333
|
+
options[:first] = html_file != old_html_file
|
334
|
+
if html_file != old_html_file
|
335
|
+
old_html_file = html_file
|
336
|
+
url=File.join(base_url,html_file)
|
337
|
+
## p [:url,url]
|
338
|
+
Dyndoc::Browser.load(url)
|
339
|
+
else
|
340
|
+
Dyndoc::Browser.reload
|
341
|
+
end
|
342
|
+
rescue => e
|
343
|
+
state="error: #{e.message} =>"
|
344
|
+
ensure
|
345
|
+
notify_file=filename.split("/")
|
346
|
+
if (ind=notify_file.index ".edit")
|
347
|
+
notify_file=notify_file[0..ind].join("/")
|
348
|
+
File.open(notify_file+"/notify.out","w") do |f|
|
349
|
+
f << state + filename
|
350
|
+
end
|
316
351
|
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
352
|
end
|
329
353
|
end
|
330
354
|
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
|
@@ -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.
|
4
|
+
version: 1.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- RCqls
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: R4rb
|
@@ -217,6 +217,7 @@ files:
|
|
217
217
|
- lib/dyndoc-html-servers.rb
|
218
218
|
- lib/dyndoc-linter.rb
|
219
219
|
- lib/dyndoc-tasks.rb
|
220
|
+
- lib/dyndoc-world.rb
|
220
221
|
- lib/dyndoc/cli/interactive-client.rb
|
221
222
|
- lib/dyndoc/srv/interactive-server.rb
|
222
223
|
- lib/dyndoc/srv/tilt.rb
|
@@ -229,7 +230,6 @@ files:
|
|
229
230
|
- share/demo/testBeamer.dyn
|
230
231
|
- share/demo/testBeamer_lib.dyn
|
231
232
|
- share/demo/test_atom.dyn
|
232
|
-
- share/dyn-site/dyn-site.sh
|
233
233
|
- share/dyndoc.yml/README.md
|
234
234
|
- share/dyndoc.yml/example.dyndoc.yml
|
235
235
|
- share/dyntasks/clean_task.dyn
|
data/share/dyn-site/dyn-site.sh
DELETED
@@ -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
|