├── bramble ├── __init__.py ├── base │ ├── templates │ │ ├── .gitignore │ │ ├── __init__.py │ │ ├── base │ │ │ └── index.html │ │ └── base.html │ ├── management │ │ ├── __init__.py │ │ └── commands │ │ │ └── __init__.py │ ├── __init__.py │ ├── urls.py │ ├── redis_utils.py │ └── views.py ├── settings │ ├── __init__.py │ ├── local.py-dist │ └── base.py └── urls.py ├── docs ├── _build │ ├── .gitkeep │ └── .gitignore ├── _static │ └── .gitkeep ├── _templates │ └── .gitkeep ├── index.rst └── build-github.zsh ├── media ├── css │ ├── .gitignore │ └── common │ │ └── main.css ├── img │ └── .gitignore └── js │ ├── .gitignore │ └── common │ ├── libs │ └── jquery.flot.resize.js │ └── charts.js ├── migrations ├── __init__.py ├── 01-noop.sql └── schematic_settings.py ├── vendor-local ├── lib │ └── python │ │ ├── django_extensions │ │ ├── models.py │ │ ├── db │ │ │ ├── __init__.py │ │ │ ├── models.py │ │ │ └── fields │ │ │ │ ├── encrypted.py │ │ │ │ └── json.py │ │ ├── jobs │ │ │ ├── __init__.py │ │ │ ├── daily │ │ │ │ ├── __init__.py │ │ │ │ ├── daily_cleanup.py │ │ │ │ └── cache_cleanup.py │ │ │ ├── hourly │ │ │ │ └── __init__.py │ │ │ ├── monthly │ │ │ │ └── __init__.py │ │ │ ├── weekly │ │ │ │ └── __init__.py │ │ │ └── yearly │ │ │ │ └── __init__.py │ │ ├── tests │ │ │ ├── urls.py │ │ │ ├── models.py │ │ │ ├── test_dumpscript.py │ │ │ ├── __init__.py │ │ │ ├── json_field.py │ │ │ ├── utils.py │ │ │ ├── uuid_field.py │ │ │ └── encrypted_fields.py │ │ ├── mongodb │ │ │ ├── __init__.py │ │ │ ├── fields │ │ │ │ ├── encrypted.py │ │ │ │ └── json.py │ │ │ └── models.py │ │ ├── utils │ │ │ ├── __init__.py │ │ │ └── text.py │ │ ├── management │ │ │ ├── __init__.py │ │ │ ├── commands │ │ │ │ ├── __init__.py │ │ │ │ ├── generate_secret_key.py │ │ │ │ ├── update_permissions.py │ │ │ │ ├── find_template.py │ │ │ │ ├── passwd.py │ │ │ │ ├── mail_debug.py │ │ │ │ ├── compile_pyc.py │ │ │ │ ├── set_fake_passwords.py │ │ │ │ ├── clean_pyc.py │ │ │ │ ├── print_user_for_session.py │ │ │ │ ├── notes.py │ │ │ │ ├── unreferenced_files.py │ │ │ │ ├── create_jobs.py │ │ │ │ ├── runjob.py │ │ │ │ ├── describe_form.py │ │ │ │ ├── graph_models.py │ │ │ │ ├── set_fake_emails.py │ │ │ │ ├── create_command.py │ │ │ │ └── runjobs.py │ │ │ ├── utils.py │ │ │ ├── signals.py │ │ │ └── color.py │ │ ├── templatetags │ │ │ ├── __init__.py │ │ │ ├── truncate_letters.py │ │ │ ├── widont.py │ │ │ ├── syntax_color.py │ │ │ └── highlighting.py │ │ ├── conf │ │ │ ├── app_template │ │ │ │ ├── __init__.py.tmpl │ │ │ │ ├── views.py.tmpl │ │ │ │ ├── forms.py.tmpl │ │ │ │ ├── models.py.tmpl │ │ │ │ └── urls.py.tmpl │ │ │ ├── jobs_template │ │ │ │ └── jobs │ │ │ │ │ ├── __init__.py.tmpl │ │ │ │ │ ├── daily │ │ │ │ │ └── __init__.py.tmpl │ │ │ │ │ ├── hourly │ │ │ │ │ └── __init__.py.tmpl │ │ │ │ │ ├── monthly │ │ │ │ │ └── __init__.py.tmpl │ │ │ │ │ ├── weekly │ │ │ │ │ └── __init__.py.tmpl │ │ │ │ │ ├── yearly │ │ │ │ │ └── __init__.py.tmpl │ │ │ │ │ └── sample.py.tmpl │ │ │ └── command_template │ │ │ │ └── management │ │ │ │ ├── __init__.py.tmpl │ │ │ │ └── commands │ │ │ │ ├── __init__.py.tmpl │ │ │ │ └── sample.py.tmpl │ │ ├── templates │ │ │ └── django_extensions │ │ │ │ ├── graph_models │ │ │ │ ├── tail.html │ │ │ │ ├── head.html │ │ │ │ ├── rel.html │ │ │ │ └── body.html │ │ │ │ └── widgets │ │ │ │ └── foreignkey_searchinput.html │ │ ├── media │ │ │ └── django_extensions │ │ │ │ ├── img │ │ │ │ └── indicator.gif │ │ │ │ ├── css │ │ │ │ └── jquery.autocomplete.css │ │ │ │ └── js │ │ │ │ ├── jquery.bgiframe.min.js │ │ │ │ └── jquery.ajaxQueue.js │ │ ├── settings.py │ │ ├── __init__.py │ │ └── admin │ │ │ └── widgets.py │ │ ├── werkzeug │ │ ├── testsuite │ │ │ ├── res │ │ │ │ └── test.txt │ │ │ ├── multipart │ │ │ │ ├── ie6-2png1txt │ │ │ │ │ ├── text.txt │ │ │ │ │ ├── file1.png │ │ │ │ │ ├── file2.png │ │ │ │ │ └── request.txt │ │ │ │ ├── firefox3-2png1txt │ │ │ │ │ ├── text.txt │ │ │ │ │ ├── file1.png │ │ │ │ │ ├── file2.png │ │ │ │ │ └── request.txt │ │ │ │ ├── opera8-2png1txt │ │ │ │ │ ├── text.txt │ │ │ │ │ ├── file1.png │ │ │ │ │ ├── file2.png │ │ │ │ │ └── request.txt │ │ │ │ ├── webkit3-2png1txt │ │ │ │ │ ├── text.txt │ │ │ │ │ ├── file1.png │ │ │ │ │ ├── file2.png │ │ │ │ │ └── request.txt │ │ │ │ ├── firefox3-2pnglongtext │ │ │ │ │ ├── text.txt │ │ │ │ │ ├── file1.png │ │ │ │ │ ├── file2.png │ │ │ │ │ └── request.txt │ │ │ │ ├── ie7_full_path_request.txt │ │ │ │ └── collect.py │ │ │ ├── contrib │ │ │ │ ├── __init__.py │ │ │ │ ├── securecookie.py │ │ │ │ ├── iterio.py │ │ │ │ ├── sessions.py │ │ │ │ └── wrappers.py │ │ │ ├── security.py │ │ │ ├── compat.py │ │ │ ├── serving.py │ │ │ ├── internal.py │ │ │ ├── exceptions.py │ │ │ └── local.py │ │ ├── debug │ │ │ └── shared │ │ │ │ ├── less.png │ │ │ │ ├── more.png │ │ │ │ ├── console.png │ │ │ │ ├── source.png │ │ │ │ └── ubuntu.ttf │ │ ├── contrib │ │ │ ├── __init__.py │ │ │ ├── limiter.py │ │ │ └── testtools.py │ │ └── posixemulation.py │ │ ├── Werkzeug-0.8.3-py2.6.egg-info │ │ ├── not-zip-safe │ │ ├── dependency_links.txt │ │ ├── top_level.txt │ │ └── PKG-INFO │ │ ├── anyjson-0.3.1-py2.6.egg-info │ │ ├── not-zip-safe │ │ ├── dependency_links.txt │ │ ├── top_level.txt │ │ ├── installed-files.txt │ │ ├── SOURCES.txt │ │ └── PKG-INFO │ │ ├── redis-2.4.11-py2.6.egg-info │ │ ├── dependency_links.txt │ │ ├── top_level.txt │ │ ├── installed-files.txt │ │ └── SOURCES.txt │ │ ├── django_extensions-0.8-py2.6.egg-info │ │ ├── dependency_links.txt │ │ ├── top_level.txt │ │ └── PKG-INFO │ │ └── redis │ │ ├── exceptions.py │ │ └── __init__.py └── vendor.pth ├── lib └── product_details_json │ ├── thunderbird_beta_builds.json │ ├── mobile_history_stability_releases.json │ ├── mobile_history_major_releases.json │ ├── thunderbird_versions.json │ ├── thunderbird_history_major_releases.json │ ├── mobile_history_development_releases.json │ ├── firefox_history_major_releases.json │ ├── firefox_versions.json │ ├── thunderbird_history_development_releases.json │ ├── thunderbird_history_stability_releases.json │ ├── firefox_history_development_releases.json │ ├── firefox_history_stability_releases.json │ └── firefox_beta_builds.json ├── MANIFEST.in ├── requirements ├── compiled.txt ├── prod.txt └── dev.txt ├── puppet ├── manifests │ ├── classes │ │ ├── custom.pp │ │ ├── memcached.pp │ │ ├── mysql.pp │ │ ├── init.pp │ │ ├── python.pp │ │ ├── playdoh.pp │ │ └── apache.pp │ └── vagrant.pp └── files │ └── etc │ └── httpd │ └── conf.d │ └── playdoh.conf ├── vagrantconfig.yaml ├── vagrantconfig_local.yaml-dist ├── .gitmodules ├── .gitignore ├── bin ├── update │ └── commander_settings.py-dist ├── crontab │ ├── crontab.tpl │ └── gen-crons.py ├── compile-mo.sh └── jenkins.sh ├── setup.py ├── wsgi └── playdoh.wsgi ├── manage.py └── Vagrantfile /bramble/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/_build/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/_static/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/css/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/img/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/js/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/_build/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | -------------------------------------------------------------------------------- /docs/_templates/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bramble/base/templates/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bramble/base/management/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bramble/base/templates/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bramble/base/management/commands/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/models.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/vendor.pth: -------------------------------------------------------------------------------- 1 | src/django-redis-cache 2 | -------------------------------------------------------------------------------- /lib/product_details_json/thunderbird_beta_builds.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/db/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/jobs/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/tests/urls.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/mongodb/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/jobs/daily/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/jobs/hourly/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/jobs/monthly/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/jobs/weekly/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/jobs/yearly/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/management/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/res/test.txt: -------------------------------------------------------------------------------- 1 | FOUND 2 | -------------------------------------------------------------------------------- /vendor-local/lib/python/Werkzeug-0.8.3-py2.6.egg-info/not-zip-safe: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /vendor-local/lib/python/anyjson-0.3.1-py2.6.egg-info/not-zip-safe: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/management/commands/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/lib/python/anyjson-0.3.1-py2.6.egg-info/dependency_links.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /vendor-local/lib/python/anyjson-0.3.1-py2.6.egg-info/top_level.txt: -------------------------------------------------------------------------------- 1 | anyjson 2 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/conf/app_template/__init__.py.tmpl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/lib/python/redis-2.4.11-py2.6.egg-info/dependency_links.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /vendor-local/lib/python/redis-2.4.11-py2.6.egg-info/top_level.txt: -------------------------------------------------------------------------------- 1 | redis 2 | -------------------------------------------------------------------------------- /bramble/base/__init__.py: -------------------------------------------------------------------------------- 1 | """Application base, containing global templates.""" 2 | -------------------------------------------------------------------------------- /vendor-local/lib/python/Werkzeug-0.8.3-py2.6.egg-info/dependency_links.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /vendor-local/lib/python/Werkzeug-0.8.3-py2.6.egg-info/top_level.txt: -------------------------------------------------------------------------------- 1 | werkzeug 2 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/conf/jobs_template/jobs/__init__.py.tmpl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | recursive-include */*/templates *.* 2 | recursive-include */locale *.* 3 | -------------------------------------------------------------------------------- /lib/product_details_json/mobile_history_stability_releases.json: -------------------------------------------------------------------------------- 1 | {"1.0.1":"2010-04-13"} -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions-0.8-py2.6.egg-info/dependency_links.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/conf/jobs_template/jobs/daily/__init__.py.tmpl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/multipart/ie6-2png1txt/text.txt: -------------------------------------------------------------------------------- 1 | ie6 sucks :-/ -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/conf/command_template/management/__init__.py.tmpl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/conf/jobs_template/jobs/hourly/__init__.py.tmpl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/conf/jobs_template/jobs/monthly/__init__.py.tmpl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/conf/jobs_template/jobs/weekly/__init__.py.tmpl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/conf/jobs_template/jobs/yearly/__init__.py.tmpl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/templates/django_extensions/graph_models/tail.html: -------------------------------------------------------------------------------- 1 | } -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/multipart/firefox3-2png1txt/text.txt: -------------------------------------------------------------------------------- 1 | example text -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/multipart/opera8-2png1txt/text.txt: -------------------------------------------------------------------------------- 1 | blafasel öäü -------------------------------------------------------------------------------- /lib/product_details_json/mobile_history_major_releases.json: -------------------------------------------------------------------------------- 1 | {"1.0":"2010-01-28","1.1":"2010-07-01"} -------------------------------------------------------------------------------- /migrations/01-noop.sql: -------------------------------------------------------------------------------- 1 | -- Example database migration for schematic. Remove this, if you like. 2 | -------------------------------------------------------------------------------- /requirements/compiled.txt: -------------------------------------------------------------------------------- 1 | -r ../vendor/src/funfactory/funfactory/requirements/compiled.txt 2 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions-0.8-py2.6.egg-info/top_level.txt: -------------------------------------------------------------------------------- 1 | django_extensions 2 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/conf/app_template/views.py.tmpl: -------------------------------------------------------------------------------- 1 | # Create your views here. 2 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/conf/command_template/management/commands/__init__.py.tmpl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/multipart/webkit3-2png1txt/text.txt: -------------------------------------------------------------------------------- 1 | this is another text with ümläüts -------------------------------------------------------------------------------- /puppet/manifests/classes/custom.pp: -------------------------------------------------------------------------------- 1 | # You can add custom puppet manifests for your app here. 2 | class custom { 3 | } 4 | -------------------------------------------------------------------------------- /requirements/prod.txt: -------------------------------------------------------------------------------- 1 | -r ../vendor/src/funfactory/funfactory/requirements/prod.txt 2 | redis==2.4.11 3 | anyjson==0.3.1 4 | 5 | -------------------------------------------------------------------------------- /lib/product_details_json/thunderbird_versions.json: -------------------------------------------------------------------------------- 1 | {"LATEST_THUNDERBIRD_VERSION":"3.1.7","LATEST_THUNDERBIRD__OLDER_VERSION":"3.0.11"} -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/multipart/firefox3-2pnglongtext/text.txt: -------------------------------------------------------------------------------- 1 | --long text 2 | --with boundary 3 | --lookalikes-- -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/conf/app_template/forms.py.tmpl: -------------------------------------------------------------------------------- 1 | from django import forms 2 | 3 | # place form definition here -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/conf/app_template/models.py.tmpl: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/conf/app_template/urls.py.tmpl: -------------------------------------------------------------------------------- 1 | from django.conf.urls.defaults import * 2 | 3 | # place app url patterns here -------------------------------------------------------------------------------- /lib/product_details_json/thunderbird_history_major_releases.json: -------------------------------------------------------------------------------- 1 | {"1.0":"2004-12-07","1.5":"2006-01-11","2.0":"2007-04-18","3.0":"2009-12-08","3.1":"2010-06-24"} -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/debug/shared/less.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterbe/bramble/master/vendor-local/lib/python/werkzeug/debug/shared/less.png -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/debug/shared/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterbe/bramble/master/vendor-local/lib/python/werkzeug/debug/shared/more.png -------------------------------------------------------------------------------- /vagrantconfig.yaml: -------------------------------------------------------------------------------- 1 | # Default config for Vagrant 2 | 3 | # Don't change this; use vagrantconfig_local.yaml to override these 4 | # settings instead. 5 | nfs: false 6 | -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/debug/shared/console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterbe/bramble/master/vendor-local/lib/python/werkzeug/debug/shared/console.png -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/debug/shared/source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterbe/bramble/master/vendor-local/lib/python/werkzeug/debug/shared/source.png -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/debug/shared/ubuntu.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterbe/bramble/master/vendor-local/lib/python/werkzeug/debug/shared/ubuntu.ttf -------------------------------------------------------------------------------- /lib/product_details_json/mobile_history_development_releases.json: -------------------------------------------------------------------------------- 1 | {"1.1b1":"2010-04-28","1.1rc1":"2010-06-16","4.0b1":"2010-10-06","4.0b2":"2010-11-04","4.0b3":"2010-12-22"} -------------------------------------------------------------------------------- /lib/product_details_json/firefox_history_major_releases.json: -------------------------------------------------------------------------------- 1 | {"1.0":"2004-11-09","1.5":"2005-11-29","2.0":"2006-10-24","3.0":"2008-06-17","3.5":"2009-06-30","3.6":"2010-01-21"} -------------------------------------------------------------------------------- /vagrantconfig_local.yaml-dist: -------------------------------------------------------------------------------- 1 | # Configuration for Vagrant 2 | 3 | # Change to true if you can use nfs; using nfs significantly 4 | # improves performance. 5 | nfs: false 6 | -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/multipart/ie6-2png1txt/file1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterbe/bramble/master/vendor-local/lib/python/werkzeug/testsuite/multipart/ie6-2png1txt/file1.png -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/multipart/ie6-2png1txt/file2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterbe/bramble/master/vendor-local/lib/python/werkzeug/testsuite/multipart/ie6-2png1txt/file2.png -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/multipart/ie6-2png1txt/request.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterbe/bramble/master/vendor-local/lib/python/werkzeug/testsuite/multipart/ie6-2png1txt/request.txt -------------------------------------------------------------------------------- /lib/product_details_json/firefox_versions.json: -------------------------------------------------------------------------------- 1 | {"LATEST_FIREFOX_VERSION":"3.6.13","LATEST_FIREFOX_DEVEL_VERSION":"4.0b10","LATEST_FIREFOX_RELEASED_DEVEL_VERSION":"4.0b10","LATEST_FIREFOX_OLDER_VERSION":"3.5.16"} -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/multipart/firefox3-2png1txt/file1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterbe/bramble/master/vendor-local/lib/python/werkzeug/testsuite/multipart/firefox3-2png1txt/file1.png -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/multipart/firefox3-2png1txt/file2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterbe/bramble/master/vendor-local/lib/python/werkzeug/testsuite/multipart/firefox3-2png1txt/file2.png -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/multipart/ie7_full_path_request.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterbe/bramble/master/vendor-local/lib/python/werkzeug/testsuite/multipart/ie7_full_path_request.txt -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/multipart/opera8-2png1txt/file1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterbe/bramble/master/vendor-local/lib/python/werkzeug/testsuite/multipart/opera8-2png1txt/file1.png -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/multipart/opera8-2png1txt/file2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterbe/bramble/master/vendor-local/lib/python/werkzeug/testsuite/multipart/opera8-2png1txt/file2.png -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/multipart/opera8-2png1txt/request.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterbe/bramble/master/vendor-local/lib/python/werkzeug/testsuite/multipart/opera8-2png1txt/request.txt -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/multipart/webkit3-2png1txt/file1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterbe/bramble/master/vendor-local/lib/python/werkzeug/testsuite/multipart/webkit3-2png1txt/file1.png -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/multipart/webkit3-2png1txt/file2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterbe/bramble/master/vendor-local/lib/python/werkzeug/testsuite/multipart/webkit3-2png1txt/file2.png -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/multipart/firefox3-2png1txt/request.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterbe/bramble/master/vendor-local/lib/python/werkzeug/testsuite/multipart/firefox3-2png1txt/request.txt -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/multipart/webkit3-2png1txt/request.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterbe/bramble/master/vendor-local/lib/python/werkzeug/testsuite/multipart/webkit3-2png1txt/request.txt -------------------------------------------------------------------------------- /vendor-local/lib/python/anyjson-0.3.1-py2.6.egg-info/installed-files.txt: -------------------------------------------------------------------------------- 1 | ../anyjson/__init__.py 2 | ../anyjson/__init__.pyc 3 | ./ 4 | dependency_links.txt 5 | not-zip-safe 6 | PKG-INFO 7 | SOURCES.txt 8 | top_level.txt 9 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/media/django_extensions/img/indicator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterbe/bramble/master/vendor-local/lib/python/django_extensions/media/django_extensions/img/indicator.gif -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/multipart/firefox3-2pnglongtext/file1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterbe/bramble/master/vendor-local/lib/python/werkzeug/testsuite/multipart/firefox3-2pnglongtext/file1.png -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/multipart/firefox3-2pnglongtext/file2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterbe/bramble/master/vendor-local/lib/python/werkzeug/testsuite/multipart/firefox3-2pnglongtext/file2.png -------------------------------------------------------------------------------- /bramble/settings/__init__.py: -------------------------------------------------------------------------------- 1 | from .base import * 2 | try: 3 | from .local import * 4 | except ImportError, exc: 5 | exc.args = tuple(['%s (did you rename settings/local.py-dist?)' % exc.args[0]]) 6 | raise exc 7 | -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/multipart/firefox3-2pnglongtext/request.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/peterbe/bramble/master/vendor-local/lib/python/werkzeug/testsuite/multipart/firefox3-2pnglongtext/request.txt -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/settings.py: -------------------------------------------------------------------------------- 1 | from django.conf import settings 2 | 3 | REPLACEMENTS = { 4 | } 5 | add_replacements = getattr(settings, 'EXTENSIONS_REPLACEMENTS', {}) 6 | REPLACEMENTS.update(add_replacements) 7 | 8 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "vendor"] 2 | path = vendor 3 | url = git://github.com/mozilla/playdoh-lib.git 4 | [submodule "vendor-local/src/django-redis-cache"] 5 | path = vendor-local/src/django-redis-cache 6 | url = git://github.com/sebleier/django-redis-cache.git 7 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/conf/jobs_template/jobs/sample.py.tmpl: -------------------------------------------------------------------------------- 1 | from django_extensions.management.jobs import BaseJob 2 | 3 | class Job(BaseJob): 4 | help = "My sample job." 5 | 6 | def execute(self): 7 | # executing empty sample job 8 | pass 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | settings_local.py 2 | settings/local.py 3 | */settings/local.py 4 | *.py[co] 5 | *.sw[po] 6 | .coverage 7 | pip-log.txt 8 | docs/_gh-pages 9 | build.py 10 | build 11 | .DS_Store 12 | *-min.css 13 | *-all.css 14 | *-min.js 15 | *-all.js 16 | .noseids 17 | tmp/* 18 | *~ 19 | *.mo 20 | -------------------------------------------------------------------------------- /bin/update/commander_settings.py-dist: -------------------------------------------------------------------------------- 1 | SRC_DIR = '' 2 | WWW_DIR = '' 3 | 4 | CRON_NAME = '' 5 | 6 | DEPLOY_SCRIPT = '' 7 | REMOTE_UPDATE_SCRIPT = '' 8 | 9 | WEB_HOSTGROUP = '' 10 | CELERY_HOSTGROUP = '' 11 | CELERY_SERVICE = '' 12 | 13 | UPDATE_REF = 'origin/master' 14 | SSH_KEY = None 15 | -------------------------------------------------------------------------------- /bramble/base/templates/base/index.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 |
5 |
6 |
7 |
8 |
9 |

