- fix project root detection from runcommands.sh - add the sandalstrap project bootstrapper as sandalstrap.sh - explicitly check for CoffeeScript and JRE - remove readline from requirements Shouldn't be there in the first place, it's just a sad artifact of development on OSX.
Often when coding/debugging you'd like to have a shell at a certain point in your code. A common Python idiom for that is: from code import interact interact(local=locals()) This commit adds a function called utils.pyutils.interact, which looks into the stack and fetches the local scope of its caller, then runs an IPython (if available) or Python shell with this local scope. Also, this function is patched into __builtins__ under the name INTERACT. So anywhere in your code, you can just call INTERACT() and get a nifty shell with the relevant locals.
This commit adds a function called config.cdn.proxied(). You can pass any URL (absolute or relative) to proxied(), and it will look up an internal table of reverse-proxies (typically CDN endpoints) and see if this URL is covered by one. If the URL has a CDN endpoint, proxied() returns the CDN URL. If it doesn't, it just returns the same string as before. Relative URLs with no netloc are considered to be relative to SERVER_URL as set in the configuration. The table of CDN endpoints can be generated and cached by running config.cdn.get_cache(). At the time of this writing, get_cache() will return an empty if AWS credentials aren't found in the configuration, and a set of CloudFront distributions endpoints visible by these AWS credentials otherwise. Having two distributions with the same origin URL leads to undefined results.