Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
senpy
senpy
Commits
07b5dd38
Commit
07b5dd38
authored
Sep 21, 2016
by
J. Fernando Sánchez
Browse files
Added option to install dependencies in CLI
parent
0d511ad3
Changes
5
Hide whitespace changes
Inline
Side-by-side
Dockerfile.template
View file @
07b5dd38
from python:{{PYVERSION}}-onbuild
RUN pip install .
ENTRYPOINT ["python", "-m", "senpy", "-f", ".", "--host", "0.0.0.0"]
Makefile
View file @
07b5dd38
...
...
@@ -34,9 +34,13 @@ upload-%: test-%
upload
:
testall $(addprefix upload-
,
$(PYVERSIONS))
docker tag
'
$(REPO)
/
$(NAME)
:
$(VERSION)
-python
$(PYMAIN)
'
'
$(REPO)
/
$(NAME)
:
$(VERSION)
'
docker tag
'
$(REPO)
/
$(NAME)
:
$(VERSION)
-python
$(PYVERSIONS)
'
'
$(REPO)
/
$(NAME)
'
docker push
'
$(REPO)
/
$(NAME)
:
$(VERSION)
'
docker push
'
$(REPO)
/
$(NAME)
'
python setup.py sdist upload
docker tag
'
$(REPO)
/
$(NAME)
:
$(VERSION)
-python
$(PYMAIN)
'
'
$(REPO)
/
$(NAME)
'
docker push
'
$(REPO)
/
$(NAME)
:
$(VERSION)
'
clean
:
@
docker ps
-a
|
awk
'/
$(REPO)
\/
$(NAME)
/{ split($$2, vers, "-"); if(vers[1] != "
${VERSION}
"){ print $$1;}}'
| xargs docker
rm
2>/dev/null||
true
@
docker images |
awk
'/
$(REPO)
\/
$(NAME)
/{ split($$2, vers, "-"); if(vers[1] != "
${VERSION}
"){ print $$1":"$$2;}}'
| xargs docker rmi 2>/dev/null||
true
pip_upload
:
python setup.py sdist upload
;
...
...
senpy/VERSION
View file @
07b5dd38
0.6.0
\ No newline at end of file
0.6.1
senpy/__main__.py
View file @
07b5dd38
...
...
@@ -65,6 +65,11 @@ def main():
type
=
str
,
default
=
'plugins'
,
help
=
'Where to look for plugins.'
)
parser
.
add_argument
(
'--only-install'
,
'-i'
,
action
=
'store_true'
,
default
=
False
,
help
=
'Do not run a server, only install the dependencies of the plugins.'
)
args
=
parser
.
parse_args
()
logging
.
basicConfig
()
rl
=
logging
.
getLogger
()
...
...
@@ -72,6 +77,9 @@ def main():
app
=
Flask
(
__name__
)
app
.
debug
=
args
.
debug
sp
=
Senpy
(
app
,
args
.
plugins_folder
,
default_plugins
=
args
.
default_plugins
)
if
args
.
only_install
:
sp
.
install_deps
()
return
sp
.
activate_all
()
http_server
=
WSGIServer
((
args
.
host
,
args
.
port
),
app
)
try
:
...
...
senpy/extensions.py
View file @
07b5dd38
...
...
@@ -204,6 +204,21 @@ class Senpy(object):
def
validate_info
(
cls
,
info
):
return
all
(
x
in
info
for
x
in
(
'name'
,
'module'
,
'version'
))
def
install_deps
(
self
):
for
i
in
self
.
plugins
.
values
():
self
.
_install_deps
(
i
.
_info
)
@
classmethod
def
_install_deps
(
cls
,
info
=
None
):
requirements
=
info
.
get
(
'requirements'
,
[])
if
requirements
:
pip_args
=
[]
pip_args
.
append
(
'install'
)
for
req
in
requirements
:
pip_args
.
append
(
req
)
logger
.
info
(
'Installing requirements: '
+
str
(
requirements
))
pip
.
main
(
pip_args
)
@
classmethod
def
_load_plugin_from_info
(
cls
,
info
,
root
):
if
not
cls
.
validate_info
(
info
):
...
...
@@ -215,13 +230,7 @@ class Senpy(object):
sys
.
path
.
append
(
root
)
(
fp
,
pathname
,
desc
)
=
imp
.
find_module
(
module
,
[
root
,
])
try
:
if
requirements
:
pip_args
=
[]
pip_args
.
append
(
'install'
)
for
req
in
requirements
:
pip_args
.
append
(
req
)
logger
.
info
(
'Installing requirements: '
+
str
(
requirements
))
pip
.
main
(
pip_args
)
cls
.
_install_deps
(
info
)
tmp
=
imp
.
load_module
(
module
,
fp
,
pathname
,
desc
)
sys
.
path
.
remove
(
root
)
candidate
=
None
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment