mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-01-26 15:28:37 -05:00
Compile static files in build/public/static.
This commit is contained in:
40
r2/Makefile
40
r2/Makefile
@@ -84,24 +84,33 @@ clean_ini:
|
||||
rm $(INIFILES)
|
||||
|
||||
#################### Static Files
|
||||
STATIC_DIR := r2/public/static
|
||||
STATIC_ROOT := r2/public
|
||||
STATIC_FILES := $(shell find $(STATIC_ROOT) -readable)
|
||||
STATIC_BUILD_ROOT := $(BUILD_DIR)/public
|
||||
STATIC_BUILD_DIR := $(STATIC_BUILD_ROOT)/static
|
||||
STATIC_BUILDSTAMP := $(BUILD_DIR)/static-buildstamp
|
||||
|
||||
.PHONY: clean_static
|
||||
|
||||
static: pyx css js names
|
||||
|
||||
clean_static: clean_css clean_js clean_names
|
||||
clean_static:
|
||||
rm -rf $(STATIC_BUILDSTAMP) $(STATIC_BUILD_DIR)
|
||||
|
||||
$(STATIC_BUILDSTAMP): $(STATIC_FILES)
|
||||
cp -ruTL $(STATIC_ROOT) $(STATIC_BUILD_ROOT)
|
||||
touch $@
|
||||
|
||||
#### Stylesheets
|
||||
CSS_COMPRESS := $(SED) -e 's/ \+/ /' -e 's/\/\*.*\*\///g' -e 's/: /:/' | grep -v "^ *$$"
|
||||
CSS_SOURCE_DIR := $(STATIC_DIR)/css
|
||||
CSS_SOURCE_DIR := $(STATIC_BUILD_DIR)/css
|
||||
|
||||
SPRITED_STYLESHEETS := reddit.css compact.css
|
||||
PROCESSED_SPRITED_STYLESHEETS := $(addprefix $(STATIC_DIR)/, $(SPRITED_STYLESHEETS))
|
||||
SPRITES := $(addprefix $(STATIC_DIR)/, $(patsubst %.css,sprite-%.png, $(SPRITED_STYLESHEETS)))
|
||||
PROCESSED_SPRITED_STYLESHEETS := $(addprefix $(STATIC_BUILD_DIR)/, $(SPRITED_STYLESHEETS))
|
||||
SPRITES := $(addprefix $(STATIC_BUILD_DIR)/, $(patsubst %.css,sprite-%.png, $(SPRITED_STYLESHEETS)))
|
||||
|
||||
OTHER_STYLESHEETS := reddit-ie6-hax.css reddit-ie7-hax.css mobile.css
|
||||
MINIFIED_OTHER_STYLESHEETS := $(addprefix $(STATIC_DIR)/, $(OTHER_STYLESHEETS))
|
||||
MINIFIED_OTHER_STYLESHEETS := $(addprefix $(STATIC_BUILD_DIR)/, $(OTHER_STYLESHEETS))
|
||||
|
||||
PROCESSED_STYLESHEETS := $(PROCESSED_SPRITED_STYLESHEETS) $(MINIFIED_OTHER_STYLESHEETS)
|
||||
RTL_STYLESHEETS := $(PROCESSED_STYLESHEETS:.css=-rtl.css)
|
||||
@@ -110,18 +119,19 @@ CSS_OUTPUTS = $(PROCESSED_STYLESHEETS) $(RTL_STYLESHEETS) $(SPRITES)
|
||||
|
||||
.PHONY: clean_css
|
||||
|
||||
css: $(CSS_OUTPUTS)
|
||||
css: $(STATIC_BUILDSTAMP) $(CSS_OUTPUTS)
|
||||
|
||||
$(MINIFIED_OTHER_STYLESHEETS): $(STATIC_DIR)/%.css: $(CSS_SOURCE_DIR)/%.css
|
||||
|
||||
$(MINIFIED_OTHER_STYLESHEETS): $(STATIC_BUILD_DIR)/%.css: $(CSS_SOURCE_DIR)/%.css
|
||||
# when static file names are mangled, the original becomes a symlink to the mangled name
|
||||
# remove the original file here in case it's a symlink so we don't just rewrite the old file
|
||||
rm -f $@
|
||||
$(CAT) $< | $(CSS_COMPRESS) > $@
|
||||
|
||||
$(STATIC_DIR)/sprite-%.png $(STATIC_DIR)/%.css: $(CSS_SOURCE_DIR)/%.css
|
||||
$(STATIC_BUILD_DIR)/sprite-%.png $(STATIC_BUILD_DIR)/%.css: $(CSS_SOURCE_DIR)/%.css $(STATIC_BUILDSTAMP)
|
||||
# see above
|
||||
rm -f $(STATIC_DIR)/sprite-$*.png $(STATIC_DIR)/$*.css
|
||||
$(PYTHON) r2/lib/nymph.py $< $(STATIC_DIR)/sprite-$*.png | $(CSS_COMPRESS) > $(STATIC_DIR)/$*.css
|
||||
rm -f $(STATIC_BUILD_DIR)/sprite-$*.png $(STATIC_BUILD_DIR)/$*.css
|
||||
$(PYTHON) r2/lib/nymph.py $< $(STATIC_BUILD_DIR)/sprite-$*.png | $(CSS_COMPRESS) > $(STATIC_BUILD_DIR)/$*.css
|
||||
|
||||
$(RTL_STYLESHEETS): %-rtl.css : %.css
|
||||
# see above
|
||||
@@ -141,7 +151,7 @@ JS_OUTPUTS := $(shell $(PYTHON) r2/lib/js.py enumerate_outputs)
|
||||
|
||||
.PHONY: clean_js
|
||||
|
||||
js: $(JS_MODULE_BUILDSTAMPS)
|
||||
js: $(STATIC_BUILDSTAMP) $(JS_MODULE_BUILDSTAMPS)
|
||||
|
||||
$(JS_OUTPUTS): $(JS_MODULE_BUILDSTAMPS)
|
||||
|
||||
@@ -156,12 +166,12 @@ endef
|
||||
$(foreach module,$(JS_MODULES),$(eval $(call JS_MODULE_TEMPLATE,$(module))))
|
||||
|
||||
clean_js:
|
||||
rm -f $(JS_MODULE_BUILDSTAMPS) $(STATIC_DIR)/*.js
|
||||
rm -f $(JS_MODULE_BUILDSTAMPS) $(STATIC_BUILD_DIR)/*.js
|
||||
|
||||
#### name mangling
|
||||
MANGLEABLE_FILES := $(CSS_OUTPUTS) $(JS_OUTPUTS)
|
||||
MANGLE_BUILDSTAMP := $(BUILD_DIR)/mangle-buildstamp
|
||||
NAMES_FILE := $(STATIC_DIR)/names.json
|
||||
NAMES_FILE := $(STATIC_BUILD_DIR)/names.json
|
||||
MANGLED_FILES := $(wildcard $(foreach file,$(MANGLEABLE_FILES),$(basename $(file)).*$(suffix $(file))))
|
||||
|
||||
.PHONY: clean_names
|
||||
@@ -176,7 +186,7 @@ clean_names:
|
||||
rm -f $(MANGLE_BUILDSTAMP) $(NAMES_FILES) $(MANGLEABLE_FILES) $(MANGLED_FILES) $(JS_MODULE_BUILDSTAMPS)
|
||||
|
||||
#### gzip!
|
||||
GZIPPABLE := $(filter %.css %.js,$(MANGLED_FILES) $(STATIC_DIR)/js/lib/jquery.js)
|
||||
GZIPPABLE := $(filter %.css %.js,$(MANGLED_FILES) $(STATIC_BUILD_DIR)/js/lib/jquery.js)
|
||||
GZIPPED := $(addsuffix .gzip,$(GZIPPABLE))
|
||||
|
||||
.PHONY: clean_gzip
|
||||
|
||||
@@ -30,7 +30,7 @@ mimetypes.init()
|
||||
import webhelpers
|
||||
|
||||
from r2.config import routing
|
||||
import r2.lib.app_globals as app_globals
|
||||
from r2.lib.app_globals import ConfigValue, Globals
|
||||
from r2.lib import rpc
|
||||
import r2.lib.helpers
|
||||
from r2.lib.plugin import PluginLoader
|
||||
@@ -45,13 +45,17 @@ def load_environment(global_conf={}, app_conf={}, setup_globals=True):
|
||||
paths = {'root': root_path,
|
||||
'controllers': os.path.join(root_path, 'controllers'),
|
||||
'templates': tmpl_dirs,
|
||||
'static_files': os.path.join(root_path, 'public')
|
||||
}
|
||||
|
||||
if ConfigValue.bool(global_conf.get('uncompressedJS')):
|
||||
paths['static_files'] = os.path.join(root_path, 'public')
|
||||
else:
|
||||
paths['static_files'] = os.path.join(os.path.dirname(root_path), 'build/public')
|
||||
|
||||
config.init_app(global_conf, app_conf, package='r2',
|
||||
template_engine='mako', paths=paths)
|
||||
|
||||
g = config['pylons.g'] = app_globals.Globals(global_conf, app_conf, paths)
|
||||
g = config['pylons.g'] = Globals(global_conf, app_conf, paths)
|
||||
if setup_globals:
|
||||
g.setup()
|
||||
reddit_config.cache = g.cache
|
||||
|
||||
@@ -17,7 +17,7 @@ else:
|
||||
# STATIC_ROOT will be None if pylons is uninitialized
|
||||
if not STATIC_ROOT:
|
||||
REDDIT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
STATIC_ROOT = os.path.join(REDDIT_ROOT, "public")
|
||||
STATIC_ROOT = os.path.join(os.path.dirname(REDDIT_ROOT), "build/public")
|
||||
|
||||
script_tag = '<script type="text/javascript" src="{src}"></script>\n'
|
||||
inline_script_tag = '<script type="text/javascript">{content}</script>\n'
|
||||
|
||||
Reference in New Issue
Block a user