From 85cc08e9b1172ff47e833490705f9ad5050cf669 Mon Sep 17 00:00:00 2001 From: Dag Odenhall Date: Tue, 11 Mar 2008 03:56:15 +0100 Subject: [PATCH] Auto inclusion --- README | 3 ++- TODO | 1 - lib/amazing/cli.rb | 6 +++++- lib/amazing/options.rb | 4 ++++ 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/README b/README index 7542879..61d7fa9 100644 --- a/README +++ b/README @@ -6,6 +6,7 @@ an amazing widget manager for an awesome window manager -c, --config FILE Configuration file (~/.amazing.yml) -l, --log-level LEVEL Severity threshold (info) -i, --include SCRIPT Include a widgets script + --no-auto-include Don't auto include from ~/.amazing/*.rb -u, --update WIDGET Update a widget and exit -w, --list-widgets List available widgets -h, --help You're looking at it @@ -34,7 +35,7 @@ an amazing widget manager for an awesome window manager == Example include: - - .amazing/widgets.rb + - /path/to/widgets.rb widgets: 0: pb_bat: diff --git a/TODO b/TODO index b76be52..697c5c1 100644 --- a/TODO +++ b/TODO @@ -1,6 +1,5 @@ = Todo -* Maybe auto-include scripts from ~/.amazing/something * Improve output format of --list-widgets * Some widgets need to support multiple data sources * Some way to do alerts, e.g. "blinking" diff --git a/lib/amazing/cli.rb b/lib/amazing/cli.rb index e76f262..1415d87 100644 --- a/lib/amazing/cli.rb +++ b/lib/amazing/cli.rb @@ -84,8 +84,12 @@ module Amazing script = "#{File.dirname(@options[:config])}/#{script}" if script[0] != ?/ scripts << script end - scripts.each do |script| + if @options[:autoinclude] + scripts << Dir["#{ENV["HOME"]}/.amazing/*.rb"] + end + scripts.flatten.each do |script| if File.exist?(script) + @log.debug("Loading script #{script.inspect}") Widgets.module_eval(File.read(script)) else @log.error("No such widget script #{script.inspect}") diff --git a/lib/amazing/options.rb b/lib/amazing/options.rb index e862b32..94d9d08 100644 --- a/lib/amazing/options.rb +++ b/lib/amazing/options.rb @@ -14,6 +14,7 @@ module Amazing @options[:config] = "#{ENV["HOME"]}/.amazing.yml" @options[:loglevel] = "info" @options[:include] = [] + @options[:autoinclude] = true @options[:update] = [] @args = args @parser = OptionParser.new do |opts| @@ -26,6 +27,9 @@ module Amazing opts.on("-i", "--include SCRIPT", "Include a widgets script") do |script| @options[:include] << script end + opts.on("--no-auto-include", "Don't auto include from ~/.amazing/*.rb") do + @options[:autoinclude] = false + end opts.on("-u", "--update WIDGET", "Update a widget and exit") do |widget| @options[:update] << widget end -- 2.11.4.GIT