1 # Copyright (C) 2008 Dag Odenhall <dag.odenhall@gmail.com>
2 # Licensed under the Academic Free License version 3.0
8 # Parse and manage command line options
14 @options[:config] = "#{ENV["HOME"]}/.amazing.yml"
15 @options[:loglevel] = "info"
16 @options[:include] = []
17 @options[:autoinclude] = true
18 @options[:update] = []
20 @parser = OptionParser.new do |opts|
21 opts.on("-c", "--config FILE", "Configuration file (~/.amazing.yml)") do |config|
22 @options[:config] = config
24 opts.on("-l", "--log-level LEVEL", "Severity threshold (info)") do |level|
25 @options[:loglevel] = level
27 opts.on("-i", "--include SCRIPT", "Include a widgets script") do |script|
28 @options[:include] << script
30 opts.on("--no-auto-include", "Don't auto include from ~/.amazing/*.rb") do
31 @options[:autoinclude] = false
33 opts.on("-u", "--update WIDGET", "Update a widget and exit") do |widget|
34 @options[:update] << widget
36 opts.on("-w", "--list-widgets", "List available widgets") do
37 @options[:listwidgets] = true
39 opts.on("-h", "--help", "You're looking at it") do
40 @options[:help] = true
46 @options.keys.each do |key|
63 def []=(option, value)
64 @options[option] = value