10 | 11 |
12 | {% endblock %} 13 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/conf/command_template/management/commands/sample.py.tmpl: -------------------------------------------------------------------------------- 1 | from django.core.management.base import {{ base_command }} 2 | 3 | class Command({{ base_command }}): 4 | help = "My shiny new management command." 5 | 6 | def {{ handle_method }}: 7 | raise NotImplementedError() -------------------------------------------------------------------------------- /bin/crontab/crontab.tpl: -------------------------------------------------------------------------------- 1 | # 2 | # {{ header }} 3 | # 4 | 5 | # MAILTO=some-email-list 6 | 7 | HOME=/tmp 8 | 9 | # Every minute! 10 | * * * * * {{ cron }} 11 | 12 | # Every hour. 13 | 42 * * * * {{ django }} cleanup 14 | 15 | # Every 2 hours. 16 | 1 */2 * * * {{ cron }} something 17 | 18 | # Etc... 19 | 20 | MAILTO=root 21 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/management/utils.py: -------------------------------------------------------------------------------- 1 | from django.conf import settings 2 | import os 3 | 4 | 5 | def get_project_root(): 6 | """ get the project root directory """ 7 | settings_mod = __import__(settings.SETTINGS_MODULE, {}, {}, ['']) 8 | return os.path.dirname(os.path.abspath(settings_mod.__file__)) 9 | -------------------------------------------------------------------------------- /vendor-local/lib/python/anyjson-0.3.1-py2.6.egg-info/SOURCES.txt: -------------------------------------------------------------------------------- 1 | CHANGELOG 2 | LICENSE 3 | MANIFEST.in 4 | README 5 | setup.cfg 6 | setup.py 7 | anyjson/__init__.py 8 | anyjson.egg-info/PKG-INFO 9 | anyjson.egg-info/SOURCES.txt 10 | anyjson.egg-info/dependency_links.txt 11 | anyjson.egg-info/not-zip-safe 12 | anyjson.egg-info/top_level.txt -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/templates/django_extensions/graph_models/head.html: -------------------------------------------------------------------------------- 1 | 2 | digraph name { 3 | fontname = "Helvetica" 4 | fontsize = 8 5 | 6 | node [ 7 | fontname = "Helvetica" 8 | fontsize = 8 9 | shape = "plaintext" 10 | ] 11 | edge [ 12 | fontname = "Helvetica" 13 | fontsize = 8 14 | ] 15 | 16 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/management/signals.py: -------------------------------------------------------------------------------- 1 | """ 2 | signals we use to trigger regular batch jobs 3 | """ 4 | from django.dispatch import Signal 5 | 6 | run_minutely_jobs = Signal() 7 | run_hourly_jobs = Signal() 8 | run_daily_jobs = Signal() 9 | run_weekly_jobs = Signal() 10 | run_monthly_jobs = Signal() 11 | run_yearly_jobs = Signal() 12 | -------------------------------------------------------------------------------- /vendor-local/lib/python/redis-2.4.11-py2.6.egg-info/installed-files.txt: -------------------------------------------------------------------------------- 1 | ../redis/__init__.py 2 | ../redis/client.py 3 | ../redis/connection.py 4 | ../redis/exceptions.py 5 | ../redis/__init__.pyc 6 | ../redis/client.pyc 7 | ../redis/connection.pyc 8 | ../redis/exceptions.pyc 9 | ./ 10 | dependency_links.txt 11 | PKG-INFO 12 | SOURCES.txt 13 | top_level.txt 14 | -------------------------------------------------------------------------------- /requirements/dev.txt: -------------------------------------------------------------------------------- 1 | # This file pulls in everything a developer needs. If it's a basic package 2 | # needed to run the site, it belongs in requirements/prod.txt. If it's a 3 | # package for developers (testing, docs, etc.), it goes in this file. 4 | 5 | -r ../vendor/src/funfactory/funfactory/requirements/compiled.txt 6 | -r ../vendor/src/funfactory/funfactory/requirements/dev.txt 7 | -------------------------------------------------------------------------------- /vendor-local/lib/python/redis-2.4.11-py2.6.egg-info/SOURCES.txt: -------------------------------------------------------------------------------- 1 | CHANGES 2 | INSTALL 3 | LICENSE 4 | MANIFEST.in 5 | README.md 6 | setup.cfg 7 | setup.py 8 | redis/__init__.py 9 | redis/client.py 10 | redis/connection.py 11 | redis/exceptions.py 12 | redis.egg-info/PKG-INFO 13 | redis.egg-info/SOURCES.txt 14 | redis.egg-info/dependency_links.txt 15 | redis.egg-info/top_level.txt -------------------------------------------------------------------------------- /media/css/common/main.css: -------------------------------------------------------------------------------- 1 | body { 2 | background:#a0d8ef; 3 | } 4 | 5 | em { 6 | font-weight:bold; 7 | font-style:normal !important; 8 | } 9 | 10 | header { 11 | padding-top:2em; 12 | padding-bottom:2em; 13 | font-variant:small-caps; 14 | } 15 | 16 | .large { 17 | font-size:3em; 18 | } 19 | 20 | #machinestatus { 21 | height: 250px; 22 | } 23 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | VERSION = (0, 8) 3 | 4 | # Dynamically calculate the version based on VERSION tuple 5 | if len(VERSION) > 2 and VERSION[2] is not None: 6 | if isinstance(VERSION[2], int): 7 | str_version = "%s.%s.%s" % VERSION[:3] 8 | else: 9 | str_version = "%s.%s_%s" % VERSION[:3] 10 | else: 11 | str_version = "%s.%s" % VERSION[:2] 12 | 13 | __version__ = str_version 14 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from setuptools import setup, find_packages 4 | 5 | 6 | setup(name='bramble', 7 | version='1.0', 8 | description='Django application.', 9 | long_description='', 10 | author='', 11 | author_email='', 12 | license='', 13 | url='', 14 | include_package_data=True, 15 | classifiers = [], 16 | packages=find_packages(exclude=['tests']), 17 | install_requires=[]) 18 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/jobs/daily/daily_cleanup.py: -------------------------------------------------------------------------------- 1 | """ 2 | Daily cleanup job. 3 | 4 | Can be run as a cronjob to clean out old data from the database (only expired 5 | sessions at the moment). 6 | """ 7 | 8 | from django_extensions.management.jobs import DailyJob 9 | 10 | 11 | class Job(DailyJob): 12 | help = "Django Daily Cleanup Job" 13 | 14 | def execute(self): 15 | from django.core import management 16 | management.call_command("cleanup") 17 | -------------------------------------------------------------------------------- /puppet/manifests/classes/memcached.pp: -------------------------------------------------------------------------------- 1 | # We use memcached in production, so we _should_ use it while 2 | # we develop as well. That said, playdoh shouldn't *rely* on it 3 | # entirely; it should work with any non-null cache store in Django. 4 | class memcached { 5 | package { "memcached": 6 | ensure => installed; 7 | } 8 | 9 | service { "memcached": 10 | ensure => running, 11 | enable => true, 12 | require => Package['memcached']; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /lib/product_details_json/thunderbird_history_development_releases.json: -------------------------------------------------------------------------------- 1 | {"1.0rc1":"2004-12-01","1.5b1":"2005-09-09","1.5b2":"2005-10-07","1.5rc1":"2005-11-05","1.5rc2":"2005-12-21","2.0b1":"2006-12-12","2.0b2":"2007-01-23","2.0rc1":"2007-04-06","3.0a1":"2008-05-12","3.0a2":"2008-07-13","3.0a3":"2008-10-14","3.0b1":"2008-12-09","3.0b2":"2009-02-26","3.0b3":"2009-07-21","3.0b4":"2009-10-22","3.0rc1":"2009-11-24","3.0rc2":"2009-12-01","3.1a1":"2010-02-03","3.1b1":"2010-03-10","3.1rc1":"2010-05-27","3.1rc2":"2010-06-09"} -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/management/commands/generate_secret_key.py: -------------------------------------------------------------------------------- 1 | from random import choice 2 | from django.core.management.base import NoArgsCommand 3 | 4 | 5 | class Command(NoArgsCommand): 6 | help = "Generates a new SECRET_KEY that can be used in a project settings file." 7 | 8 | requires_model_validation = False 9 | 10 | def handle_noargs(self, **options): 11 | return ''.join([choice('abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)') for i in range(50)]) 12 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/utils/text.py: -------------------------------------------------------------------------------- 1 | from django.utils.encoding import force_unicode 2 | from django.utils.functional import allow_lazy 3 | 4 | 5 | def truncate_letters(s, num): 6 | """ truncates a string to a number of letters, similar to truncate_words """ 7 | s = force_unicode(s) 8 | length = int(num) 9 | if len(s) > length: 10 | s = s[:length] 11 | if not s.endswith('...'): 12 | s += '...' 13 | return s 14 | truncate_letters = allow_lazy(truncate_letters, unicode) 15 | -------------------------------------------------------------------------------- /vendor-local/lib/python/redis/exceptions.py: -------------------------------------------------------------------------------- 1 | "Core exceptions raised by the Redis client" 2 | 3 | class RedisError(Exception): 4 | pass 5 | 6 | class AuthenticationError(RedisError): 7 | pass 8 | 9 | class ConnectionError(RedisError): 10 | pass 11 | 12 | class ResponseError(RedisError): 13 | pass 14 | 15 | class InvalidResponse(RedisError): 16 | pass 17 | 18 | class DataError(RedisError): 19 | pass 20 | 21 | class PubSubError(RedisError): 22 | pass 23 | 24 | class WatchError(RedisError): 25 | pass 26 | 27 | -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/testsuite/contrib/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | werkzeug.testsuite.contrib 4 | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 5 | 6 | Tests the contrib modules. 7 | 8 | :copyright: (c) 2011 by Armin Ronacher. 9 | :license: BSD, see LICENSE for more details. 10 | """ 11 | import unittest 12 | from werkzeug.testsuite import iter_suites 13 | 14 | 15 | def suite(): 16 | suite = unittest.TestSuite() 17 | for other_suite in iter_suites(__name__): 18 | suite.addTest(other_suite) 19 | return suite 20 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/management/color.py: -------------------------------------------------------------------------------- 1 | """ 2 | Sets up the terminal color scheme. 3 | """ 4 | 5 | from django.core.management import color 6 | from django.utils import termcolors 7 | 8 | 9 | def color_style(): 10 | style = color.color_style() 11 | if color.supports_color(): 12 | style.URL = termcolors.make_style(fg='green', opts=('bold',)) 13 | style.MODULE = termcolors.make_style(fg='yellow') 14 | style.MODULE_NAME = termcolors.make_style(opts=('bold',)) 15 | style.URL_NAME = termcolors.make_style(fg='red') 16 | return style 17 | -------------------------------------------------------------------------------- /wsgi/playdoh.wsgi: -------------------------------------------------------------------------------- 1 | import os 2 | import site 3 | 4 | os.environ.setdefault('CELERY_LOADER', 'django') 5 | # NOTE: you can also set DJANGO_SETTINGS_MODULE in your environment to override 6 | # the default value in manage.py 7 | 8 | # Add the app dir to the python path so we can import manage. 9 | wsgidir = os.path.dirname(__file__) 10 | site.addsitedir(os.path.abspath(os.path.join(wsgidir, '../'))) 11 | 12 | # manage adds /apps, /lib, and /vendor to the Python path. 13 | import manage 14 | 15 | import django.core.handlers.wsgi 16 | application = django.core.handlers.wsgi.WSGIHandler() 17 | 18 | # vim: ft=python 19 | -------------------------------------------------------------------------------- /puppet/manifests/classes/mysql.pp: -------------------------------------------------------------------------------- 1 | # Get mysql up and running 2 | class mysql { 3 | package { "mysql-server": 4 | ensure => installed; 5 | } 6 | 7 | case $operatingsystem { 8 | centos: { 9 | package { "mysql-devel": 10 | ensure => installed; 11 | } 12 | } 13 | 14 | ubuntu: { 15 | package { "libmysqld-dev": 16 | ensure => installed; 17 | } 18 | } 19 | } 20 | 21 | service { "mysql": 22 | ensure => running, 23 | enable => true, 24 | require => Package['mysql-server']; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/tests/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | try: 4 | from django_extensions.db.fields.encrypted import EncryptedTextField, EncryptedCharField 5 | except ImportError: 6 | class EncryptedCharField(object): 7 | def __init__(self, **kwargs): 8 | pass 9 | 10 | class EncryptedTextField(object): 11 | def __init__(self, **kwargs): 12 | pass 13 | 14 | 15 | class Secret(models.Model): 16 | name = EncryptedCharField(blank=True, max_length=255) 17 | text = EncryptedTextField(blank=True) 18 | 19 | class Name(models.Model): 20 | name = models.CharField(max_length=50) 21 | 22 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/tests/test_dumpscript.py: -------------------------------------------------------------------------------- 1 | import sys 2 | from StringIO import StringIO 3 | from django.test import TestCase 4 | from django.core.management import call_command 5 | from django_extensions.tests.models import Name 6 | 7 | class DumpScriptTests(TestCase): 8 | def setUp(self): 9 | self.real_stdout = sys.stdout 10 | sys.stdout = StringIO() 11 | 12 | def tearDown(self): 13 | sys.stdout = self.real_stdout 14 | 15 | def test_runs(self): 16 | # lame test...does it run? 17 | n = Name(name='Gabriel') 18 | n.save() 19 | call_command('dumpscript', 'tests') 20 | self.assertTrue('Gabriel' in sys.stdout.getvalue()) 21 | -------------------------------------------------------------------------------- /puppet/manifests/vagrant.pp: -------------------------------------------------------------------------------- 1 | # 2 | # Playdoh puppet magic for dev boxes 3 | # 4 | import "classes/*.pp" 5 | 6 | $PROJ_DIR = "/home/vagrant/project" 7 | 8 | # You can make these less generic if you like, but these are box-specific 9 | # so it's not required. 10 | $DB_NAME = "playdoh_app" 11 | $DB_USER = "root" 12 | 13 | Exec { 14 | path => "/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin", 15 | } 16 | 17 | class dev { 18 | class { 19 | init: before => Class[mysql]; 20 | mysql: before => Class[python]; 21 | python: before => Class[apache]; 22 | apache: before => Class[playdoh]; 23 | memcached: ; 24 | playdoh: ; 25 | custom: ; 26 | } 27 | } 28 | 29 | include dev 30 | -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/contrib/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | werkzeug.contrib 4 | ~~~~~~~~~~~~~~~~ 5 | 6 | Contains user-submitted code that other users may find useful, but which 7 | is not part of the Werkzeug core. Anyone can write code for inclusion in 8 | the `contrib` package. All modules in this package are distributed as an 9 | add-on library and thus are not part of Werkzeug itself. 10 | 11 | This file itself is mostly for informational purposes and to tell the 12 | Python interpreter that `contrib` is a package. 13 | 14 | :copyright: (c) 2011 by the Werkzeug Team, see AUTHORS for more details. 15 | :license: BSD, see LICENSE for more details. 16 | """ 17 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/templates/django_extensions/graph_models/rel.html: -------------------------------------------------------------------------------- 1 | {% for model in models %} 2 | {% for relation in model.relations %} 3 | {% if relation.needs_node %} 4 | {{ relation.target_app }}_{{ relation.target }} [label=< 5 | 6 | 9 |
{{ relation.target }}
10 | >] 11 | {% endif %} 12 | {{ model.app_name }}_{{ model.name }} -> {{ relation.target_app }}_{{ relation.target }} 13 | [label="{{ relation.label }}"] {{ relation.arrows }}; 14 | {% endfor %} 15 | {% endfor %} -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | from django_extensions.tests.test_dumpscript import DumpScriptTests 3 | from django_extensions.tests.utils import UTILS_TRUNCATE_LETTERS_TESTS 4 | from django_extensions.tests.utils import UTILS_UUID_TESTS 5 | from django_extensions.tests.json_field import JsonFieldTest 6 | from django_extensions.tests.uuid_field import UUIDFieldTest 7 | try: 8 | from django_extensions.tests.encrypted_fields import EncryptedFieldsTestCase 9 | from django_extensions.tests.models import Secret 10 | except ImportError: 11 | pass 12 | 13 | __test__ = { 14 | 'UTILS_TRUNCATE_LETTERS_TESTS': UTILS_TRUNCATE_LETTERS_TESTS, 15 | 'UTILS_UUID_TESTS': UTILS_UUID_TESTS, 16 | } 17 | -------------------------------------------------------------------------------- /bin/compile-mo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | TARGET=$1 4 | LOCKFILE="/tmp/compile-mo-${2}.lock" 5 | 6 | function usage() { 7 | echo "syntax:" 8 | echo " compile-mo.sh locale-dir/ [unique]" 9 | echo "unique is an optional string that will be used as the name of the lockfile" 10 | exit 1 11 | } 12 | 13 | # check if file and dir are there 14 | if [[ ($# -gt 2) || (! -d "$TARGET") ]]; then usage; fi 15 | 16 | # check if the lockfile exists 17 | if [ -e $LOCKFILE ]; then 18 | echo "$LOCKFILE present, exiting" 19 | exit 99 20 | fi 21 | 22 | touch $LOCKFILE 23 | for lang in `find $TARGET -type f -name "*.po"`; do 24 | dir=`dirname $lang` 25 | stem=`basename $lang .po` 26 | msgfmt -o ${dir}/${stem}.mo $lang 27 | done 28 | rm $LOCKFILE 29 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/templatetags/truncate_letters.py: -------------------------------------------------------------------------------- 1 | from django import template 2 | from django.template.defaultfilters import stringfilter 3 | 4 | register = template.Library() 5 | 6 | 7 | def truncateletters(value, arg): 8 | """ 9 | Truncates a string after a certain number of letters 10 | 11 | Argument: Number of letters to truncate after 12 | """ 13 | from django_extensions.utils.text import truncate_letters 14 | try: 15 | length = int(arg) 16 | except ValueError: # invalid literal for int() 17 | return value # Fail silently 18 | return truncate_letters(value, length) 19 | 20 | truncateletters.is_safe = True 21 | truncateletters = stringfilter(truncateletters) 22 | register.filter(truncateletters) 23 | -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- 1 | ======================================== 2 | Welcome to this project's documentation! 3 | ======================================== 4 | 5 | This is a documentation template for a **web application based on Playdoh**. 6 | Feel free to change this to your liking. 7 | 8 | 9 | About playdoh 10 | ------------- 11 | 12 | This project is based on **playdoh**. Mozilla's Playdoh is an open source 13 | web application template based on `Django `_. 14 | 15 | To learn more about it, step by the `playdoh project page 16 | `_. 17 | 18 | Contents 19 | -------- 20 | 21 | .. toctree:: 22 | :maxdepth: 1 23 | 24 | 25 | Indices and tables 26 | ------------------ 27 | 28 | * :ref:`genindex` 29 | * :ref:`modindex` 30 | * :ref:`search` 31 | -------------------------------------------------------------------------------- /puppet/manifests/classes/init.pp: -------------------------------------------------------------------------------- 1 | # stage {"pre": before => Stage["main"]} class {'apt': stage => 'pre'} 2 | 3 | # Commands to run before all others in puppet. 4 | class init { 5 | group { "puppet": 6 | ensure => "present", 7 | } 8 | 9 | case $operatingsystem { 10 | ubuntu: { 11 | exec { "update_apt": 12 | command => "sudo apt-get update", 13 | } 14 | 15 | # Provides "add-apt-repository" command, useful if you need 16 | # to install software from other apt repositories. 17 | package { "python-software-properties": 18 | ensure => present, 19 | require => [ 20 | Exec['update_apt'], 21 | ]; 22 | } 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /vendor-local/lib/python/redis/__init__.py: -------------------------------------------------------------------------------- 1 | from redis.client import Redis, StrictRedis 2 | from redis.connection import ( 3 | ConnectionPool, 4 | Connection, 5 | UnixDomainSocketConnection 6 | ) 7 | from redis.exceptions import ( 8 | AuthenticationError, 9 | ConnectionError, 10 | DataError, 11 | InvalidResponse, 12 | PubSubError, 13 | RedisError, 14 | ResponseError, 15 | WatchError, 16 | ) 17 | 18 | 19 | __version__ = '2.4.11' 20 | VERSION = tuple(map(int, __version__.split('.'))) 21 | 22 | __all__ = [ 23 | 'Redis', 'StrictRedis', 'ConnectionPool', 24 | 'Connection', 'UnixDomainSocketConnection', 25 | 'RedisError', 'ConnectionError', 'ResponseError', 'AuthenticationError', 26 | 'InvalidResponse', 'DataError', 'PubSubError', 'WatchError', 27 | ] 28 | -------------------------------------------------------------------------------- /migrations/schematic_settings.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | 4 | sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) 5 | 6 | # Set up playdoh. 7 | import manage 8 | from django.conf import settings 9 | 10 | config = settings.DATABASES['default'] 11 | config['HOST'] = config.get('HOST', 'localhost') 12 | config['PORT'] = config.get('PORT', '3306') 13 | 14 | if not config['HOST'] or config['HOST'].endswith('.sock'): 15 | """Oh, you meant 'localhost'!""" 16 | config['HOST'] = 'localhost' 17 | 18 | s = 'mysql --silent {NAME} -h{HOST} -u{USER}' 19 | 20 | if config['PASSWORD']: 21 | s += ' -p{PASSWORD}' 22 | else: 23 | del config['PASSWORD'] 24 | if config['PORT']: 25 | s += ' -P{PORT}' 26 | else: 27 | del config['PORT'] 28 | 29 | db = s.format(**config) 30 | table = 'schema_version' 31 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/management/commands/update_permissions.py: -------------------------------------------------------------------------------- 1 | from django.core.management.base import BaseCommand 2 | from django.db.models import get_models, get_app 3 | from django.contrib.auth.management import create_permissions 4 | 5 | 6 | class Command(BaseCommand): 7 | args = '' 8 | help = 'reloads permissions for specified apps, or all apps if no args are specified' 9 | 10 | def handle(self, *args, **options): 11 | if not args: 12 | apps = [] 13 | for model in get_models(): 14 | apps.append(get_app(model._meta.app_label)) 15 | else: 16 | apps = [] 17 | for arg in args: 18 | apps.append(get_app(arg)) 19 | for app in apps: 20 | create_permissions(app, get_models(), options.get('verbosity', 0)) 21 | -------------------------------------------------------------------------------- /manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | # Edit this if necessary or override the variable in your environment. 6 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'bramble.settings') 7 | 8 | try: 9 | # For local development in a virtualenv: 10 | from funfactory import manage 11 | except ImportError: 12 | # Production: 13 | # Add a temporary path so that we can import the funfactory 14 | tmp_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 15 | 'vendor', 'src', 'funfactory') 16 | sys.path.append(tmp_path) 17 | 18 | from funfactory import manage 19 | 20 | # Let the path magic happen in setup_environ() ! 21 | sys.path.remove(tmp_path) 22 | 23 | 24 | manage.setup_environ(__file__, more_pythonic=True) 25 | 26 | if __name__ == "__main__": 27 | manage.main() 28 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/management/commands/find_template.py: -------------------------------------------------------------------------------- 1 | from django.core.management.base import LabelCommand 2 | from django.template.loader import find_template 3 | from django.template import TemplateDoesNotExist 4 | import sys 5 | 6 | 7 | def get_template_path(path): 8 | try: 9 | template = find_template(path) 10 | return template[1].name 11 | except TemplateDoesNotExist: 12 | return None 13 | 14 | 15 | class Command(LabelCommand): 16 | help = "Finds the location of the given template by resolving its path" 17 | args = "[template_path]" 18 | label = 'template path' 19 | 20 | def handle_label(self, template_path, **options): 21 | path = get_template_path(template_path) 22 | if path is None: 23 | sys.stderr.write("No template found\n") 24 | sys.exit(1) 25 | else: 26 | print path 27 | -------------------------------------------------------------------------------- /puppet/files/etc/httpd/conf.d/playdoh.conf: -------------------------------------------------------------------------------- 1 | # HACK: Make the server reload after every hit to refresh django code 2 | MaxRequestsPerChild 1 3 | 4 | WSGISocketPrefix /var/run/wsgi 5 | 6 | 7 | ServerName dev.playdoh.org 8 | 9 | DirectoryIndex index.php index.html 10 | Options -Indexes 11 | 12 | RewriteEngine On 13 | 14 | DocumentRoot "/var/www/html/" 15 | 16 | Alias /media/ "/home/vagrant/project/media/" 17 | Alias /admin-media/ "/home/vagrant/project/vendor/src/django/django/contrib/admin/media/" 18 | 19 | WSGIDaemonProcess playdoh processes=1 threads=1 maximum-requests=1 20 | WSGIProcessGroup playdoh 21 | 22 | WSGIScriptAlias / "/home/vagrant/project/wsgi/playdoh.wsgi" 23 | 24 | 25 | AddDefaultCharset off 26 | Order deny,allow 27 | Deny from all 28 | Allow from all 29 | 30 | 31 | -------------------------------------------------------------------------------- /bramble/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf import settings 2 | from django.conf.urls.defaults import * 3 | 4 | # Uncomment the next two lines to enable the admin: 5 | # from django.contrib import admin 6 | # admin.autodiscover() 7 | 8 | urlpatterns = patterns('', 9 | (r'', include('bramble.base.urls')), 10 | 11 | # Uncomment the admin/doc line below to enable admin documentation: 12 | # (r'^admin/doc/', include('django.contrib.admindocs.urls')), 13 | 14 | # Uncomment the next line to enable the admin: 15 | # (r'^admin/', include(admin.site.urls)), 16 | ) 17 | 18 | ## In DEBUG mode, serve media files through Django. 19 | if settings.DEBUG: 20 | # Remove leading and trailing slashes so the regex matches. 21 | media_url = settings.MEDIA_URL.lstrip('/').rstrip('/') 22 | urlpatterns += patterns('', 23 | (r'^%s/(?P.*)$' % media_url, 'django.views.static.serve', 24 | {'document_root': settings.MEDIA_ROOT}), 25 | ) 26 | -------------------------------------------------------------------------------- /docs/build-github.zsh: -------------------------------------------------------------------------------- 1 | #!/bin/zsh 2 | 3 | # A useful build script for projects hosted on github: 4 | # It can build your Sphinx docs and push them straight to your gh-pages branch. 5 | 6 | # Should be run from the docs directory: (cd docs && ./build-github.zsh) 7 | 8 | REPO=$(git config remote.origin.url) 9 | HERE=$(dirname $0) 10 | GH=$HERE/_gh-pages 11 | 12 | 13 | # Checkout the gh-pages branch, if necessary. 14 | if [[ ! -d $GH ]]; then 15 | git clone $REPO $GH 16 | pushd $GH 17 | git checkout -b gh-pages origin/gh-pages 18 | popd 19 | fi 20 | 21 | # Update and clean out the _gh-pages target dir. 22 | pushd $GH 23 | git pull && rm -rf * 24 | popd 25 | 26 | # Make a clean build. 27 | pushd $HERE 28 | make clean dirhtml 29 | 30 | # Move the fresh build over. 31 | cp -r _build/dirhtml/* $GH 32 | pushd $GH 33 | 34 | # Commit. 35 | git add . 36 | git commit -am "gh-pages build on $(date)" 37 | git push origin gh-pages 38 | 39 | popd 40 | popd 41 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions-0.8-py2.6.egg-info/PKG-INFO: -------------------------------------------------------------------------------- 1 | Metadata-Version: 1.0 2 | Name: django-extensions 3 | Version: 0.8 4 | Summary: Extensions for Django 5 | Home-page: http://github.com/django-extensions/django-extensions 6 | Author: Bas van Oostveen 7 | Author-email: v.oostveen@gmail.com 8 | License: New BSD License 9 | Description: django-extensions bundles several useful 10 | additions for Django projects. See the project page for more information: 11 | http://github.com/django-extensions/django-extensions 12 | Platform: any 13 | Classifier: Development Status :: 4 - Beta 14 | Classifier: Development Status :: 5 - Production/Stable 15 | Classifier: Environment :: Web Environment 16 | Classifier: Framework :: Django 17 | Classifier: Intended Audience :: Developers 18 | Classifier: License :: OSI Approved :: BSD License 19 | Classifier: Operating System :: OS Independent 20 | Classifier: Programming Language :: Python 21 | Classifier: Topic :: Utilities 22 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/jobs/daily/cache_cleanup.py: -------------------------------------------------------------------------------- 1 | """ 2 | Daily cleanup job. 3 | 4 | Can be run as a cronjob to clean out old data from the database (only expired 5 | sessions at the moment). 6 | """ 7 | 8 | from django_extensions.management.jobs import DailyJob 9 | 10 | 11 | class Job(DailyJob): 12 | help = "Cache (db) cleanup Job" 13 | 14 | def execute(self): 15 | from django.conf import settings 16 | from django.db import connection 17 | import os 18 | 19 | if settings.CACHE_BACKEND.startswith('db://'): 20 | os.environ['TZ'] = settings.TIME_ZONE 21 | table_name = settings.CACHE_BACKEND[5:] 22 | cursor = connection.cursor() 23 | cursor.execute("DELETE FROM %s WHERE %s < UTC_TIMESTAMP()" % \ 24 | (connection.ops.quote_name(table_name), 25 | connection.ops.quote_name('expires'))) 26 | transaction.commit_unless_managed() 27 | -------------------------------------------------------------------------------- /lib/product_details_json/thunderbird_history_stability_releases.json: -------------------------------------------------------------------------------- 1 | {"1.0.2":"2005-03-21","1.0.5":"2005-07-13","1.0.6":"2005-07-19","1.0.7":"2005-09-29","1.0.8":"2006-04-21","1.5.0.2":"2006-04-21","1.5.0.4":"2006-06-01","1.5.0.5":"2006-07-27","1.5.0.7":"2006-09-14","1.5.0.8":"2006-11-08","1.5.0.9":"2006-12-19","1.5.0.10":"2007-03-01","1.5.0.12":"2007-05-30","1.5.0.13":"2007-08-23","2.0.0.4":"2007-06-14","2.0.0.5":"2007-07-19","2.0.0.6":"2007-08-01","2.0.0.9":"2007-11-14","2.0.0.12":"2008-02-26","2.0.0.14":"2008-05-01","2.0.0.16":"2008-07-23","2.0.0.17":"2008-09-25","2.0.0.18":"2008-11-19","2.0.0.19":"2008-12-30","2.0.0.21":"2009-03-18","2.0.0.22":"2009-06-22","2.0.0.23":"2009-08-20","2.0.0.24":"2010-03-16","3.0.1":"2010-01-20","3.0.2":"2010-02-25","3.0.3":"2010-03-01","3.0.4":"2010-03-30","3.0.5":"2010-06-17","3.0.6":"2010-07-20","3.0.7":"2010-09-07","3.0.8":"2010-09-16","3.0.9":"2010-10-19","3.0.10":"2010-10-27","3.1.1":"2010-07-20","3.1.2":"2010-08-05","3.1.3":"2010-09-07","3.1.4":"2010-09-16","3.1.5":"2010-10-19","3.1.6":"2010-10-27"} -------------------------------------------------------------------------------- /bramble/base/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls.defaults import * 2 | 3 | import api 4 | import views 5 | 6 | urlpatterns = patterns('', 7 | url(r'^$', views.index, name='bramble.base.index'), 8 | url(r'^machinecounts/$', views.machinecounts, 9 | name='bramble.base.machinecounts'), 10 | url(r'^machinecounts/specifics/$', views.machinecounts_specifics, 11 | name='bramble.base.machinecounts_specifics'), 12 | url(r'^builds/$', api.get_builds, name='bramble.base.get_builds'), 13 | url(r'^builds/(?P\w{32})/jobs$', api.get_build_jobs, 14 | name='bramble.base.get_build_jobs'), 15 | url(r'^builds/(?P\w{32})/changeset$', api.get_changeset_info, 16 | name='bramble.base.get_changeset_info'), 17 | url(r'^machines/events/(?P\w+)/$', api.get_machine_events, 18 | name='bramble.base.get_machine_events'), 19 | url(r'^jobs/(?P\w{32})/(?P\w{8}-\w+)/(?P\d+)/$', api.get_job_info, 20 | name='bramble.base.get_job_info'), 21 | ) 22 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/tests/json_field.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | 4 | from django.db import connection 5 | from django.conf import settings 6 | from django.core.management import call_command 7 | from django.db.models import loading 8 | from django.db import models 9 | from django_extensions.db.fields.json import JSONField 10 | 11 | 12 | class TestModel(models.Model): 13 | a = models.IntegerField() 14 | j_field = JSONField() 15 | 16 | class JsonFieldTest(unittest.TestCase): 17 | 18 | def setUp(self): 19 | self.old_installed_apps = settings.INSTALLED_APPS 20 | settings.INSTALLED_APPS = list(settings.INSTALLED_APPS) 21 | settings.INSTALLED_APPS.append('django_extensions.tests') 22 | loading.cache.loaded = False 23 | call_command('syncdb', verbosity=0) 24 | 25 | def tearDown(self): 26 | settings.INSTALLED_APPS = self.old_installed_apps 27 | 28 | def testCharFieldCreate(self): 29 | 30 | j = TestModel.objects.create(a=6, j_field=dict(foo='bar')) 31 | 32 | -------------------------------------------------------------------------------- /lib/product_details_json/firefox_history_development_releases.json: -------------------------------------------------------------------------------- 1 | {"1.0rc1":"2004-10-27","1.0rc2":"2004-11-03","1.5rc1":"2005-11-01","1.5rc2":"2005-11-10","1.5rc3":"2005-11-17","2.0b1":"2006-07-12","2.0b2":"2006-08-31","2.0rc1":"2006-09-26","2.0rc2":"2006-10-06","2.0rc3":"2007-10-16","3.0b1":"2007-11-19","3.0b2":"2007-12-18","3.0b3":"2008-02-12","3.0b4":"2008-03-10","3.0b5":"2008-04-02","3.0rc1":"2008-05-16","3.0rc2":"2008-06-03","3.1b1":"2008-08-14","3.1b2":"2008-12-08","3.1b3":"2009-03-12","3.5b4":"2009-04-27","3.5rc2":"2009-06-19","3.5rc3":"2009-06-24","3.6b1":"2009-10-30","3.6b2":"2009-11-10","3.6b3":"2009-11-17","3.6b4":"2009-11-26","3.6b5":"2009-12-17","3.6rc1":"2010-01-08","3.6rc2":"2010-01-17","3.6.3plugin1":"2010-04-08","3.6.4build1":"2010-04-20","3.6.4build3":"2010-05-04","3.6.4build4":"2010-05-14","3.6.4build5":"2010-05-26","3.6.4build6":"2010-05-28","3.6.4build7":"2010-06-14","3.6.7build1":"2010-07-02","4.0b1":"2010-07-06","4.0b2":"2010-07-27","4.0b3":"2010-08-11","4.0b4":"2010-08-24","4.0b5":"2010-09-07","4.0b6":"2010-09-14","4.0b7":"2010-11-10","4.0b8":"2010-12-22","4.0b9":"2011-01-14","4.0b10":"2011-01-25"} -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/media/django_extensions/css/jquery.autocomplete.css: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * jQuery autocomplete 3 | ****************************************************************************/ 4 | .ac_results { 5 | padding: 0px; 6 | border: 1px solid #ccc; 7 | background-color: #fff; 8 | overflow: hidden; 9 | z-index: 99999; 10 | text-align: left; 11 | } 12 | 13 | .ac_results ul { 14 | width: 100%; 15 | list-style-position: outside; 16 | list-style: none; 17 | padding: 0; 18 | margin: 0; 19 | } 20 | 21 | .ac_results li { 22 | margin: 0px; 23 | padding: 3px 5px; 24 | cursor: default; 25 | display: block; 26 | font: menu; 27 | font-size: 12px; 28 | line-height: 14px; 29 | overflow: hidden; 30 | } 31 | 32 | .ac_loading { 33 | background: white url('../img/indicator.gif') right center no-repeat; 34 | } 35 | 36 | .ac_odd { 37 | background-color: #eee; 38 | } 39 | 40 | .ac_over { 41 | background-color: #999; 42 | color: white; 43 | } 44 | -------------------------------------------------------------------------------- /bramble/base/templates/base.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {% block page_title %}Hey build farm, what are the haps?{% endblock %} 6 | {% block site_css %} 7 | {{ css('common_css') }} 8 | {% endblock %} 9 | 10 | 11 |
12 |
13 | {% block header %} 14 |
15 |

