easyoperate 0.4.1 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +4 -0
- data/bin/eo +1 -1
- data/easyoperate.gemspec +2 -5
- data/lib/eo/eo.rb +26 -16
- data/lib/eo/repository.rb +2 -2
- data/lib/eo/scm/git.rb +4 -0
- data/lib/eo/scm/svn.rb +1 -3
- data/lib/eo.rb +17 -9
- data/lib/version.rb +1 -1
- metadata +4 -13
data/README.rdoc
CHANGED
data/bin/eo
CHANGED
data/easyoperate.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{easyoperate}
|
5
|
-
s.version = "0.
|
5
|
+
s.version = "0.5.1"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Jinzhu Zhang"]
|
9
|
-
s.date = %q{2009-02-
|
9
|
+
s.date = %q{2009-02-13}
|
10
10
|
s.default_executable = %q{eo}
|
11
11
|
s.description = %q{Eo_oE}
|
12
12
|
s.email = %q{wosmvp@gmail.com}
|
@@ -27,11 +27,8 @@ Gem::Specification.new do |s|
|
|
27
27
|
s.specification_version = 2
|
28
28
|
|
29
29
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
30
|
-
s.add_development_dependency(%q<echoe>, [">= 0"])
|
31
30
|
else
|
32
|
-
s.add_dependency(%q<echoe>, [">= 0"])
|
33
31
|
end
|
34
32
|
else
|
35
|
-
s.add_dependency(%q<echoe>, [">= 0"])
|
36
33
|
end
|
37
34
|
end
|
data/lib/eo/eo.rb
CHANGED
@@ -16,25 +16,24 @@ class Eo
|
|
16
16
|
format_display(@formated_scm)
|
17
17
|
end
|
18
18
|
|
19
|
-
def show(args)
|
19
|
+
def show(args,opt={})
|
20
20
|
puts "\e[33mAll Repo match < #{args} > :\e[0m"
|
21
|
-
repos = pick(args
|
21
|
+
repos = pick(:key => args,:plural => true,:skip => opt[:skip])
|
22
22
|
format_display(repos) if repos
|
23
23
|
end
|
24
24
|
|
25
25
|
def open(args)
|
26
|
-
repos = pick(args)
|
26
|
+
repos = pick(:key => args)
|
27
27
|
system([Config['open'],Repos[repos.first].path].join(' ')) if repos
|
28
28
|
end
|
29
29
|
|
30
30
|
def choose(args)
|
31
|
-
repos = pick(args)
|
31
|
+
repos = pick(:key => args)
|
32
32
|
|
33
33
|
if repos && repos = repos.first # Get First Array
|
34
34
|
return false unless exist_path(repos)
|
35
35
|
loop do
|
36
|
-
|
37
|
-
input = (STDIN.gets || exit).rstrip
|
36
|
+
input = (readline("\e[01;34m#{repos} (h:help)>> \e[0m",true) || exit).rstrip
|
38
37
|
|
39
38
|
break if input =~ /\A\s*q\s*\Z/
|
40
39
|
exit if input =~ /\A\s*Q\s*\Z/
|
@@ -43,8 +42,8 @@ class Eo
|
|
43
42
|
end
|
44
43
|
end
|
45
44
|
|
46
|
-
def init(args)
|
47
|
-
repos = pick(args
|
45
|
+
def init(args,opt={})
|
46
|
+
repos = pick(:key => args,:plural => true,:skip => opt[:skip])
|
48
47
|
|
49
48
|
repos.each do |x|
|
50
49
|
if Repos[x].path && File.exist?(Repos[x].path)
|
@@ -56,8 +55,17 @@ class Eo
|
|
56
55
|
end
|
57
56
|
end
|
58
57
|
|
59
|
-
def
|
60
|
-
repos = pick(args
|
58
|
+
def push(args)
|
59
|
+
repos = pick(:key => args,:plural => true,:pushable => true)
|
60
|
+
repos.each do |x|
|
61
|
+
puts "\e[32m %-18s: Pushing\e[0m" % [x]
|
62
|
+
Dir.chdir(Repos[x].path) if Repos[x].path
|
63
|
+
Repos[x].push if Repos[x].respond_to?(:push)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def update(args,opt={})
|
68
|
+
repos = pick(:key => args,:plural => true,:skip => opt[:skip])
|
61
69
|
|
62
70
|
repos.each do |x|
|
63
71
|
puts "\e[32m Updating #{Repos[x]._name_}:\e[0m"
|
@@ -68,15 +76,18 @@ class Eo
|
|
68
76
|
|
69
77
|
protected
|
70
78
|
#Pick one or more repositories to operate,if single is true only pick one
|
71
|
-
def pick(args,single=true
|
72
|
-
repos = Repos.keys.grep(/#{
|
79
|
+
def pick(opt={}) #args,single=true
|
80
|
+
repos = Repos.keys.grep(/#{opt[:key]}/)
|
73
81
|
|
74
82
|
if repos.empty?
|
75
|
-
puts("\e[31mNo Result About < #{
|
83
|
+
puts("\e[31mNo Result About < #{opt[:key]} >\e[0m")
|
76
84
|
return false
|
77
85
|
end
|
78
86
|
|
79
|
-
|
87
|
+
repos = repos.select {|x| !Repos[x].skip} if opt[:skip]
|
88
|
+
repos = repos.select {|x| Repos[x].pushable} if opt[:pushable]
|
89
|
+
|
90
|
+
return opt[:plural] ? repos : choose_one(repos)
|
80
91
|
end
|
81
92
|
|
82
93
|
def choose_one(args)
|
@@ -90,8 +101,7 @@ class Eo
|
|
90
101
|
end
|
91
102
|
|
92
103
|
def choose_range(size)
|
93
|
-
|
94
|
-
num = STDIN.gets || exit
|
104
|
+
num = (readline("\e[33mPlease Input A Valid Number (1-#{size}) (q:quit): \e[0m",true) || exit)
|
95
105
|
return false if num =~ /q/i
|
96
106
|
num = num.strip.empty? ? 1 : num.to_i
|
97
107
|
return (1..size).member?(num) ? num : choose_range(size)
|
data/lib/eo/repository.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
$LOAD_PATH.unshift("#{ENV['HOME']}/.eo/",File.join(File.dirname(__FILE__)))
|
2
2
|
|
3
3
|
class Repository
|
4
|
-
attr_accessor :repo,:path,:_name_,:autorun
|
4
|
+
attr_accessor :repo,:path,:_name_,:autorun,:skip,:pushable
|
5
5
|
|
6
6
|
def initialize(opt={})
|
7
7
|
|
8
|
-
['repo','_name_','autorun'].each do |x|
|
8
|
+
['repo','_name_','autorun','skip','pushable'].each do |x|
|
9
9
|
eval "self.#{x} = opt.delete('#{x}')"
|
10
10
|
end
|
11
11
|
|
data/lib/eo/scm/git.rb
CHANGED
data/lib/eo/scm/svn.rb
CHANGED
data/lib/eo.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
%w(yaml eo/repository eo/gem eo/eo).each {|f| require f}
|
1
|
+
%w(yaml eo/repository eo/gem eo/eo readline).each {|f| require f}
|
2
|
+
include Readline
|
2
3
|
|
3
4
|
class Eo
|
4
5
|
Repos = Hash.new
|
@@ -22,12 +23,16 @@ class Eo
|
|
22
23
|
when /^-gs$/i then gemshow(params)
|
23
24
|
when /^-gc$/i then gemshell(params)
|
24
25
|
when /^-go$/i then gemopen(params)
|
25
|
-
|
26
|
+
|
27
|
+
when /^-s\w?$/i then show(params,:skip => (args[0] =~ /^-sa$/).nil?)
|
28
|
+
when /^-i\w?$/i then init(params,:skip => (args[0] =~ /^-ia$/).nil?)
|
29
|
+
when /^-u\w?$/i then update(params,:skip => (args[0] =~ /^-ua$/).nil?)
|
30
|
+
|
26
31
|
when /^-o$/i then open(params)
|
27
32
|
when /^-c$/i then choose(params)
|
28
|
-
|
29
|
-
when /^-u$/i then update(params)
|
33
|
+
|
30
34
|
when /^-t$/i then type
|
35
|
+
when /^-p$/i then push(params)
|
31
36
|
when /^-v$/i then puts "\e[33mEo_oE : v#{Easyoperate::VERSION}\e[0m"
|
32
37
|
when /^-(h|help)$/i then help
|
33
38
|
else self.run
|
@@ -36,19 +41,21 @@ class Eo
|
|
36
41
|
|
37
42
|
def run
|
38
43
|
loop do
|
39
|
-
|
40
|
-
input = (STDIN.gets || exit).rstrip.split(' ',2)
|
44
|
+
input = (readline("\e[33mInput Commands (q:quit h:help): \e[0m",true) || exit).rstrip.split(' ',2)
|
41
45
|
|
42
46
|
case input[0].to_s
|
43
47
|
when /^GS$/i then gemshow(input[1])
|
44
48
|
when /^GC$/i then gemshell(input[1])
|
45
49
|
when /^GO$/i then gemopen(input[1])
|
46
|
-
|
50
|
+
|
51
|
+
when /^s\w?/i then show(input[1],:skip => (input[0] =~ /^sa$/i).nil?)
|
52
|
+
when /^i\w?/i then init(input[1],:skip => (input[0] =~ /^ia$/i).nil?)
|
53
|
+
when /^u\w?/i then update(input[1],:skip =>(input[0] =~ /^ua$/i).nil?)
|
54
|
+
|
47
55
|
when /^O$/i then open(input[1])
|
48
56
|
when /^C$/i then choose(input[1])
|
49
|
-
when /^U$/i then update(input[1])
|
50
|
-
when /^I$/i then init(input[1])
|
51
57
|
when /^T$/i then type
|
58
|
+
when /^P$/i then push(input[1])
|
52
59
|
when /^Q$/i then exit
|
53
60
|
when /^V$/i then
|
54
61
|
puts "\e[33mEo_oE : v" + Easyoperate::VERSION + "\e[0m"
|
@@ -65,6 +72,7 @@ class Eo
|
|
65
72
|
| I /args/ : Initialize matched Repository <Regexp>
|
66
73
|
| U /args/ : Update matched Repository <Regexp>
|
67
74
|
| T : Show All Support Scm
|
75
|
+
| P : Push All matched/pushable repositories <Regexp>
|
68
76
|
| S /args/ : Show matched repositories <Regexp>
|
69
77
|
| O /args/ : Open The repository's path <Regexp>
|
70
78
|
| C /args/ : Choose One Repository <Regexp>
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: easyoperate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jinzhu Zhang
|
@@ -9,19 +9,10 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-02-
|
12
|
+
date: 2009-02-13 00:00:00 +08:00
|
13
13
|
default_executable:
|
14
|
-
dependencies:
|
15
|
-
|
16
|
-
name: echoe
|
17
|
-
type: :development
|
18
|
-
version_requirement:
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">="
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: "0"
|
24
|
-
version:
|
14
|
+
dependencies: []
|
15
|
+
|
25
16
|
description: Eo_oE
|
26
17
|
email: wosmvp@gmail.com
|
27
18
|
executables:
|