Commands shell (CLI)
Overview
The command slicer_package_manager_client
allows to to interact with
a Slicer Package Manager server.
There are 5 different subcommands that can be used to manage data:
app command to create, list and delete applications.
release command to create, list and delete releases.
draft command to list and delete draft releases.
package command to upload, download or just list application packages.
extension command to upload, download or just list extensions packages.
Warning
To run command requiring higher privileges, you will have to authenticate.
Installation
Install with:
$ pip install slicer-package-manager-client
or:
$ git clone https://github.com/girder/slicer_package_manager.git
$ cd slicer_package_manager/python_client
$ pip install -e .
for development.
Configuration
Authentication
There are few solutions to authenticate on your Girder instance when using the client:
Using your login and your password:
$ slicer_package_manager_client --username admin --password adminadmin
Generating an API-KEY see the documentation for more details:
$ slicer_package_manager_client --api-key EKTb15LjqD4Q7jJuAVPuUSuW8N7s3dmuAekpRGLD
or by using the GIRDER_API_KEY
environment variable:
$ export GIRDER_API_KEY=EKTb15LjqD4Q7jJuAVPuUSuW8N7s3dmuAekpRGLD
Warning
The API-KEY is given as an example, follow the documentation on api-key to create your own.
Note
If you want to use the client to an external Slicer package manager instance, you will need to provide the API url by adding the option:
--api-url http://192.168.100.110/api/v1
(The IP is given as an example)
Then you can start using the API that allow you to easily create applications, manage releases, upload and download packages, see Commands shell (CLI) documentation for more details.
Bash completion
To use the Bash completion feature you just have to run the following command each time you use a new terminal:
$ eval "$(_SLICER_PACKAGE_MANAGER_CLIENT_COMPLETE=source slicer_package_manager_client)"
Or you can add it on your .bashrc
file to always have this feature available.
Custom application collection
In each command, the optional parameter coll_id
allow to use the Slicer Package Manager
Client within an existing collection and not in the default Applications collection.
When this is the case, to avoid repeating this parameter in each command it’s also possible
to set an environment variable named COLLECTION_ID
.
Subcommands
Application
Use slicer_package_manager_client app
to create, list and delete applications.
Create & Initialized a new application
You can either choose an existing collection by providing coll_id
or create a specific one
by providing coll_name
. If none of this optional parameters are provided, the default
collection Application will be got or created if it doesn’t exist yet.
This function will also create a top level folder named packages organizing the different
application in the collection.
slicer_package_manager_client app create NAME [OPTIONS]
Arguments:
NAME
- The name of the new application
Options:
--desc
- The description of the new application--coll_id
- ID of an existing collection--coll_name
- The name of the new collection--coll_desc
- The description of the new collection--public
- Whether the collection should be publicly visible
List all the application within a collection
By providing coll_id
, you are able to list all the applications from a specific collection.
By default it will list the applications within the collection Applications.
slicer_package_manager_client app list
Delete an application
slicer_package_manager_client app delete NAME
Arguments:
NAME
- The name of the application which will be deleted--coll_id
- ID of an existing collection
Release
Use slicer_package_manager_client release
to create, list and delete releases.
Create a new release
slicer_package_manager_client release create APP_NAME NAME REVISION [OPTIONS]
Arguments:
APP_NAME
- The name of the applicationNAME
- The name of the new releaseREVISION
- The revision of the application corresponding to this release
Options:
--coll_id
- ID of an existing collection--desc
- The description of the new application
List all the release from an application
slicer_package_manager_client release list APP_NAME
Arguments:
APP_NAME
- The name of the application
Options:
--coll_id
- ID of an existing collection
Delete a release
slicer_package_manager_client release delete APP_NAME NAME
Arguments:
APP_NAME
- The name of the applicationNAME
- The name of the release which will be deleted
Options:
--coll_id
- ID of an existing collection
Draft
Use slicer_package_manager_client draft
to list and delete draft releases.
List all the draft release within an application
Provide revision
will list only one draft release corresponding to the revision store as
metadata. The --offset
option allow to list only the older draft release.
slicer_package_manager_client draft list APP_NAME [OPTIONS]
Arguments:
APP_NAME
- The name of the application
Options:
--revision
- The revision of a draft release--offset
- The offset to list only the older draft release--coll_id
- ID of an existing collection
Delete a specific draft release
slicer_package_manager_client draft delete APP_NAME REVISION [OPTIONS]
Arguments:
APP_NAME
- The name of the applicationREVISION
- The revision of the draft release
Options:
--coll_id
- ID of an existing collection
Package
Use slicer_package_manager_client package
to upload, download or just list application packages.
Upload a new application package
Give the FILE_PATH
argument to be able to upload an application package.
The application package will automatically be added to the release which has the same revision
than the --revision
value. If any release correspond to the given revision,
the application package will be uploaded in the draft release, by default.
The final name of the application package will depend of the applicationPackageNameTemplate
set as metadata on the application folder. The default name is
{baseName}_{arch}_{os}_{revision}
. It can be change at any time on the application
setting page.
The --pre_release
option is used to specify if the uploaded package is ready for distribution
or if it needs extra steps before that. In some cases, the package needs to be signed and then
re-uploaded on the server.
slicer_package_manager_client package upload APP_NAME FILE_PATH [OPTIONS]
Arguments:
APP_NAME
- The name of the applicationFILE_PATH
- The path to the application package file to upload
Options:
--os
- The target operating system of the package--arch
- Architecture that is supported by the application package--name
- The basename of the new application package--repo_type
- The repository type of the application package--repo_url
- The repository URL of the application package--revision
- The revision of the application package--coll_id
- ID of an existing collection--pre_release
- Boolean to specify if the package is ready to be distributed--desc
- The description of the new application
List application packages
Use options to filter the listed application packages. By default, the command will list all
the application packages from the ‘draft’ release. It is possible to use the --release
option to list the application package from a particular release.
slicer_package_manager_client package list APP_NAME [OPTIONS]
Arguments:
APP_NAME
- The name of the application
Options:
--os
- The target operating system of the package--arch
- Architecture that is supported by the application package--revision
- The revision of the application--release
- The release within list all the application package--name
- Basename of an application package--limit
- Limit on the number of listed application package--coll_id
- ID of an existing collection
Download an application package
By default the package will be store in the current folder
slicer_package_manager_client package download APP_NAME ID_OR_NAME [OPTIONS]
Arguments:
APP_NAME
- The name of the applicationID_OR_NAME
- The ID or name of the application package which will be downloaded
Options:
--dir_path
- Path where will be save the application package after the download--coll_id
- ID of an existing collection
Delete an application package
Provide either the ID or the name of the application package to delete it.
slicer_package_manager_client package delete APP_NAME ID_OR_NAME
Arguments:
APP_NAME
- The name of the applicationID_OR_NAME
- The ID or name of the application package which will be deleted
Options:
--coll_id
- ID of an existing collection
Extension
Use slicer_package_manager_client extension
to upload, download or just list extension packages.
Upload a new extension
Give the FILE_PATH
argument to be able to upload an extension. The extension will then
automatically be added to the release which has the same revision than the --app_revision
value. By default, if any release corresponds to the given revision, the extension will be
uploaded in the draft folder within the ‘draft’ release which has the given revision as
metadata, or create it if it doesn’t exist yet.
The final name of the extension will depend of the extensionPackageNameTemplate
set as
metadata on the application folder. The default name is
{app_revision}_{baseName}_{os}_{arch}_{revision}
. It can be change at any time on the
application setting page.
slicer_package_manager_client extension upload APP_NAME FILE_PATH [OPTIONS]
Arguments:
APP_NAME
- The name of the applicationFILE_PATH
- The path to the extension file to upload
Options:
--os
- The target operating system of the package--arch
- Architecture that is supported by the extension--name
- The basename of the new extension--repo_type
- The repository type of the extension--repo_url
- The repository URL of the extension--revision
- The revision of the extension--app_revision
- The revision of the application corresponding to this release--coll_id
- ID of an existing collection--desc
- The description of the new application
List extensions
Use options to filter the listed extensions. By default, the command will list all the extension
from the ‘draft’ release. It is possible to use the --release
option to list the extension
from a particular release. Or use the flag --all
to list all the extension present in the
application. It is also possible to get only one extension by providing the --fullname
option of an extension.
slicer_package_manager_client extension list APP_NAME [OPTIONS]
Arguments:
APP_NAME
- The name of the application
Options:
--os
- The target operating system of the package--arch
- Architecture that is supported by the extension--app_revision
- The revision of the application--release
- The release within list all the extension--limit
- Limit on the number of listed extension--all
- Flag to list all the extension from all the release--fullname
- Fullname of an extension--coll_id
- ID of an existing collection
Download an extension
slicer_package_manager_client extension download APP_NAME ID_OR_NAME [OPTIONS]
Arguments:
APP_NAME
- The name of the applicationID_OR_NAME
- The ID or name of the extension which will be downloaded
Options:
--dir_path
- Path where will be save the extension after the download--coll_id
- ID of an existing collection
Delete an extension
Provide either the ID or the name of the extension to delete it.
slicer_package_manager_client extension delete APP_NAME ID_OR_NAME
Arguments:
APP_NAME
- The name of the applicationID_OR_NAME
- The ID or name of the extension which will be deleted
Options:
--coll_id
- ID of an existing collection