Using Gocommands
Since Yoda is based on iRODS technology, it is possible to transfer data to and from Yoda using the iRODS communication protocol. This protocol can be used to transfer large amounts of data in an efficient way. Gocommands is an alternative to the standard irods iCommands if your OS is not supported. Gocommands runs on Windows, MacOS, and Linux.
We suggest to only use Gocommands if you are comfortable with command-line tools.
Installing GoCommands
You first need to download the gocmd file external link to be able to run the Gocommands from the commandline. You must check what your operating system is and what processor you have. For example, this is the command to download the gocmd executable for Windows with an amd64 processor using Windows Command Prompt:
curl -L -s -o gocmdv.txt https://raw.githubusercontent.com/cyverse/gocommands/main/VERSION.txt && set /p GOCMD_VER=<gocmdv.txt
curl -L -s -o gocmd.zip https://github.com/cyverse/gocommands/releases/download/%GOCMD_VER%/gocmd-%GOCMD_VER%-windows-amd64.zip && tar zxvf gocmd.zip && del gocmd.zip gocmdv.txtThis will download the gocmd executable to your current working directory.
Check the Readme for instructions on other platforms.
The current 0.11.x version of Gocommands is not compatible with Yoda 2.0. Please use the 0.10.26 version for now.
Download and zip it manually or adjust the command like this:
curl -L -s -o gocmd.zip https://github.com/cyverse/gocommands/releases/download/0.10.26/gocmd-0.10.26-windows-amd64.zip && tar zxvf gocmd.zip && del gocmd.zipConfiguring the Gocommands
Before you can start using the Gocommands, you need to set up your environment to connect to Yoda by creating an irods_environment.json file. If you already have an irods_environment.json file there is no extra configuring to be done, and you can start using commands with the GoCommands immediately.
If you have no irods_environment.json file, follow these instructions. On windows store it in %USERPROFILE%\.irods\irods_environment.json.
Getting started with the Gocommands
After downloading and configuring the Gocommands, you can start running commands immediately. Note that the first time the Gocommands are run, it may ask for a password. The password you must use is a data access password.
A test command to check that the Gocommands have been configured correctly (assuming that you have downloaded the executable in your current directory) is:
./gocmd lsThis should list the collections that you have access to on your Yoda instance.
General use
There is some general documentation on the Gocommands GitHub external link, along with documentation external link on additional sub commands available to use. The Gocommands executable itself also has in-built information. You can learn about the commands available with the Gocommands by running:
./gocmd --help And to learn more about a specific command run:
./gocmd [name of command] --helpThese are the basic commands for navigation and data transfer:
- gocmd pwd – Show current iRODS directory
- gocmd ls – List contents of a directory
- gocmd cd – Change directory
- gocmd put – Upload files to Yoda
- gocmd get – Download files from Yoda
By default an iRODS session will time-out after an hour and you will need to login again. You can extend the session by starting it with the gocmd init --ttl <hours> option, e.g. gocmd init --ttl 8 will keep the session alive for 8 hours.
Copying files
Here is an example of how you could copy files from your current directory to iRODS. This would copy the folder “folder” and its contents on your computer to the collection ‘research-group’ in Yoda:
./gocmd sync ./folder i:/vu/home/research-group/ --progress This gives an idea of what the process is like. You can learn more about how to use the Gocommands to transfer files in the syncing section. The section on the sync command is especially useful when transferring data to Yoda.