mirror of
https://github.com/jupyter/docker-stacks.git
synced 2025-10-07 18:14:05 +00:00
42 lines
1.4 KiB
Python
Executable File
42 lines
1.4 KiB
Python
Executable File
#!/usr/bin/env python
|
|
# Copyright (c) Jupyter Development Team.
|
|
# Distributed under the terms of the Modified BSD License.
|
|
import os
|
|
import shlex
|
|
import sys
|
|
|
|
# If we are in a JupyterHub, we pass on to `start-singleuser.py` instead so it does the right thing
|
|
if "JUPYTERHUB_API_TOKEN" in os.environ:
|
|
print(
|
|
"WARNING: using start-singleuser.py instead of start-notebook.py to start a server associated with JupyterHub."
|
|
)
|
|
command = ["/usr/local/bin/start-singleuser.py"] + sys.argv[1:]
|
|
os.execvp(command[0], command)
|
|
|
|
|
|
# Wrap everything in start.sh, no matter what
|
|
command = ["/usr/local/bin/start.sh"]
|
|
|
|
# If we want to survive restarts, tell that to start.sh
|
|
if os.environ.get("RESTARTABLE") == "yes":
|
|
command.append("run-one-constantly")
|
|
|
|
# We always launch a jupyter subcommand from this script
|
|
command.append("jupyter")
|
|
|
|
# Launch the configured subcommand. Note that this should be a single string, so we don't split it
|
|
# We default to lab
|
|
jupyter_command = os.environ.get("DOCKER_STACKS_JUPYTER_CMD", "lab")
|
|
command.append(jupyter_command)
|
|
|
|
# Append any optional NOTEBOOK_ARGS we were passed in. This is supposed to be multiple args passed
|
|
# on to the notebook command, so we split it correctly with shlex
|
|
if "NOTEBOOK_ARGS" in os.environ:
|
|
command += shlex.split(os.environ["NOTEBOOK_ARGS"])
|
|
|
|
# Pass through any other args we were passed on the command line
|
|
command += sys.argv[1:]
|
|
|
|
# Execute the command!
|
|
os.execvp(command[0], command)
|