wiki:SoaScript

SoaScript

SoaScript makes projectmanagment (cloning, building, pulling/pushing, intra-project dependency handling) within Asap and other projects using HmiBuild easier on Mac and Linux systems. To be able to use SoaScript, one requires a techfak login and access to /vol/soa (locally or via portb or porta).

Installation

Download this file:  http://www.techfak.uni-bielefeld.de/ags/soa/software/soa

Put it in your PATH: That is: in the .bashrc file in your home directory add

export PATH="${PATH}:/homes/myaccount/bin"

with myaccount your techfak login and bin the directory you've placed soa in.

And make sure it is executable:

chmod 755 /homes/myaccount/bin/soa

Setup

Run soa init in your terminal and follow the instructions. You are guided through a system-dependent setup process.

ssh key setup

You need to use ssh keys to login to porta/portb. To create a public/private key pair run (on your techfak machine):

ssh-keygen

This creates a private key and a public key in the .ssh dir of your home directory. You then need to append the public key to the authorized_keys file in the .ssh dir of your home directory.

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Make sure that the authorized_keys file is only accessible to the owner

chmod 600 ~/.ssh/authorized_keys

You should now be able to login (e.g. ssh yourlogin@portX.techfak.uni-bielefeld.de) without password, or using pass phrase you've set for your keys when creating them with ssh-keygen. If this fails, use ssh -v to troubleshoot. You can use multiple v-s (e.g. ssh -vv) to get more debug information.

Usage

Call soa help to get a list of supported commands.

Here are the most common ones:

  • soa list lists remotely avaiable packages.
  • soa clone clones a package to your local storage
  • soa clone-all clones a package and its dependencies
  • soa build inside a package directory builds the project.
  • soa build-all builds dependencies, too
  • soa create billieproject myBillie creates a new project "myBillie" from the template "billieproject" (find templates using soa list)