node package manager
We need your input. Help make JavaScript better: Take the 2017 JavaScript Ecosystem survey »


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