Skip to content
This repository was archived by the owner on Apr 10, 2025. It is now read-only.

Commit dc97039

Browse files
committed
generate-config: make unsupported directive functionality available to other templates
1 parent c7ddfca commit dc97039

File tree

2 files changed

+33
-6
lines changed

2 files changed

+33
-6
lines changed

test/genconf/nginx.conf.template

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,6 @@ ${
1818

1919
import string
2020
from util import *
21-
import warnings
22-
23-
set_writer(emit)
2421

2522
pagespeed_unsupported = [
2623
"CacheFlushFileName",
@@ -58,6 +55,8 @@ pagespeed_unsupported = [
5855
"UsePerVHostStatistics",
5956
]
6057

58+
set_writer(emit)
59+
set_pagespeed_unsupported(pagespeed_unsupported)
6160

6261
def write_servers_open_item(server, level):
6362
emit_indent("server{\n", level)
@@ -95,9 +94,6 @@ def write_pagespeed_open(ps, level):
9594
# pagespeed_if is not implemented yet for nginx.
9695
# this code isn't wired up but left in as an example
9796
for key in ps:
98-
if key.lower() in map(str.lower,pagespeed_unsupported):
99-
warnings.warn("%s not supported, skipping" % key)
100-
continue
10197
val = ps[key]
10298
# In pagespeed.debug.conf, the same pagespeed directive can occur
10399
# multiple times. Our pyconf represents that as an array, which we

test/genconf/util.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,10 @@
1414
#
1515
# Author: [email protected] (Otto van der Schaaf)
1616

17+
from collections import OrderedDict
1718
import sys
1819
import traceback
20+
import warnings
1921

2022
class Error(Exception):
2123
pass
@@ -32,6 +34,28 @@ def exec_template_call(func, lineno, item, level):
3234
pyconf_fatal(lineno, e)
3335
raise
3436

37+
def check_pagespeed_supported(directives):
38+
global global_pagespeed_unsupported
39+
pagespeed_unsupported = None
40+
41+
try:
42+
pagespeed_unsupported = global_pagespeed_unsupported
43+
except NameError:
44+
pagespeed_unsupported = None
45+
46+
if not pagespeed_unsupported:
47+
return directives
48+
49+
supported_directives = OrderedDict()
50+
51+
for directive in directives:
52+
if directive.lower() in map(str.lower, pagespeed_unsupported):
53+
warnings.warn("%s not supported, skipping" % directive)
54+
else:
55+
supported_directives[directive] = directives[directive]
56+
57+
return supported_directives
58+
3559
def write_cfg(key_to_writer, config, key_to_node, level=0, parent_key = ""):
3660
global global_writer
3761

@@ -49,6 +73,9 @@ def write_cfg(key_to_writer, config, key_to_node, level=0, parent_key = ""):
4973
if w != write_void:
5074
next_level = next_level + 1
5175

76+
if key.lower() == "pagespeed":
77+
config[key] = check_pagespeed_supported(config[key])
78+
5279
handled = exec_template_call(w, lineno, config[key], level)
5380

5481
if not handled:
@@ -97,3 +124,7 @@ def write_void(ps, level):
97124
def set_writer(writer):
98125
global global_writer
99126
global_writer = writer
127+
128+
def set_pagespeed_unsupported(pagespeed_unsupported):
129+
global global_pagespeed_unsupported
130+
global_pagespeed_unsupported = pagespeed_unsupported

0 commit comments

Comments
 (0)