Skip to content

Tabcorp/cli-meter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cli-meter

NPM License

Build Status Dependencies Dev dependencies

meter = require 'cli-meter'

Creating a meter

# 100 steps by default
m = new Meter()

# optional total steps
m = new Meter(total: 500)

# optional starting value
m = new Meter(total: 500, value: 120)

# optional display length in the terminal
m = new Meter(total: 500, length: 30)

You can then manipulate it with

m.step(1)    # increment by 1
m.step(-3)   # decrement by 3
m.set(70)    # jump to 70

And finally display it

console.log "Processing #{m}"
# Processing  [==============      ]

console.log "#{m} #{m.value} dB"
# [==============      ] 30 dB

console.log "#{m} #{m.value} / #{m.total}"
# [==============      ] 230 / 500

Animations

If you use console.log, the meter will be printed to a different line each time:

# [============        ] 6 / 10
# [================    ] 8 / 10

If you have a TTY stream like process.stdout, you can show animations instead:

setInterval (->

  process.stdout.write "Meter 1 #{m1}\n"
  process.stdout.write "Meter 2 #{m2}\n"
  process.stdout.write "Meter 3 #{m3}\n"

  process.stdout.moveCursor 0, -3

), 100

example

About

Progress bar / dynamic meter for the terminal

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published