Last active
May 9, 2017 21:13
-
-
Save zmwangx/4f4ff19bf8735d2c2612a2f9a58d6244 to your computer and use it in GitHub Desktop.
homebrew-pypi-poet wrapper for handling multiple dependencies of non-PyPI software
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env zsh | |
# homebrew-pypi-poet for multiple packages. | |
# | |
# Usage: | |
# | |
# multipoet dep [dep ...] | |
# | |
# Example: | |
# | |
# multipoet urllib3 cryptography beautifulsoup4 requests | |
# | |
# Use this in a virtualenv (preferably a virtualenvwrapper tmpenv)! | |
setopt pipefail errexit | |
[[ -n $DEBUG ]] && setopt xtrace | |
if [[ -n $PYTHON ]]; then | |
pip=${PYTHON:h}/pip | |
poet=${PYTHON:h}/poet | |
else | |
pip=pip | |
poet=poet | |
fi | |
$pip install homebrew-pypi-poet >&2 | |
for dep; do | |
if [[ $dep == requests ]]; then | |
$pip install 'requests[security]' >&2 | |
else | |
$pip install $dep >&2 | |
fi | |
done | |
typeset -A resources | |
for dep; do $poet -r $dep; echo; done | while IFS= read -r resource_line; do | |
[[ $resource_line =~ ' resource "([^"]+)" do' ]] | |
resource_name=$match[1] | |
IFS= read -r url_line | |
IFS= read -r checksum_line | |
IFS= read -r end_line | |
IFS= read -r blank_line | |
resources[$resource_name]=$resource_line$'\n'$url_line$'\n'$checksum_line$'\n'$end_line$'\n' | |
done | |
echo '-------------------------------------------------------------------------------' >&2 | |
if (( $+commands[pbcopy] )); then | |
for resource_block in ${(io)resources}; do echo -E $resource_block; done | tee >(pbcopy) | |
echo '-------------------------------------------------------------------------------' >&2 | |
echo 'resource blocks copied to pasteboard' >&2 | |
else | |
for resource_block in ${(io)resources}; do echo -E $resource_block; done | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment