node package manager
Painless code sharing. npm Orgs help your team discover, share, and reuse code. Create a free org »

faf-tool

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

Install

npm install -g faf-tool
 

Basic Usage

 
mkdir diamond-feature
cd diamond-feature
faf-tool
 

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": "svnserver.jaspersoft.com",
  "release-cycle": "diamond",
  "feature-name": "feature",
  "jasperserver-branch": "diamond-ce-feature",
  "jasperserver-pro-branch": "diamond-pro-feature",
  "modules": [
    "bi-charts",
    "bi-dashboard",
    "bi-report",
    "bi-repository",
    "js-sdk",
    "jrs-ui",
    "jrs-ui-pro"
  ]
}

Prepare local project to work

faf-tool setup
 

⬆ back to top

Commands

setup

Checkout selected modules and run npm init

 
faf-tool setup
 

init

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

 
faf-tool init
 

watch

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-init

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

 
faf-tool update-init
 
 

checkout-full

Checking out faf modules and jrs if specified

 
faf-tool create-feature
 

switch

Switch repository to specified branch

 
faf-tool switch
 

downmerge

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
 

removecl

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

 
faf-tool removecl
 
 

cleanup

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": "svnserver.jaspersoft.com",
  
  // 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",
  "password":"password",
 
  "modules": [
    "bi-charts",
    "bi-dashboard",
    "bi-report",
    "bi-repository",
    "js-sdk",
    "jrs-ui",
    "jrs-ui-pro"
  ]
}

⬆ back to top