diff --git a/.gitignore b/.gitignore index 3a01fbbf9..74f0283a8 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,7 @@ picard.egg-info po/attributes/attributes.pot po/countries/countries.pot scripts/picard +tagger.py win-version-info.txt # Other files diff --git a/.travis.yml b/.travis.yml index 35c88f88e..5963d35a7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -91,7 +91,8 @@ before_install: script: - py.test -v --cov=picard --cov-report xml:coverage.xml test -- python3 setup.py build_locales build_ext -i +- python3 setup.py build +- python3 setup.py build_ext -i - python3 tagger.py --long-version - isort --check-only --diff --quiet $(git ls-tree -r --name-only $(git rev-parse HEAD) | grep "\\.py$") - flake8 picard diff --git a/MANIFEST.in b/MANIFEST.in index c45fb8934..0bf4496ed 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -4,7 +4,6 @@ prune test recursive-include scripts *.in recursive-exclude scripts picard -include tagger.py include *.in include *.md diff --git a/scripts/picard.in b/scripts/picard.in index 7580da67c..7b67f8ecf 100644 --- a/scripts/picard.in +++ b/scripts/picard.in @@ -1,3 +1,3 @@ #!/usr/bin/env python3 -from picard.tagger import main; main('%(localedir)s', %(autoupdate)s) - +from picard.tagger import main +main('%(localedir)s', %(autoupdate)s) diff --git a/setup.py b/setup.py index d42bb1aab..ccf6e5446 100644 --- a/setup.py +++ b/setup.py @@ -10,6 +10,7 @@ import glob from io import StringIO import os import re +import stat import sys import tempfile @@ -221,8 +222,10 @@ class picard_build(build): self.sub_commands.append(('build_locales', None)) def run(self): - log.info('generating scripts/%s from scripts/picard.in', PACKAGE_NAME) - generate_file('scripts/picard.in', 'scripts/' + PACKAGE_NAME, {'localedir': self.localedir, 'autoupdate': not self.disable_autoupdate}) + params = {'localedir': self.localedir, 'autoupdate': not self.disable_autoupdate} + generate_file('tagger.py.in', 'tagger.py', params) + make_executable('tagger.py') + generate_file('scripts/picard.in', 'scripts/' + PACKAGE_NAME, params) if sys.platform == 'win32': file_version = PICARD_VERSION[0:3] + (self.build_number,) file_version_str = '.'.join([str(v) for v in file_version]) @@ -740,11 +743,16 @@ args = { def generate_file(infilename, outfilename, variables): + log.info('generating %s from %s', outfilename, infilename) with open(infilename, "rt") as f_in: with open(outfilename, "wt") as f_out: f_out.write(f_in.read() % variables) +def make_executable(filename): + os.chmod(filename, os.stat(filename).st_mode | stat.S_IEXEC) + + def find_file_in_path(filename): for include_path in sys.path: file_path = os.path.join(include_path, filename) diff --git a/tagger.py b/tagger.py.in old mode 100755 new mode 100644 similarity index 87% rename from tagger.py rename to tagger.py.in index 04f92c1c1..35cb4f204 --- a/tagger.py +++ b/tagger.py.in @@ -16,4 +16,4 @@ if sys.platform == 'win32': os.environ['PATH'] = basedir + ';' + os.environ['PATH'] from picard.tagger import main -main(os.path.join(basedir, 'locale'), True) +main(os.path.join(basedir, 'locale'), %(autoupdate)s)