Skip to content

elixir-oslo/lega-commander

Repository files navigation

lega-commander

Build Status GoDoc CodeFactor Go Report Card codecov DeepSource

Installation / Update

Linux

run the command below on your terminal:

curl -fsSL https://raw.githubusercontent.com/elixir-oslo/lega-commander/master/install.sh | sudo sh

MacOS

run the command below on your terminal:

curl -fsSL https://raw.githubusercontent.com/elixir-oslo/lega-commander/master/install.sh | sh

Windows

Go to the releases page and download the latest binary manually.

Configuration

Before using the lega commander, make sure all the environment variables required for authentication are set:

In linux and MacOS you can use below commands in commandlines to set them:

export CENTRAL_EGA_USERNAME=...
export CENTRAL_EGA_PASSWORD=...
export ELIXIR_AAI_TOKEN=...

In windows, the variables must be set in environmental variables list.(Explained here)

Table below shows how there variables must be set:

Environmental variable name description
CENTRAL_EGA_USERNAME The user name that you received from CEGA website
CENTRAL_EGA_PASSWORD The password that you received from CEGA website
ELIXIR_AAI_TOKEN The token that you received after login here:(https://ega.elixir.no/)

for developers: the tool is pre-configured to work with Norwegian Federated EGA instance: https://ega.elixir.no. If you want to specify another instance, you can set LOCAL_EGA_INSTANCE_URL environment variable.

Usage

For the time being, all of upload and download commands should not run with -b argument.

$ lega-commander
lega-commander [inbox | outbox | resumables | upload | download] <args>

 inbox:
  -l, --list    Lists uploaded files
  -d, --delete= Deletes uploaded file by name

 outbox:
  -l, --list  Lists exported files

 resumables:
  -l, --list    Lists resumable uploads
  -d, --delete= Deletes resumable upload by ID

 upload:
  -f, --file=FILE or =FOLDER    File or folder to upload
  -r, --resume                  Resumes interrupted upload
  -b, --beta                    Upload the files without the proxy service;i.e. directly to tsd file api. This means the parts of the file are sent to tsd file api instead of sending them to proxy service and then proxy service forward them to tsd file api. So it would be one-part transferring instead of two-part transferring.

 download:
  -f, --file= FILE or =FOLDER   File or folder to download

Example Usage

As an example, if we want to upload file named sample-c4gh-file.c4gh and in path of /path/to/a/c4gh/file or D:\path\to\a\c4gh\file, we wil do it with commands below based on operating system:

In linux or macos:

lega-commander upload   -f /path/to/a/c4gh/file/sample-c4gh-file.c4gh 

In windows (in the case that lega-commander binary [dowloaded from release page] is in D:\users\lega-commander folder):

D:\users\lega-commander upload  -f D:\path\to\a\c4gh\file\sample-c4gh-file.c4gh 

or if we want to upload a folder with path of /path/to/a/folder/containing/c4gh/files that contains c4gh files, we can use this example command:

lega-commander upload  -f /path/to/a/folder/containing/c4gh/files

How it works

The flowchart below shows how lega commander connects to the other components of project in order to UPLOAD the file/folder: Flowchart of upload