|
@@ -133,7 +133,7 @@ class SiteGen:
|
133
|
133
|
domains.append(file[:-4])
|
134
|
134
|
return domains
|
135
|
135
|
|
136
|
|
- def get_all_site_templates(self):
|
|
136
|
+ def get_all_site_confs(self):
|
137
|
137
|
files = os.listdir(self.get_site_template_dir())
|
138
|
138
|
files.sort()
|
139
|
139
|
templates = []
|
|
@@ -142,6 +142,15 @@ class SiteGen:
|
142
|
142
|
templates.append(file[:-5])
|
143
|
143
|
return templates
|
144
|
144
|
|
|
145
|
+ def get_all_site_incs(self):
|
|
146
|
+ files = os.listdir(self.get_site_template_dir())
|
|
147
|
+ files.sort()
|
|
148
|
+ templates = []
|
|
149
|
+ for file in files:
|
|
150
|
+ if file.endswith(".include"):
|
|
151
|
+ templates.append(file[:-8])
|
|
152
|
+ return templates
|
|
153
|
+
|
145
|
154
|
def get_all_sites(self):
|
146
|
155
|
files = os.listdir(self.siteConfDir)
|
147
|
156
|
files.sort()
|
|
@@ -165,10 +174,10 @@ class SiteGen:
|
165
|
174
|
path.join(self.siteConfDir, domain + ".include")
|
166
|
175
|
]
|
167
|
176
|
|
168
|
|
- def get_site_template_conf_files(self, template):
|
|
177
|
+ def get_site_template_conf_files(self, inc, conf):
|
169
|
178
|
return [
|
170
|
|
- path.join(self.get_site_template_dir(), template + ".conf"),
|
171
|
|
- path.join(self.get_site_template_dir(), template + ".include")
|
|
179
|
+ path.join(self.get_site_template_dir(), conf + ".conf"),
|
|
180
|
+ path.join(self.get_site_template_dir(), inc + ".include")
|
172
|
181
|
]
|
173
|
182
|
|
174
|
183
|
def get_site_dir(self, domain):
|
|
@@ -180,8 +189,8 @@ class SiteGen:
|
180
|
189
|
return True
|
181
|
190
|
return False
|
182
|
191
|
|
183
|
|
- def is_site_template_present(self, template):
|
184
|
|
- for file in self.get_site_template_conf_files(template):
|
|
192
|
+ def is_site_template_present(self, inc, conf):
|
|
193
|
+ for file in self.get_site_template_conf_files(inc, conf):
|
185
|
194
|
if path.isfile(file):
|
186
|
195
|
return True
|
187
|
196
|
return False
|
|
@@ -249,14 +258,14 @@ class SiteGen:
|
249
|
258
|
for domain in domains:
|
250
|
259
|
self.cert_renew(domain)
|
251
|
260
|
|
252
|
|
- def site_create(self, domain, template):
|
|
261
|
+ def site_create(self, domain, inc, conf):
|
253
|
262
|
if self.is_site_present(domain):
|
254
|
263
|
raise SiteGenException("Site is present", 1)
|
255
|
|
- if not self.is_site_template_present(template):
|
|
264
|
+ if not self.is_site_template_present(inc, conf):
|
256
|
265
|
raise SiteGenException("Template is not present", 1)
|
257
|
266
|
|
258
|
267
|
args = [domain, self.get_site_dir(domain)]
|
259
|
|
- conf_files = self.get_site_template_conf_files(template)
|
|
268
|
+ conf_files = self.get_site_template_conf_files(inc, conf)
|
260
|
269
|
site_files = self.get_site_conf_files(domain)
|
261
|
270
|
for f in conf_files:
|
262
|
271
|
args.append(f)
|
|
@@ -296,13 +305,18 @@ class SiteGen:
|
296
|
305
|
os.remove(self.get_hook_file(hook_type, hook_name, True))
|
297
|
306
|
|
298
|
307
|
|
299
|
|
-def parse_domain(domain):
|
300
|
|
- site_template = "default"
|
|
308
|
+def parse_domain(domain, default_inc="default", default_conf="https"):
|
|
309
|
+ inc = default_inc
|
|
310
|
+ conf = default_conf
|
301
|
311
|
if ":" in domain:
|
302
|
312
|
split = domain.split(":")
|
303
|
313
|
domain = split[0]
|
304
|
|
- site_template = split[1]
|
305
|
|
- return domain, site_template
|
|
314
|
+ inc = split[1]
|
|
315
|
+ if "." in inc:
|
|
316
|
+ split = inc.split(".")
|
|
317
|
+ inc = split[0]
|
|
318
|
+ conf = split[1]
|
|
319
|
+ return domain, inc, conf
|
306
|
320
|
|
307
|
321
|
|
308
|
322
|
def parse_hook(hook):
|
|
@@ -328,16 +342,25 @@ def domain_completer(prefix, **kwargs):
|
328
|
342
|
return site_gen.get_all_domains()
|
329
|
343
|
|
330
|
344
|
|
331
|
|
-def site_template_completer(prefix, **kwargs):
|
|
345
|
+def site_conf_completer(prefix, **kwargs):
|
332
|
346
|
site_gen = get_site_gen(prefix, **kwargs)
|
333
|
|
- return site_gen.get_all_site_templates()
|
|
347
|
+ return site_gen.get_all_site_confs()
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+def site_inc_completer(prefix, **kwargs):
|
|
351
|
+ site_gen = get_site_gen(prefix, **kwargs)
|
|
352
|
+ return site_gen.get_all_site_incs()
|
334
|
353
|
|
335
|
354
|
|
336
|
355
|
def site_create_completer(prefix, **kwargs):
|
337
|
|
- if ":" in prefix:
|
338
|
|
- domain, template = parse_domain(prefix)
|
339
|
|
- templates = site_template_completer(prefix, **kwargs)
|
340
|
|
- return [domain + ":" + elt for elt in templates]
|
|
356
|
+ domain, inc, conf = parse_domain(prefix, None, None)
|
|
357
|
+ if inc is not None:
|
|
358
|
+ if conf is not None:
|
|
359
|
+ templates = site_conf_completer(prefix, **kwargs)
|
|
360
|
+ return [domain + ":" + inc + "." + elt for elt in templates]
|
|
361
|
+ else:
|
|
362
|
+ templates = site_inc_completer(prefix, **kwargs)
|
|
363
|
+ return [domain + ":" + elt for elt in templates]
|
341
|
364
|
|
342
|
365
|
return domain_completer(prefix, **kwargs)
|
343
|
366
|
|
|
@@ -404,8 +427,8 @@ def main():
|
404
|
427
|
site_gen.cert_enddate(args.cert_enddate)
|
405
|
428
|
|
406
|
429
|
elif args.site_create is not None:
|
407
|
|
- domain, site_template = parse_domain(args.site_create)
|
408
|
|
- site_gen.site_create(domain, site_template)
|
|
430
|
+ domain, inc, conf = parse_domain(args.site_create)
|
|
431
|
+ site_gen.site_create(domain, inc, conf)
|
409
|
432
|
|
410
|
433
|
elif args.hook_enable is not None:
|
411
|
434
|
hook_type, hook_name = parse_hook(args.hook_enable)
|