Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
executable file
·
93 lines (88 loc) · 3.67 KB

File metadata and controls

executable file
·
93 lines (88 loc) · 3.67 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/bin/sh
#
# This tool can be used to install a new package into MicroPython
# library location (for unix port, default behavior), or produce
# complete library snapshot to be deployed on a device for baremetal
# ports (if PIP_MICROPY_DEST environment var is set).
#
# Note: this tool is deprecated in favor of "upip" native MicroPython
# package manager, which is bundled with MicroPython unix binary
# as a frozen module and can be run as "micropython -u pip" or installed
# from PyPI package "micropython-upip". This utility is left for
# reference, regression testing, debugging, etc.
#
if [ "$1" != "install" ]; then
echo "Only install command is supported currently"
exit 1
fi
shift
if [ -z "$TMPDIR" ]; then
TMPDIR=/tmp
fi
TMPVENV="$TMPDIR/pip-micropy-venv"
if [ -n "$PIP_MICROPY_DEST" ]; then
dest="$PIP_MICROPY_DEST"
echo "Destination snapshot directory: $dest"
elif [ -n "$MICROPYPATH" ]; then
libdest=$(echo "$MICROPYPATH" | awk -F: ' {print $1}')
echo "Destination library directory: $libdest"
else
echo "Warning: MICROPYPATH is not set, assuming default value"
libdest=~/.micropython/lib
echo "Destination library directory: $libdest"
fi
# Due to bugs in pip, installation should happen with active virtualenv
# The issue (at least with pip 1.0 which is still what's shipped with many
# distros) is that even if --ignore-installed is used, package is not
# installed if it's already installed for main python distribution.
if [ ! -d "$TMPVENV" ]; then
virtualenv --no-site-packages "$TMPVENV"
# distutils, setuptools, pip are buggy and allow target packages affect
# their execution environment. For example, if distribution they install
# has re.py, they will import that instead of system re. So, we need
# to remove current dir from sys.path, but that appear to be quite uneasy
# with CPython, so we hook __import__ and exterminate it persistently.
# See also https://bitbucket.org/pypa/setuptools/issue/187/
cat > $(ls -1d "$TMPVENV"/lib/python*/)/sitecustomize.py <<EOF
import sys
import __builtin__
old_imp = __import__
def new_imp(*a, **kw):
if not sys.path[0]: sys.path.pop(0)
return old_imp(*a, **kw)
__builtin__.__import__ = new_imp
EOF
fi
. "$TMPVENV"/bin/activate
# We need to specify --record to override this switch as passed by pip
# pip will try to parse this file (at the location in specifies), and try to
# access files as specified in it. But paths there will be relative to --root
# we pass, so it won't find files and crash. However, if it won't find the
# file, it will just issue a warning and continue.
if [ -n "$dest" ]; then
pip install "$@" \
--install-option="--install-base=." \
--install-option="--install-purelib=lib" \
--install-option="--install-platlib=lib" \
--install-option="--install-scripts=." \
--install-option="--install-headers=headers" \
--install-option="--install-data=lib" \
--install-option="--record=$TMPDIR/setuptools-record.txt" \
--install-option="--no-compile" \
--install-option="--root=$dest"
else
# Here we assume that base dir is lib dir, and install scripts a level
# higher. For default value of ~/.micropython/lib/ , this should give
# reasonable behavior, though better would make it overridable (or
# go bold and use ~/bin ?)
pip install "$@" \
--install-option="--install-base=." \
--install-option="--install-purelib=." \
--install-option="--install-platlib=." \
--install-option="--install-scripts=.." \
--install-option="--install-headers=../headers" \
--install-option="--install-data=." \
--install-option="--record=$TMPDIR/setuptools-record.txt" \
--install-option="--no-compile" \
--install-option="--root=$libdest"
fi
Morty Proxy This is a proxified and sanitized view of the page, visit original site.