diff --git a/.gitignore b/.gitignore index 6f38ff9..5cc77ff 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ db.sqlite3 django.mo /hobo.egg-info local_settings.py +*.css diff --git a/MANIFEST.in b/MANIFEST.in index c5a3e6c..f104118 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,4 @@ -recursive-include hobo/static *.css *.png *.js +recursive-include hobo/static *.scss *.png *.js recursive-include hobo/templates *.html *.txt recursive-include hobo/debug/templates *.html *.txt recursive-include hobo/franceconnect/templates *.html *.txt diff --git a/debian/control b/debian/control index b319cb7..557fff3 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: hobo Maintainer: Jérôme Schneider Section: python Priority: optional -Build-Depends: python-setuptools (>= 0.6b3), python-all (>= 2.6.6-3), python3-setuptools, python3-all, python-django, python3-django, debhelper (>= 9), dh-python, dh-systemd +Build-Depends: python-setuptools (>= 0.6b3), python-all (>= 2.6.6-3), python3-setuptools, python3-all, python-django, python3-django, debhelper (>= 9), dh-python, dh-systemd, sassc Standards-Version: 3.9.1 Package: python-hobo diff --git a/hobo/static/css/style.css b/hobo/static/css/style.scss similarity index 100% rename from hobo/static/css/style.css rename to hobo/static/css/style.scss diff --git a/setup.py b/setup.py index 16fa405..f0a57f8 100644 --- a/setup.py +++ b/setup.py @@ -9,6 +9,8 @@ import sys from setuptools.command.install_lib import install_lib as _install_lib from distutils.command.build import build as _build +from distutils.errors import CompileError +from distutils.spawn import find_executable from distutils.command.sdist import sdist from distutils.cmd import Command from setuptools import setup, find_packages @@ -74,8 +76,46 @@ class compile_translations(Command): sys.stderr.write('!!! Please install Django >= 1.4 to build translations\n') +class compile_scss(Command): + description = 'compile scss files into css files' + user_options = [] + + def initialize_options(self): + pass + + def finalize_options(self): + pass + + def run(self): + sass_bin = None + for program in ('sassc', 'sass'): + sass_bin = find_executable(program) + if sass_bin: + break + if not sass_bin: + raise CompileError( + 'A sass compiler is required but none was found. See sass-lang.com for choices.' + ) + + for package in self.distribution.packages: + for package_path in ['hobo']: + for path, dirnames, filenames in os.walk(package_path): + for filename in filenames: + if not filename.endswith('.scss'): + continue + if filename.startswith('_'): + continue + subprocess.check_call( + [ + sass_bin, + '%s/%s' % (path, filename), + '%s/%s' % (path, filename.replace('.scss', '.css')), + ] + ) + + class build(_build): - sub_commands = [('compile_translations', None)] + _build.sub_commands + sub_commands = [('compile_translations', None), ('compile_scss', None)] + _build.sub_commands class install_lib(_install_lib): @@ -117,6 +157,7 @@ setup( zip_safe=False, cmdclass={ 'build': build, + 'compile_scss': compile_scss, 'compile_translations': compile_translations, 'install_lib': install_lib, 'sdist': eo_sdist,