This repository has been archived by the owner on Sep 21, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.txt
123 lines (95 loc) · 5.15 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
www.pgadmin.org
===============
This is the code for the pgAdmin website, www.pgadmin.org. In order to setup
an instance of the site, you will need a dedicated virtual host with the
site installed in the docroot. The following virtual host configuration is
taken from paxsor.postgresql.org which is (at the time of writing) serving
the primary site under lighttpd:
$HTTP["host"] =~ "^(www\.pgadmin\.org|pgadmin\.org)" {
server.errorlog = "/var/log/lighttpd/www_error.log"
accesslog.filename = "/var/log/lighttpd/www_access.log"
server.document-root = "/usr/local/www.pgadmin.org"
$HTTP["scheme"] != "https" {
url.redirect = (".*" => "https://www.pgadmin.org$0")
}
fastcgi.server = (".php" =>
("php-main" =>
("socket" => "/tmp/www-fastcgi.sock",
"bin-path" => "/usr/bin/php-cgi"
)
)
)
# Doc rewrites
url.rewrite-once = (
# New Sphinx docs
"^/docs/(dev|1.16|1.18|1.20|1.22)/(.*).(jpg|png|gif|css|html|js|ttf|txt|woff)$" => "/gitrepo/pgadmin3-$1/docs/en_US/_build/html/$2.$3",
"^/docs/(dev|1.16|1.18|1.20|1.22)/(.*).(jpg|png|gif|css|html|js|ttf|txt|woff)(\?.*)$" => "/gitrepo/pgadmin3-$1/docs/en_US/_build/html/$2.$3$4",
# pgAdmin 4 docs
"^/docs4/(dev|1.x)/(.*).(jpg|png|gif|css|html|js|ttf|txt|woff)$" => "/gitrepo/pgadmin4-$1/docs/en_US/_build/html/$2.$3",
"^/docs4/(dev|1.x)/(.*).(jpg|png|gif|css|html|js|ttf|txt|woff)(\?.*)$" => "/gitrepo/pgadmin4-$1/docs/en_US/_build/html/$2.$3$4",
# Old-style HTML docs
"^/docs/(1.4|1.6|1.8|1.10|1.12|1.14)/(.*).(jpg|png|gif)$" => "/gitrepo/pgadmin3-$1/docs/en_US/$2.$3",
"^/docs/(1.4|1.6|1.8|1.10|1.12|1.14)/(.*)$" => "/include/doc.php?docset=$1&docpage=$2"
)
}
Note that PHP's safe mode is currently turned off to allow the framework to
tweak $LANG. This needs some work!
Static content
--------------
Each static page in the site is a very simple PHP script including the page
generator scripti (include/page.php), setting up a couple of variables with
the content and page title and then calling the www_page() function which
renders the page. Strings in each page are wrapped in _( ) markers to allow
them be translated.
Section menus
-------------
A section menu is built from the 'menu.php' script present in the same
directory as the source content. Section menus are not present in the list
archives or docs sections of the site. The menu script contains a single
function (www_menu()) which outputs a set of div's forming the section menu.
Each line includes a call to www_current_menu_page($1) which will include
the appropriate CSS class/id, depending on whether or not $1 is the current
page.
Additional content
------------------
There are also three additional directories that are not included with the
site source code that must be setup under the document root. These hold
copies of the pgAdmin source tree(s) for integration of the documentation,
translation status, changelog and bug lists etc, the snapshot builds and
the mailing list archives.
/gitrepo
--------
/gitrepo
/pgadmin3
/pgadmin3-1.4
...
...
The gitrepo directory holds the source trees for trunk and any stable branches
whose docs are integrated into the site. These trees are
git pull'ed hourly. Files under here are integrated into the website in a
variety of ways - basic text/html files may be included as raw content in
other PHP pages and the translation statuses are read using the code in
include/po_status.php. The documentation is accessed by it's 'real' filename,
relocated to /docs/xxx/, where xxx is 'dev' or the branch version number. A
rewrite rule in the lighty config intercepts these URLs, extracts the document set
and page requested, and passes them to include/doc.php which constructs the
page content and passes it to the standard page rendered.
Modern versions of the docs are served directly using the rewrite rules in the
lighty config.
Synchronisation
---------------
In order to keep the live website up to date, a number of cron jobs are
scheduled.
# Update the website itself
22 * * * * root cd /usr/local/www.pgadmin.org && git pull --rebase > /dev/null 2>&1
# Update the documentation from it's git repositories
02 * * * * root cd /usr/local/www.pgadmin.org/gitrepo/pgadmin3.git && (git fetch origin && for v in dev 1.22 1.20 1.18 1.16 1.14 1.12 1.10 1.8 1.6 1.4 ; do cd ../pgadmin3-$v && git pull --rebase ; done ) > /dev/null
2>&1
# Rebuild the Sphinx docs
11 * * * * root cd /usr/local/www.pgadmin.org/gitrepo && (for v in dev 1.22 1.20 1.18 1.16 ; do cd pgadmin3-$v && sh bootstrap && cd docs/en_US && PATH=$PATH:/usr/local/bin make -f Makefile.sphinx html && cd ../../..
/ ; done ) > /dev/null 2>&1
# pgAdmin 4 Stuff
# Update the documentation from it's git repositories
29 * * * * root cd /usr/local/www.pgadmin.org/gitrepo/pgadmin4.git && (git fetch origin && for v in dev 1.x ; do cd ../pgadmin4-$v && git pull --rebase ; done ) > /dev/null 2>&1
# Rebuild the Sphinx docs
34 * * * * root cd /usr/local/www.pgadmin.org/gitrepo && (for v in dev 1.x ; do cd pgadmin4-$v/docs/en_US && PATH=$PATH:/usr/local/bin make -f Makefile.sphinx html && cd ../../../ ; done ) > /dev/null 2>&1