From 8444a8f211d57797e528a76d8966800be1cfd0fa Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Fri, 3 Mar 2017 00:21:51 -0800 Subject: [PATCH] =?UTF-8?q?before=5Fdeploy=20doesn=E2=80=99t=20run=20unles?= =?UTF-8?q?s=20something=20is=20going=20to=20be=20deployed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 3 ++ .travis/autobrew.py | 66 +++++++++++++++++++++++++++++++++ .travis/linux_before_install.sh | 4 +- .travis/osx_before_deploy.sh | 8 ++++ .travis/osx_before_install.sh | 6 ++- .travis/osx_brew.sh | 8 ++++ 6 files changed, 92 insertions(+), 3 deletions(-) create mode 100644 .travis/autobrew.py create mode 100644 .travis/osx_before_deploy.sh create mode 100644 .travis/osx_brew.sh diff --git a/.travis.yml b/.travis.yml index a3a78740..20c24056 100644 --- a/.travis.yml +++ b/.travis.yml @@ -41,6 +41,9 @@ script: - pytest - mv dont_import_this_ocrmypdf ocrmypdf +after_success: +- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then bash .travis/osx_before_deploy.sh ; fi + # See https://www.appneta.com/blog/pypi-deployment-with-travis-ci/ for # steps to set up testpypi deploy for untagged builds if desired diff --git a/.travis/autobrew.py b/.travis/autobrew.py new file mode 100644 index 00000000..749f95ee --- /dev/null +++ b/.travis/autobrew.py @@ -0,0 +1,66 @@ +from string import Template +from subprocess import run, PIPE +import re + +recipe_template = Template(""" +class Ocrmypdf < Formula + include Language::Python::Virtualenv + + desc "Adds an OCR text layer to scanned PDF files" + homepage "https://github.com/jbarlow83/OCRmyPDF" + ${ocrmypdf_url} + ${ocrmypdf_sha256} + + depends_on :python3 + depends_on "tesseract" + depends_on "ghostscript" + depends_on "unpaper" + depends_on "qpdf" + +${poet_resources} + + def install + ENV.append ["SETUPTOOLS_SCM_PRETEND_VERSION"], "v${ocrmypdf_version}" + ENV.each do |key, value| + puts "#{key}:#{value}" + end + virtualenv_install_with_resources + end + + test do + # `test do` will create, run in and delete a temporary directory. + # + # This test will fail and we won't accept that! It's enough to just replace + # "false" with the main program this formula installs, but it'd be nice if you + # were more thorough. Run the test with `brew test OCRmyPDF`. Options passed + # to `brew install` such as `--HEAD` also need to be provided to `brew test`. + # + # The installed folder is not in the path, so use the entire path to any + # executables being tested: `system "#{bin}/program", "do", "something"`. + system "#{bin}/ocrmypdf", "--version" + end +end +""") + +def main(): + p = run(['poet', '--single', 'ocrmypdf'], + encoding='utf-8', stdout=PIPE, check=True) + + ocrmypdf_lines = p.stdout.splitlines() + ocrmypdf_url = ocrmypdf_lines[1].strip() + ocrmypdf_sha256 = ocrmypdf_lines[2].strip() + + ocrmypdf_version = re.search( + r'ocrmypdf-(.+)\.tar.*', ocrmypdf_url).group(1) + print(f"Autobrewing {ocrmypdf_version}") + + p = run(['poet', '--resources', 'ocrmypdf'], + encoding='utf-8', stdout=PIPE, check=True) + + poet_resources = p.stdout + with open('ocrmypdf.rb', 'w') as out: + out.write(recipe_template.substitute(**locals())) + + +if __name__ == '__main__': + main() diff --git a/.travis/linux_before_install.sh b/.travis/linux_before_install.sh index 8d48c35b..459d4d50 100644 --- a/.travis/linux_before_install.sh +++ b/.travis/linux_before_install.sh @@ -1,4 +1,6 @@ #!/bin/bash +set -euo pipefail +set -x sudo add-apt-repository ppa:vshn/ghostscript -y sudo add-apt-repository ppa:heyarje/libav-11 -y @@ -19,4 +21,4 @@ sudo apt-get install -y \ pip install --upgrade pip mkdir -p packages [ -f packages/unpaper_6.1-1.deb ] || wget -q https://dl.dropboxusercontent.com/u/28971240/unpaper_6.1-1.deb -O packages/unpaper_6.1-1.deb -sudo dpkg -i packages/unpaper_6.1-1.deb \ No newline at end of file +sudo dpkg -i packages/unpaper_6.1-1.deb diff --git a/.travis/osx_before_deploy.sh b/.travis/osx_before_deploy.sh new file mode 100644 index 00000000..a9edc459 --- /dev/null +++ b/.travis/osx_before_deploy.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -euo pipefail +set -x + +pip3 install homebrew-pypi-poet +python3 .travis/autobrew.py +brew audit ocrmypdf.rb +cat ocrmypdf.rb diff --git a/.travis/osx_before_install.sh b/.travis/osx_before_install.sh index 876c019d..fb33adc6 100644 --- a/.travis/osx_before_install.sh +++ b/.travis/osx_before_install.sh @@ -1,8 +1,10 @@ #!/bin/bash +set -euo pipefail +set -x brew update -brew install libpng openjpeg jbig2dec libtiff # image libraries +brew install openjpeg jbig2dec libtiff # image libraries brew install qpdf brew install ghostscript brew install python3 @@ -11,4 +13,4 @@ brew install unpaper # optional brew install tesseract pip3 install --upgrade pip -pip3 install wheel \ No newline at end of file +pip3 install wheel diff --git a/.travis/osx_brew.sh b/.travis/osx_brew.sh new file mode 100644 index 00000000..a9edc459 --- /dev/null +++ b/.travis/osx_brew.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -euo pipefail +set -x + +pip3 install homebrew-pypi-poet +python3 .travis/autobrew.py +brew audit ocrmypdf.rb +cat ocrmypdf.rb