node package manager


FAF Tool

Command line utility which helps in setting up faf project

Table of Contents

  1. Install
  2. Basic Usage
  3. Commands
  4. CLI Options
  5. Settings File


npm install -g faf-tool

Basic Usage

mkdir diamond-feature
cd diamond-feature

running faf-tool without command shows help and copy settings.json.example to current folder rename settings.json.example to settings.json and edit it, for example:

  "svn-server": "",
  "release-cycle": "diamond",
  "feature-name": "feature",
  "jasperserver-branch": "diamond-ce-feature",
  "jasperserver-pro-branch": "diamond-pro-feature",
  "modules": [

Prepare local project to work

faf-tool setup

⬆ back to top



Checkout selected modules and run npm init

faf-tool setup


Initialize for each module: npm install && npm prune && grunt init

faf-tool init


Start watchers assets like js,hml,css etc in all faf packages

faf-tool watch

To find out local deployment you have to prepare .workspace file


Update and initialize for each module: svn up && npm install && npm prune && grunt init

faf-tool update-init


Checking out faf modules and jrs if specified

faf-tool create-feature


Switch repository to specified branch

faf-tool switch


Runs svn up and svn merge from trunk command for FAF modules and JRS Accepts "--accept=" svn argument. Default "postpone". Accepts "--separate-changelist=<true|false>" svn argument. Default "true".

faf-tool downmerge


removes all changelists which was created during downmerge task executed with --separate-changelist=true wich is set by default

faf-tool removecl


runs svn cleanup for each module

faf-tool cleanup

⬆ back to top

CLI options

  • --dry-run=true
  • --verbose
  • --no-time - hide time report
  • --username=<username> - svn username
  • --password=<password> - svn password
  • --accept=<value> - argument for svn merge command, works for "downmerge" task. Default "postpone".
  • --parallel=<true|false> - argument for parallel command execution, works for most tasks which use svn. Default "true".
  • --separate-changelist=<true|false> - argument for adding module changes to a separate svn changelist, works for "downmerge" task. Default "true"

Dry run example

faf-tool create-feature --dry-run

⬆ back to top

Settings File

Look at settings.json samples

  // by default it uses "https://" protocol 
  "svn-server": "",
  // branch name parts 
  //name of the feature branch or "trunk" 
  "feature-name": "<feature name>", 
  // optional parameter for features without release cycle like bugfix 
  "release-cycle": "<release name>", 
  // optional JRS branches names used for checkout JRS 
  "jasperserver-branch": "<existing jrs ce branch name>",
  "jasperserver-pro-branch": "<existing jrs pro branch name>",
  // optional JRS location  
  "jasperserver-ci-path": "<path to ci jrs>",
  "jasperserver-pro-ci-path": "<path to ci jrs-pro>",
  // optional svn credentials 
  "username": "username",
  "modules": [

⬆ back to top