Skip to content

Latest commit

 

History

History
177 lines (128 loc) · 4 KB

README.markdown

File metadata and controls

177 lines (128 loc) · 4 KB

Libisi (c) Logintas AG

Quickstart

Console:

gem install libisi apt-get install liblog4r-ruby, libruby1.8, libprogressbar-ruby1.8, libcmdparse-ruby

Your script test.rb:

#!/usr/bin/ruby require "libisi" init_libisi(:ui => "console")

args = optparse(:arguments => [["USERNAME","Please provide your username"]])

$log.info("Started") if $ui.question("Hello #{args[0]}, yes or now?", :default => true) $log.info("You selected yes")

$ui.progress_bar("Items",["a","b","z"]) {|v|
  if $ui.progress_bar_enabled?
    # print in progressbar
    $ui.progress_message("Processing item: #{v}")
  else
    # print item to console
    p v
  end
  sleep 1
}

else $log.warn("You selected no!") end

exit 0

try: ruby test.rb -h ruby test.rb SOMENAME ruby test.rb --progress SOMENAME ruby test.rb -v SOMENAME ruby test.rb -vv SOMENAME

Requirements

To use the base functionality, these packages are required on debian systems:

  • liblog4r-ruby, libruby1.8, libprogressbar-ruby1.8, libcmdparse-ruby

For additionaly functionalities install these packages:

  • libtmail-ruby1.8,libtext-format-ruby1.8

For generating charts:

  • libjfreechart-java

Usage

Initialize

#!/usr/bin/ruby require 'libisi' init_libisi(:ui => "console")

Standard commandline options =

Parse the commandline options with:

args = optparse {|o|

# additional options  
o.on("-d", "--doit","Do something.") do
  # if you get here the option --doit is given
  # if mutliple -d exist this will be executed
  # multiple times
end

o.on("-c","--config <file>") do |config_file|
  # config_file is the given argument
  ...
end

}

For more information see: http://cmdparse.rubyforge.org

Logging

For addidtional information on Log4r see /usr/share/doc/liblog4r-ruby1.8/html/index.html or libisi.rb source code how this library is used.

Commandline options added to script: "-q","--quiet" "-v","--verbose"

Usage

Simple logging mechanism. Try to aviod normal brackets. If you use a block like $log.info{"Something"} the block will not be evaluated if the log level is not enabled.

$log.warn{"Log"} $log.debug("abcd") if $log.debug?

same as

$log.debug{"abcd"}

Default Logging is only to stdout.

Additional Loggers

Normal logger with levels from INFO to FATAL. new_logger("archivlog", "/var/log/archive", :level => Logger::INFO)

Logger that only logs Level SKIPPED. new_logger("only_debug", "/var/log/debugonly", :only => Logger::SKIPPED)

Logger that only logs Level DEBUG with another pattern new_logger("other_format", "/var/temp/debugging", :only => Logger::DEBUG, :pattern => "%d: %m")

For more information on pattern see: /usr/share/doc/liblog4r-ruby1.8/html/rdoc/files/log4r/formatter/patternformatter_rb.html

More Loglevels

Log with other level, add option :log_levels to initialization. init_libisi(:log_levels => [:CONFIG, :DEBUG, :INFO, :NEW_LEVEL, :WARN, :ERROR, :FATAL])

Display Progressbars (console)

Command line options added by script: "--progress"

If progress is enabled (--progress given on commandline): $ui.progress_bar_enabled?

Or you can enable/disable progress_bar with $ui.enable_progress_bar respectively $u.enable_progress_bar(false)

Display Progressbar

Only if --progress is given on commandline.

progress_bar("Myprogress", amount_of_objects) { ... # increment the progressbar by 1 pinc ... }

Display Status Information

You also can display status information on the bottom of the progressbar by using

pinc("Processing")

or

pinc("Processing", object.name)

or simply set the message without increment the progress with: pmsg("Processing", object.name)

Appendix

Sources:

Links:

Release:

  • gem install echoe rubyforge
  • rake manifest
  • rake release
  • rake publish_docs