import repository from arizona
[raven.git] / apps / mprepo / repoconfig.py
1 """arizonaconfig
2    options=[["",   "--repohostname",    "repohostname",  "store",      "string", "stork-repository.cs.arizona.edu",   None,  "DNS hostname of repository"],
3             ["",   "--repobasedir",     "repobasedir",   "store",      "string", "/usr/local/cherryrepo",             None, "base directory of repository"],
4             ["",   "--repovardir",      "repovardir",    "store",      "string", "$REPOBASE/var",                     None, "directory to keep repository var files in"],
5             ["",   "--repoetcdir",      "repoetcdir",    "store",      "string", "$REPOBASE/etc",                     None, "directory to keep repository config files, templates, etc"],
6             ["",   "--repowebdir",      "repowebdir",    "store",      "string", "$REPOVAR/web",                      None, "directory to keep web pages"],
7             ["",   "--repopackdir",     "repopackdir",   "store",      "string", "$REPOWEB/packages",                 None, "directory to keep packages"],
8             ["",   "--repometadir",     "repometadir",   "store",      "string", "$REPOWEB/metadata",                 None, "directory to keep metadata"],
9             ["",   "--repouserdir",     "repouserdir",   "store",      "string", "$REPOWEB/user-upload",              None, "directory to keep user uploads"],
10             ["",   "--repotardir",      "repotardir",    "store",      "string", "$REPOWEB/packageinfo",              None, "directory to keep tarballs"],
11             ["",   "--reposavedir",     "reposavedir",   "store",      "string", "$REPOWEB/save",                     None, "directory to keep saved uploads"],
12             ["",   "--repobitdir",      "repobitdir",    "store",      "string", "$REPOWEB/symdir",                   None, "directory to keep bittorrent links"],
13             ["",   "--repotorrentdir",  "repotorrentdir","store",      "string", "$REPOWEB/torrents",                 None, "directory to keep bittorrent torrent files"],
14             ["",   "--repoprivdir",     "repoprivdir",   "store",      "string", "$REPOVAR/private",                  None, "directory to keep repository private stuff"],
15             ["",   "--repotrootdir",    "repotrootdir",  "store",      "string", "$REPOVAR/trusted_roots",            None, "directory to keep geni trusted roots"],
16             ["",   "--repostaticdir",   "repostaticdir", "store",      "string", "$REPOWEB/static",                   None, "directory to keep repository static files (images, etc)"],
17             ["",   "--repokeydir",      "repokeydir",    "store",      "string", "$REPOPRIV/keys",                    None, "directory to keep repository keys"],
18             ["",   "--repoprivatekey",  "repoprivatekey", "store",     "string", "$REPOKEY/repository.privatekey",    None, "filename holding repository private key"]]
19    includes=[]
20 """
21
22 import os
23
24 import arizonaconfig
25 import arizonareport
26
27
28 repo_config_initialized = False
29
30 repo_base_dir = None
31 repo_web_dir = None
32 repo_priv_dir = None
33 repo_trusted_roots_dir = None
34 repo_key_dir = None
35 repo_etc_dir = None
36 repo_var_dir = None
37
38 def repo_dir_translate(x):
39    if repo_base_dir:
40       x = x.replace("$REPOBASE", repo_base_dir)
41    if repo_var_dir:
42       x = x.replace("$REPOVAR", repo_var_dir)
43    if repo_priv_dir:
44       x = x.replace("$REPOPRIV", repo_priv_dir)
45    if repo_key_dir:
46       x = x.replace("$REPOKEY", repo_key_dir)
47    if repo_web_dir:
48       x = x.replace("$REPOWEB", repo_web_dir)
49    if repo_etc_dir:
50       x = x.replace("$REPOETC", repo_etc_dir)
51    return x
52
53 def init():
54    global hostname
55    global repo_base_dir
56    global repo_priv_dir
57    global repo_key_dir
58    global repo_trusted_roots_dir
59    global repo_web_dir
60    global repo_etc_dir
61    global repo_var_dir
62    global package_dir
63    global metadata_dir
64    global user_dir
65    global tarball_dir
66    global save_dir
67    global bittorrent_dir
68    global repo_config_initialized
69    global privatekey_fn
70    global static_dir
71    global torrent_dir
72
73    if repo_config_initialized:
74       return
75
76    hostname = arizonaconfig.get_option("repohostname")
77    repo_base_dir = arizonaconfig.get_option("repobasedir")
78    repo_var_dir = repo_dir_translate(arizonaconfig.get_option("repovardir"))
79    repo_etc_dir = repo_dir_translate(arizonaconfig.get_option("repoetcdir"))
80    repo_web_dir = repo_dir_translate(arizonaconfig.get_option("repowebdir"))
81    repo_priv_dir = repo_dir_translate(arizonaconfig.get_option("repoprivdir"))
82    repo_key_dir = repo_dir_translate(arizonaconfig.get_option("repokeydir"))
83    repo_trusted_roots_dir = repo_dir_translate(arizonaconfig.get_option("repotrootdir"))
84
85    package_dir = repo_dir_translate(arizonaconfig.get_option("repopackdir"))
86    metadata_dir = repo_dir_translate(arizonaconfig.get_option("repometadir"))
87    user_dir = repo_dir_translate(arizonaconfig.get_option("repouserdir"))
88    tarball_dir = repo_dir_translate(arizonaconfig.get_option("repotardir"))
89    save_dir = repo_dir_translate(arizonaconfig.get_option("reposavedir"))
90    bittorrent_dir = repo_dir_translate(arizonaconfig.get_option("repobitdir"))
91    torrent_dir = repo_dir_translate(arizonaconfig.get_option("repotorrentdir"))
92    static_dir = repo_dir_translate(arizonaconfig.get_option("repostaticdir"))
93    privatekey_fn = repo_dir_translate(arizonaconfig.get_option("repoprivatekey"))
94
95    repo_config_initialized = True
96
97 def dump_config():
98    arizonareport.send_out(0, "hostname = " + str(hostname))
99    arizonareport.send_out(0, "directories:")
100    arizonareport.send_out(0, "  base = " + repo_base_dir)
101    arizonareport.send_out(0, "  var  = " + repo_var_dir)
102    arizonareport.send_out(0, "  etc  = " + repo_etc_dir)
103    arizonareport.send_out(0, "  web  = " + repo_web_dir)
104    arizonareport.send_out(0, "  priv = " + repo_priv_dir)
105    arizonareport.send_out(0, "  key  = " + repo_key_dir)
106    arizonareport.send_out(0, "  pack = " + package_dir)
107    arizonareport.send_out(0, "  meta = " + metadata_dir)
108    arizonareport.send_out(0, "  user = " + user_dir)
109    arizonareport.send_out(0, "  tar  = " + tarball_dir)
110    arizonareport.send_out(0, "  save = " + save_dir)
111    arizonareport.send_out(0, "  bt   = " + bittorrent_dir)
112    arizonareport.send_out(0, "  torr = " + torrent_dir)
113    arizonareport.send_out(0, "  stat = " + static_dir) 
114    arizonareport.send_out(0, "private key = " + privatekey_fn)
115