Skip to content

arupex/qak

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

qak

A CLI for nested Projects

npm version dependencies Build Status Donate lifetimeDownloadCount

Instalation

npm i -g qak

Usage (get commands)

qak

Usage if unique command (if not unique qak will give you a table of ambiguity)

qak uniqueCommand

Usage if you want project scripts

qak project

Usage if you want to run a command in a specific project when that command is used in multiple projects

qak project command
or
qak command project

passing args thru qak

qak command project --remoteUrl=localhost

Qak will

  • set env var remoteUrl = 'localhost';
  • set the args on the command call to match as well

qak ambiquity (if there is any it will output a table to stdout)

    $> qak postinstall
     ╔══════════════════╤═════════════╤═════════════════════════════════════════════════════════╗
     ║ Project          │ Command     │ Script                                                  ║
     ╟──────────────────┼─────────────┼─────────────────────────────────────────────────────────╢
     ║ integration-test │ postinstall │ ./scripts/download_wiremock.sh;webdriver-manager update ║
     ╟──────────────────┼─────────────┼─────────────────────────────────────────────────────────╢
     ║ system-test      │ postinstall │ webdriver-manager update                                ║
     ╚══════════════════╧═════════════╧═════════════════════════════════════════════════════════╝

if you give it a project name but no command qak will tell you the availible commands

     $> qak api
     ╔═════════╤═════════╤══════════════════════════════════════════════════╗
     ║ Project │ Command │ Script                                           ║
     ╟─────────┼─────────┼──────────────────────────────────────────────────╢
     ║ api     │ serve   │ npm run swagger; nodemon src/server.js           ║
     ╟─────────┼─────────┼──────────────────────────────────────────────────╢
     ║ api     │ swagger │ node tasks/buildSwaggerDef.js                    ║
     ║         │         │ ../client/doc/swagger.json swagger.yml localdev  ║
     ╟─────────┼─────────┼──────────────────────────────────────────────────╢
     ║ api     │ test    │ ./../node_modules/.bin/cucumber-js --tags '@wip' ║
     ╚═════════╧═════════╧══════════════════════════════════════════════════╝

and if you just do qak you'll get it all

      $> qak
      ╔══════════════════╤═══════════════╤═════════════════════════════════════════════════╗
      ║ Project          │ Command       │ Script                                          ║
      ╟──────────────────┼───────────────┼─────────────────────────────────────────────────╢
      ║ admin            │ test          │ npm run test-service;npm run test-ui            ║
      ╟──────────────────┼───────────────┼─────────────────────────────────────────────────╢
      ║ admin            │ test-ui       │ cd client;npm test;npm run e2e;cd ..            ║
      ╟──────────────────┼───────────────┼─────────────────────────────────────────────────╢
      ║ api              │ serve         │ npm run swagger; nodemon src/server.js          ║
      ╟──────────────────┼───────────────┼─────────────────────────────────────────────────╢
      ║ api              │ swagger       │ node tasks/buildSwaggerDef.js                   ║
      ║                  │               │ ../client/doc/swagger.json swagger.yml localdev ║
      ╟──────────────────┼───────────────┼─────────────────────────────────────────────────╢
      ║ client           │ ng            │ ng                                              ║
      ╟──────────────────┼───────────────┼─────────────────────────────────────────────────╢
      ║ client           │ start         │ webpack-dev-server --port=4200                  ║
      ╟──────────────────┼───────────────┼─────────────────────────────────────────────────╢
      ║ client           │ test          │ karma start ./karma.conf.js                     ║
      ╟──────────────────┼───────────────┼─────────────────────────────────────────────────╢
      ║ client           │ e2e           │ chimp                                           ║
      ╟──────────────────┼───────────────┼─────────────────────────────────────────────────╢
      ║ client           │ lint          │ ng lint                                         ║
      ╟──────────────────┼───────────────┼─────────────────────────────────────────────────╢
      ║ client           │ bower-install │ bower install && ./scripts/fix_bower_paths.sh   ║
      ╟──────────────────┼───────────────┼─────────────────────────────────────────────────╢
      ║ client           │ i18n          │ node ./scripts/aggregatei18n.js                 ║
      ╟──────────────────┼───────────────┼─────────────────────────────────────────────────╢
      ║ integration-test │ postinstall   │ ./scripts/wiremock.sh;webdriver-manager update  ║
      ╟──────────────────┼───────────────┼─────────────────────────────────────────────────╢
      ║ system-test      │ postinstall   │ webdriver-manager update                        ║
      ╚══════════════════╧═══════════════╧═════════════════════════════════════════════════╝

Partial match - this module uses digital-search which uses a digital trie to search possible choices

   $> qak ap
   ╔═════════╤═════════╤══════════════════════════════════════════════════╗
   ║ Project │ Command │ Script                                           ║
   ╟─────────┼─────────┼──────────────────────────────────────────────────╢
   ║ api     │ serve   │ npm run swagger; nodemon src/server.js           ║
   ╟─────────┼─────────┼──────────────────────────────────────────────────╢
   ║ api     │ swagger │ node tasks/buildSwaggerDef.js                    ║
   ║         │         │ ../client/doc/swagger.json swagger.yml localdev  ║
   ╟─────────┼─────────┼──────────────────────────────────────────────────╢
   ║ api     │ test    │ ./../node_modules/.bin/cucumber-js --tags '@wip' ║
   ╚═════════╧═════════╧══════════════════════════════════════════════════╝
   
   $> qak adm
   ╔═════════╤═══════════════╤═══════════════════════════════════════╗
   ║ Project │ Command       │ Script                                ║
   ╟─────────┼───────────────┼───────────────────────────────────────╢
   ║ admin   │ test          │ npm run test-service;npm run test-ui  ║
   ╟─────────┼───────────────┼───────────────────────────────────────╢
   ║ admin   │ test-ui       │ cd client;npm test;npm run e2e;cd ..  ║
   ╚═════════╧═══════════════╧═══════════════════════════════════════╝

if the partial match has only a single result it will execute!

   $> qak ad tes
   ╔═════════╤═══════════════╤══════════════════════════════════════╗
   ║ Project │ Command       │ Script                               ║
   ╟─────────┼───────────────┼──────────────────────────────────────╢
   ║ admin   │ test          │ npm run test-service;npm run test-ui ║
   ╚═════════╧═══════════════╧══════════════════════════════════════╝
   
   executing test...

Releases

No releases published

Packages

No packages published