diff options
| author | 2013-11-20 16:58:50 -0300 | |
|---|---|---|
| committer | 2013-11-20 16:58:50 -0300 | |
| commit | ca94afc07df55cb7fc6fe3b4f3011877b7881195 (patch) | |
| tree | d81e1f275aa77545f33740723f307a83dde2e0b4 /setup.py | |
| parent | f794eee787e9cde54e6b8f53e45d69c9ddc9936a (diff) | |
Imported Upstream version 6.2.1upstream/6.2.1
Diffstat (limited to 'setup.py')
| -rwxr-xr-x | setup.py | 112 |
1 files changed, 84 insertions, 28 deletions
@@ -6,7 +6,8 @@ # Licensed under the MIT license: # http://www.opensource.org/licenses/mit-license.php -from __future__ import print_function +# Don't use __future__ in this script, it breaks buildout +# from __future__ import print_function import os import subprocess import sys @@ -29,18 +30,8 @@ except ImportError: from distutils.command.install import install from distutils.util import convert_path # NOQA -dependencies = [ - 'doit>=0.20.0', - 'pygments', - 'pillow', - 'docutils', - 'mako>=0.6', - 'unidecode', - 'lxml', - 'yapsy', - 'PyRSS2Gen', - 'pytz', -] +with open('requirements.txt', 'r') as fh: + dependencies = [l.strip() for l in fh] ########### platform specific stuff ############# import platform @@ -51,15 +42,16 @@ scripts = ['scripts/nikola'] if platform_system == "Windows": scripts.append('scripts/nikola.bat') +if sys.version_info[0] == 2 and sys.version_info[1] < 6: + raise Exception('Python 2 version < 2.6 is not supported') +elif sys.version_info[0] == 3 and sys.version_info[1] < 3: + raise Exception('Python 3 version < 3.3 is not supported') + ################################################## if sys.version_info[0] == 2: # in Python 3 this becomes a builtin, for Python 2 we need the backport dependencies.append('configparser') -elif sys.version_info[0] == 3: - # Pillow introduced support for Python 3 with 2.0.0 - dependencies.remove('pillow') - dependencies.append('pillow>=2.0.0') # Provided as an attribute, so you can append to these instead # of replicating them: @@ -84,6 +76,44 @@ def copy_messages(): shutil.copytree(original_messages_directory, theme_messages_directory) +def copy_symlinked_for_windows(): + """replaces the symlinked files with a copy of the original content. + + In windows (msysgit), a symlink is converted to a text file with a + path to the file it points to. If not corrected, installing from a git + clone will end with some files with bad content + + After install the WC will be dirty (symlink markers rewroted with real + content) + """ + + # essentially nikola.utils.should_fix_git_symlinked inlined, to not + # fiddle with sys.path / import unless really needed + if sys.platform != 'win32': + return + path = (os.path.dirname(__file__) + + r'nikola\data\samplesite\stories\theming.rst') + try: + if os.path.getsize(path) < 200: + pass + else: + return + except Exception: + return + + # apply the fix + localdir = os.path.dirname(__file__) + dst = os.path.join(localdir, 'nikola', 'data', 'samplesite') + src = dst + oldpath = sys.path[:] + sys.path.insert(0, os.path.join(localdir, 'nikola')) + winutils = __import__('winutils') + winutils.fix_git_symlinked(src, dst) + sys.path = oldpath + del sys.modules['winutils'] + print('WARNING: your working copy is now dirty by changes in samplesite') + + def install_manpages(root, prefix): try: man_pages = [ @@ -113,6 +143,7 @@ def install_manpages(root, prefix): class nikola_install(install): def run(self): + copy_symlinked_for_windows() install.run(self) install_manpages(self.root, self.prefix) @@ -196,24 +227,49 @@ def find_package_data( out.setdefault(package, []).append(prefix + name) return out + setup(name='Nikola', - version='5.4.4', - description='Static blog/website generator', + version='6.2.1', + description='A modular, fast, simple, static website generator', + long_description=open('README.rst').read(), author='Roberto Alsina and others', author_email='ralsina@netmanagers.com.ar', - url='http://nikola.ralsina.com.ar/', + url='http://getnikola.com', packages=['nikola', 'nikola.plugins', - 'nikola.plugins.command_planetoid', - 'nikola.plugins.compile_ipynb', - 'nikola.plugins.compile_markdown', - 'nikola.plugins.compile_misaka', - 'nikola.plugins.compile_rest', - 'nikola.plugins.task_localsearch', - 'nikola.plugins.task_mustache', - 'nikola.plugins.task_sitemap', + 'nikola.plugins.command', + 'nikola.plugins.command.planetoid', + 'nikola.plugins.compile', + 'nikola.plugins.compile.ipynb', + 'nikola.plugins.compile.markdown', + 'nikola.plugins.compile.rest', + 'nikola.plugins.task', + 'nikola.plugins.task.localsearch', + 'nikola.plugins.task.mustache', + 'nikola.plugins.task.sitemap', + 'nikola.plugins.template', ], + license='MIT', + keywords='website, static', scripts=scripts, + classifiers=('Development Status :: 5 - Production/Stable', + 'Environment :: Console', + 'Environment :: Plugins', + 'Environment :: Web Environment', + 'Intended Audience :: End Users/Desktop', + 'License :: OSI Approved :: MIT License', + 'Operating System :: MacOS', + 'Operating System :: Microsoft :: Windows', + 'Operating System :: OS Independent', + 'Operating System :: POSIX', + 'Operating System :: Unix', + 'Programming Language :: Python', + 'Programming Language :: Python :: 2.6', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3.3', + 'Topic :: Internet', + 'Topic :: Internet :: WWW/HTTP', + 'Topic :: Text Processing :: Markup'), install_requires=dependencies, package_data=find_package_data(), cmdclass={'install': nikola_install}, |
