|
1 | 1 |
|
2 | 2 | Set of scripts to facilitate parallel project synchronization and mirroring
|
3 | 3 |
|
4 |
| -Use e.g. like this: |
5 |
| - |
6 |
| - # sync.py -c /scripts/sync.conf -d /ws-local/ -p |
7 |
| - |
8 |
| -where the sync.conf file contents might look like this: |
9 |
| - |
10 |
| -``` |
11 |
| - { |
12 |
| - "commands": [["/usr/opengrok/bin/Messages", "-c", "info", "-e", "+1 hour", |
13 |
| - "-n", "normal", "-t", "ARG", "resync + reindex in progress"], |
14 |
| - ["sudo", "-u", "wsmirror", "/usr/opengrok/bin/mirror.py", |
15 |
| - "-c", "/opengrok/etc/mirror-config.yml", "-b", |
16 |
| - "--messages", "/usr/opengrok/bin/Messages"], |
17 |
| - ["sudo", "-u", "webservd", "/usr/opengrok/bin/reindex-project.ksh", |
18 |
| - "/opengrok/etc/opengrok.conf", "/usr/opengrok/bin"], |
19 |
| - ["/usr/opengrok/bin/Messages", "-n", "abort", "-t"], |
20 |
| - ["/scripts/check-indexer-logs.ksh"]], |
21 |
| - "ignore_errors": ["NetBSD-current", "linux-mainline-next"], |
22 |
| - "cleanup": ["/usr/opengrok/bin/Messages", "-n", "abort", "-t"] |
23 |
| - } |
24 |
| -``` |
25 |
| - |
26 |
| -The commands got appended project name unless one of their arguments is equal |
27 |
| -to 'ARG', in which case it is substituted with project name and no append is |
28 |
| -done. |
29 |
| - |
30 |
| -For per-project reindexing to work properly, reindex-project.ksh uses |
31 |
| -the logging.properties.template to make sure each project has its own |
32 |
| -log directory. |
33 |
| - |
34 |
| -The mirror-config.yml can look e.g. like this: |
35 |
| - |
36 |
| -``` |
37 |
| -# |
38 |
| -# Commands (or paths - for specific repository types only) |
39 |
| -# |
40 |
| -commands: |
41 |
| - hg: /usr/bin/hg |
42 |
| - svn: /usr/bin/svn |
43 |
| - teamware: /ontools/onnv-tools-i386/teamware/bin |
44 |
| -# |
45 |
| -# The proxy environment variables will be set for a project's repositories |
46 |
| -# if the 'proxy' property is True. |
47 |
| -# |
48 |
| -proxy: |
49 |
| - http_proxy: proxy.example.com:80 |
50 |
| - https_proxy: proxy.example.com:80 |
51 |
| - ftp_proxy: proxy.example.com:80 |
52 |
| - no_proxy: example.com,foo.example.com |
53 |
| -hookdir: /tmp/hooks |
54 |
| -# per-project hooks relative to 'hookdir' above |
55 |
| -logdir: /tmp/logs |
56 |
| -# |
57 |
| -# Per project configuration. |
58 |
| -# |
59 |
| -projects: |
60 |
| - http: |
61 |
| - proxy: true |
62 |
| - history: |
63 |
| - disabled: true |
64 |
| - userland: |
65 |
| - proxy: true |
66 |
| - hooks: |
67 |
| - pre: userland-pre.ksh |
68 |
| - post: userland-post.ksh |
69 |
| - opengrok-master: |
70 |
| - - ignored_repos: |
71 |
| - /opengrok-master/testdata/repositories/rcs_test |
72 |
| -``` |
73 |
| - |
74 |
| -See https://github.com/OpenGrok/OpenGrok/wiki/Per-project-management |
75 |
| -for more details on per-project management. |
76 |
| - |
77 |
| - |
78 | 4 | The scripts require Python 3 and they rely on a binary/symlink `python3` to be
|
79 | 5 | present that points to the latest Python 3.x version present on the system.
|
| 6 | + |
| 7 | +See https://github.com/oracle/opengrok/wiki/Repository-synchronization |
| 8 | +for more details. |
0 commit comments