diff --git a/bin/rbpkg b/bin/rbpkg
index 2557c13..973b14b 100755
--- a/bin/rbpkg
+++ b/bin/rbpkg
@@ -2,7 +2,29 @@
load "#{File.dirname(File.dirname(__FILE__))}/lib/rbpkg/log.rb"
load "#{File.dirname(File.dirname(__FILE__))}/lib/rbpkg.rb"
-Rbpkg.init("rbpkg")
+$ARGS = ARGV
+
+def shift
+ usage if $ARGS == []
+ arg = $ARGS[0]
+ $ARGS = $ARGS[1..] || []
+ arg
+end
+
+verbose = 2 # print command output
+case $ARGS[0]
+when "-v"
+ verbose = 3 # print all messages
+ shift
+when "-q"
+ verbose = 1 # print commands
+ shift
+when "-qq"
+ verbose = 0 # print nothing
+ shift
+end
+
+Rbpkg.init("rbpkg", verbose)
def usage()
STDERR.puts """Usage: #{File.basename($0)} COMMAND REPO ...
@@ -37,15 +59,6 @@ Misc commands :
exit 1
end
-$ARGS = ARGV
-
-def shift
- usage if $ARGS == []
- arg = $ARGS[0]
- $ARGS = $ARGS[1..] || []
- arg
-end
-
def rbpkg
case shift
when "-h"
diff --git a/bin/rbpkg_ci b/bin/rbpkg_ci
new file mode 100644
index 0000000..99a17c3
--- /dev/null
+++ b/bin/rbpkg_ci
@@ -0,0 +1,47 @@
+#!/usr/bin/env ruby
+load "#{File.dirname(File.dirname(__FILE__))}/lib/rbpkg/log.rb"
+load "#{File.dirname(File.dirname(__FILE__))}/lib/rbpkg/ci.rb"
+
+$ARGS = ARGV
+
+def shift
+ usage if $ARGS == []
+ arg = $ARGS[0]
+ $ARGS = $ARGS[1..] || []
+ arg
+end
+
+verbose = 2 # print command output
+case $ARGS[0]
+when "-v"
+ verbose = 3 # print all messages
+ shift
+when "-q"
+ verbose = 1 # print commands
+ shift
+when "-qq"
+ verbose = 0 # print nothing
+ shift
+end
+
+Rbpkg.init("rbpkg_ci", verbose)
+
+def usage()
+ STDERR.puts "Usage: #{File.basename($0)} REPO ..."
+ exit 1
+end
+
+def rbpkg_ci
+ case $ARGS[0]
+ when "-h"
+ usage
+ when "--help"
+ usage
+ end
+ Rbpkg.CI.tag
+ $ARGS.each do |name|
+ Rbpkg.Repos.repo(name).ci
+ end
+end
+
+rbpkg_ci
diff --git a/lib/rbpkg.rb b/lib/rbpkg.rb
index e16a422..86ade04 100644
--- a/lib/rbpkg.rb
+++ b/lib/rbpkg.rb
@@ -2,7 +2,6 @@ require 'time'
load "#{File.dirname(__FILE__)}/rbpkg/repos.rb"
module Rbpkg
-
def self.build(repos)
repos.each do |name|
Repos.repo(name).build()
@@ -122,7 +121,8 @@ module Rbpkg
end
end
- def self.init(name)
+ def self.init(name, verbose_level)
+ @@verbose_level = verbose_level
[dir,
lock_dir,
log_dir
@@ -180,10 +180,6 @@ module Rbpkg
"#{dir}/var/log/shpkg"
end
- def self.log_path(name)
- "#{log_dir}/#{name}_#{date}_#{$$}.log"
- end
-
@@ncpu = nil
def self.ncpu
@@ncpu || @@ncpu = self.ncpu_fetch
@@ -327,7 +323,7 @@ def cmd!(string)
true
end
-def sh_quote (str)
+def sh_quote(str)
if str.scan("\n") == []
if str.match?(/^[-+\/=.,:^_0-9A-Za-z]*$/)
str
diff --git a/lib/rbpkg/log.rb b/lib/rbpkg/log.rb
index 471556a..e7947ae 100644
--- a/lib/rbpkg/log.rb
+++ b/lib/rbpkg/log.rb
@@ -4,22 +4,30 @@ module Rbpkg
@@logs = []
def self.add(name)
- @@logs << name unless logs.has?(name)
+ raise "already logging to #{name.inspect}" if @@logs.include?(name)
+ raise "log file exists: #{name.inspect}" if File.exist?(path(name))
+ @@logs << name
end
def self.init(name)
- @@logs = [name]
+ @@logs = []
+ add(name)
+ end
+
+ def self.path(name)
+ "#{Rbpkg.log_dir}/#{name}_#{Rbpkg.date}_#{$$}.log"
end
def self.puts(string)
@@logs.each do |name|
- File.open(Rbpkg.log_path(name), "a") do |output|
+ File.open(path(name), "a") do |output|
output.puts string
end
end
end
def self.remove(name)
+ raise "not logging to #{name.inspect}" unless @@logs.include?(name)
@@logs = @@logs.without(name)
end
end