Wiki

Clone wiki

karhu / karhuproj

This is the command line tool for project management. The following commands exist:

new

Creates a new project directory in the directory specified (if none, the current directory):

#!

karhuproj new
    --id <ext.org.proj>
    --name <name>
    [--template <project|karhu>=project]
    [--dir <path>=current]
  • --id: application identifier: extension, organisation and project, all lowercase ASCII
  • --name: the full, proper name, with spaces and Unicode as desired; the display name
  • --template: the project template to copy into the new folder; project will remain associated with it
  • --dir: the directory in which to create the new project directory; current if omitted

The project templates can be found under $KARHU_HOME/templates/ but there is really no need to ever use the 'karhu' template; there is already a Karhu project set up in the SDK directory with which the build tools can interact when it needs to be rebuilt. More templates than 'project' may be added in the future, however.

sync

Manages repository synchronisation. It is always recommended to have a repository to backup any project, but it is also required for SSH build to work properly. While the system currently only supports git, the interface is abstracted so that it may be possible to add other systems in the future.

There is also the update action, which synchronises the project with any changes to the SDK and its project templates (a project after creation remains associated with its initial template) to make sure everything works. This includes updating build file templates, adding new default tags to info and build files and so on. This is done locally and does not imply actually updating the SDK itself.

#!

karhuproj sync
    --acts <push, pull, update>
    [--m <message>="Automated commit."]
    [--dir <path>=current]
  • --acts: multiple actions that can be carried out
  • --m: an optional commit message; only used for the 'push' action
  • --dir: the project directory to work from; current if omitted; 'karhu' for Karhu project

The setup requires that no password has to be entered when pushing or pulling. This setup is not a part of Karhu and needs to be handled externally. See SSH.

Updated