|
@@ -7,6 +7,7 @@ import json
|
|
|
import os
|
|
|
from os import path as osp
|
|
|
from os.path import join as pjoin
|
|
|
+import sys
|
|
|
from subprocess import check_call, check_output
|
|
|
import shutil
|
|
|
import tarfile
|
|
@@ -21,13 +22,14 @@ pkg_path = pjoin(build_dir, 'package.json')
|
|
|
config_dir = pjoin(ENV_CONFIG_PATH[0], 'labconfig')
|
|
|
|
|
|
|
|
|
-def install_extension(extension):
|
|
|
+def install_extension():
|
|
|
"""Install an extension package into JupyterLab.
|
|
|
|
|
|
Follows the semantics of https://docs.npmjs.com/cli/install.
|
|
|
|
|
|
The extension is first validated.
|
|
|
"""
|
|
|
+ extension = sys.argv[-1]
|
|
|
tar_name, pkg_name = validate_extension(extension)
|
|
|
path = pjoin(cache_dir, tar_name)
|
|
|
check_call(['npm', 'install', '--save', path], cwd=build_dir)
|
|
@@ -38,9 +40,10 @@ def install_extension(extension):
|
|
|
json.dump(data, fid)
|
|
|
|
|
|
|
|
|
-def uninstall_extension(extension):
|
|
|
+def uninstall_extension():
|
|
|
"""Uninstall an extension by name.
|
|
|
"""
|
|
|
+ extension = sys.argv[-1]
|
|
|
data = _read_package()
|
|
|
data['jupyterlab']['extensions'].remove(extension)
|
|
|
del data['dependencies'][extension]
|
|
@@ -80,12 +83,13 @@ def validate_extension(extension):
|
|
|
return name, data['name']
|
|
|
|
|
|
|
|
|
-def link_extension(package):
|
|
|
+def link_extension():
|
|
|
"""Link a package into JupyterLab
|
|
|
|
|
|
Follows the semantics of https://docs.npmjs.com/cli/link.
|
|
|
"""
|
|
|
- check_call(['npm', 'link', package], cwd=build_dir)
|
|
|
+ extension = sys.argv[-1]
|
|
|
+ check_call(['npm', 'link', extension], cwd=build_dir)
|
|
|
|
|
|
|
|
|
def build():
|
|
@@ -138,8 +142,3 @@ def _read_package():
|
|
|
_ensure_package()
|
|
|
with open(pkg_path) as fid:
|
|
|
return json.load(fid)
|
|
|
-
|
|
|
-
|
|
|
-if __name__ == '__main__':
|
|
|
- install_extension('~/workspace/jupyter/jupyterlab_geojson/labextension')
|
|
|
- build()
|