Build Farm Machine Status

16 |
17 | {% endblock %} 18 |
19 |
20 | {% block content %} 21 | 22 | {% endblock %} 23 |
24 |
25 | {% block footer %} 26 |
27 | Mozilla RelEng Dashboard - Powered by Bramble 28 |
29 | {% endblock %} 30 |
31 |
32 | 33 | {% block site_js %} 34 | {{ js('common_js') }} 35 | {% endblock %} 36 | 37 | 38 | -------------------------------------------------------------------------------- /puppet/manifests/classes/python.pp: -------------------------------------------------------------------------------- 1 | # Install python and compiled modules for project 2 | class python { 3 | case $operatingsystem { 4 | centos: { 5 | package { 6 | ["python26-devel", "python26-libs", "python26-distribute", "python26-mod_wsgi"]: 7 | ensure => installed; 8 | } 9 | 10 | exec { "pip-install": 11 | command => "easy_install -U pip", 12 | creates => "pip", 13 | require => Package["python26-devel", "python26-distribute"] 14 | } 15 | 16 | exec { "pip-install-compiled": 17 | command => "pip install -r $PROJ_DIR/requirements/compiled.txt", 18 | require => Exec['pip-install'] 19 | } 20 | } 21 | 22 | ubuntu: { 23 | package { 24 | ["python2.6-dev", "python2.6", "libapache2-mod-wsgi", "python-wsgi-intercept", "python-pip"]: 25 | ensure => installed; 26 | } 27 | 28 | exec { "pip-install-compiled": 29 | command => "pip install -r $PROJ_DIR/requirements/compiled.txt", 30 | require => Package['python-pip'] 31 | } 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /bin/crontab/gen-crons.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | from optparse import OptionParser 4 | 5 | from jinja2 import Template 6 | 7 | 8 | HEADER = '!!AUTO-GENERATED!! Edit bin/crontab/crontab.tpl instead.' 9 | TEMPLATE = open(os.path.join(os.path.dirname(__file__), 'crontab.tpl')).read() 10 | 11 | 12 | def main(): 13 | parser = OptionParser() 14 | parser.add_option('-w', '--webapp', 15 | help='Location of web app (required)') 16 | parser.add_option('-u', '--user', 17 | help=('Prefix cron with this user. ' 18 | 'Only define for cron.d style crontabs.')) 19 | parser.add_option('-p', '--python', default='/usr/bin/python2.6', 20 | help='Python interpreter to use.') 21 | 22 | (opts, args) = parser.parse_args() 23 | 24 | if not opts.webapp: 25 | parser.error('-w must be defined') 26 | 27 | ctx = {'django': 'cd %s; %s manage.py' % (opts.webapp, opts.python)} 28 | ctx['cron'] = '%s cron' % ctx['django'] 29 | 30 | if opts.user: 31 | for k, v in ctx.iteritems(): 32 | ctx[k] = '%s %s' % (opts.user, v) 33 | 34 | # Needs to stay below the opts.user injection. 35 | ctx['python'] = opts.python 36 | ctx['header'] = HEADER 37 | 38 | print Template(TEMPLATE).render(**ctx) 39 | 40 | 41 | if __name__ == '__main__': 42 | main() 43 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/management/commands/passwd.py: -------------------------------------------------------------------------------- 1 | from django.core.management.base import BaseCommand, CommandError 2 | from django.contrib.auth.models import User 3 | import getpass 4 | 5 | 6 | class Command(BaseCommand): 7 | help = "Clone of the UNIX program ``passwd'', for django.contrib.auth." 8 | 9 | requires_model_validation = False 10 | 11 | def handle(self, *args, **options): 12 | if len(args) > 1: 13 | raise CommandError("need exactly one or zero arguments for username") 14 | 15 | if args: 16 | username, = args 17 | else: 18 | username = getpass.getuser() 19 | 20 | try: 21 | u = User.objects.get(username=username) 22 | except User.DoesNotExist: 23 | raise CommandError("user %s does not exist" % username) 24 | 25 | print "Changing password for user", u.username 26 | p1 = p2 = "" 27 | while "" in (p1, p2) or p1 != p2: 28 | p1 = getpass.getpass() 29 | p2 = getpass.getpass("Password (again): ") 30 | if p1 != p2: 31 | print "Passwords do not match, try again" 32 | elif "" in (p1, p2): 33 | raise CommandError("aborted") 34 | 35 | u.set_password(p1) 36 | u.save() 37 | 38 | return "Password changed successfully for user %s\n" % u.username 39 | -------------------------------------------------------------------------------- /vendor-local/lib/python/werkzeug/contrib/limiter.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | werkzeug.contrib.limiter 4 | ~~~~~~~~~~~~~~~~~~~~~~~~ 5 | 6 | A middleware that limits incoming data. This works around problems with 7 | Trac_ or Django_ because those directly stream into the memory. 8 | 9 | .. _Trac: http://trac.edgewall.org/ 10 | .. _Django: http://www.djangoproject.com/ 11 | 12 | :copyright: (c) 2011 by the Werkzeug Team, see AUTHORS for more details. 13 | :license: BSD, see LICENSE for more details. 14 | """ 15 | from warnings import warn 16 | 17 | from werkzeug.wsgi import LimitedStream 18 | 19 | 20 | class StreamLimitMiddleware(object): 21 | """Limits the input stream to a given number of bytes. This is useful if 22 | you have a WSGI application that reads form data into memory (django for 23 | example) and you don't want users to harm the server by uploading tons of 24 | data. 25 | 26 | Default is 10MB 27 | """ 28 | 29 | def __init__(self, app, maximum_size=1024 * 1024 * 10): 30 | self.app = app 31 | self.maximum_size = maximum_size 32 | 33 | def __call__(self, environ, start_response): 34 | limit = min(self.maximum_size, int(environ.get('CONTENT_LENGTH') or 0)) 35 | environ['wsgi.input'] = LimitedStream(environ['wsgi.input'], limit) 36 | return self.app(environ, start_response) 37 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/management/commands/mail_debug.py: -------------------------------------------------------------------------------- 1 | from django.core.management.base import BaseCommand 2 | import sys 3 | import smtpd 4 | import asyncore 5 | 6 | 7 | class Command(BaseCommand): 8 | help = "Starts a test mail server for development." 9 | args = '[optional port number or ippaddr:port]' 10 | 11 | requires_model_validation = False 12 | 13 | def handle(self, addrport='', *args, **options): 14 | if args: 15 | raise CommandError('Usage is runserver %s' % self.args) 16 | if not addrport: 17 | addr = '' 18 | port = '1025' 19 | else: 20 | try: 21 | addr, port = addrport.split(':') 22 | except ValueError: 23 | addr, port = '', addrport 24 | if not addr: 25 | addr = '127.0.0.1' 26 | 27 | if not port.isdigit(): 28 | raise CommandError("%r is not a valid port number." % port) 29 | else: 30 | port = int(port) 31 | 32 | quit_command = (sys.platform == 'win32') and 'CTRL-BREAK' or 'CONTROL-C' 33 | 34 | def inner_run(): 35 | print "Now accepting mail at %s:%s" % (addr, port) 36 | server = smtpd.DebuggingServer((addr, port), None) 37 | asyncore.loop() 38 | 39 | try: 40 | inner_run() 41 | except KeyboardInterrupt: 42 | pass 43 | -------------------------------------------------------------------------------- /vendor-local/lib/python/django_extensions/media/django_extensions/js/jquery.bgiframe.min.js: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2006 Brandon Aaron (http://brandonaaron.net) 2 | * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 3 | * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. 4 | * 5 | * $LastChangedDate: 2007-07-22 01:45:56 +0200 (Son, 22 Jul 2007) $ 6 | * $Rev: 2447 $ 7 | * 8 | * Version 2.1.1 9 | */ 10 | (function($){$.fn.bgIframe=$.fn.bgiframe=function(s){if($.browser.msie&&/6.0/.test(navigator.userAgent)){s=$.extend({top:'auto',left:'auto',width:'auto',height:'auto',opacity:true,src:'javascript:false;'},s||{});var prop=function(n){return n&&n.constructor==Number?n+'px':n;},html='