gitenv 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +1 -0
- data/Gemfile.lock +4 -0
- data/VERSION +1 -1
- data/bin/gitenv +1 -3
- data/gitenv.gemspec +15 -2
- data/lib/gitenv/actions.rb +28 -0
- data/lib/gitenv/all_files.rb +10 -0
- data/lib/gitenv/config.rb +53 -0
- data/lib/gitenv/context.rb +46 -0
- data/lib/gitenv/controller.rb +46 -0
- data/lib/gitenv/copy.rb +13 -0
- data/lib/gitenv/dot_files.rb +10 -0
- data/lib/gitenv/enumerator.rb +20 -0
- data/lib/gitenv/symlink.rb +62 -0
- data/lib/gitenv.rb +4 -168
- data/lib/program.rb +23 -0
- metadata +28 -2
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
GEM
|
|
2
2
|
remote: http://rubygems.org/
|
|
3
3
|
specs:
|
|
4
|
+
commander (4.1.2)
|
|
5
|
+
highline (~> 1.6.11)
|
|
4
6
|
diff-lcs (1.1.3)
|
|
5
7
|
gem-release (0.4.1)
|
|
6
8
|
gemcutter (0.7.1)
|
|
7
9
|
git (1.2.5)
|
|
10
|
+
highline (1.6.15)
|
|
8
11
|
jeweler (1.8.4)
|
|
9
12
|
bundler (~> 1.0)
|
|
10
13
|
git (>= 1.2.5)
|
|
@@ -36,6 +39,7 @@ PLATFORMS
|
|
|
36
39
|
|
|
37
40
|
DEPENDENCIES
|
|
38
41
|
bundler
|
|
42
|
+
commander (~> 4.1.2)
|
|
39
43
|
gem-release
|
|
40
44
|
gemcutter
|
|
41
45
|
jeweler
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.0.
|
|
1
|
+
0.0.3
|
data/bin/gitenv
CHANGED
data/gitenv.gemspec
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = "gitenv"
|
|
8
|
-
s.version = "0.0.
|
|
8
|
+
s.version = "0.0.3"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["AlphaHydrae"]
|
|
12
|
-
s.date = "2012-09-
|
|
12
|
+
s.date = "2012-09-23"
|
|
13
13
|
s.description = "Creates symlinks to configuration files in a git repository."
|
|
14
14
|
s.email = "hydrae.alpha@gmail.com"
|
|
15
15
|
s.executables = ["gitenv"]
|
|
@@ -31,6 +31,16 @@ Gem::Specification.new do |s|
|
|
|
31
31
|
"bin/gitenv",
|
|
32
32
|
"gitenv.gemspec",
|
|
33
33
|
"lib/gitenv.rb",
|
|
34
|
+
"lib/gitenv/actions.rb",
|
|
35
|
+
"lib/gitenv/all_files.rb",
|
|
36
|
+
"lib/gitenv/config.rb",
|
|
37
|
+
"lib/gitenv/context.rb",
|
|
38
|
+
"lib/gitenv/controller.rb",
|
|
39
|
+
"lib/gitenv/copy.rb",
|
|
40
|
+
"lib/gitenv/dot_files.rb",
|
|
41
|
+
"lib/gitenv/enumerator.rb",
|
|
42
|
+
"lib/gitenv/symlink.rb",
|
|
43
|
+
"lib/program.rb",
|
|
34
44
|
"spec/helper.rb",
|
|
35
45
|
"spec/version_spec.rb"
|
|
36
46
|
]
|
|
@@ -45,6 +55,7 @@ Gem::Specification.new do |s|
|
|
|
45
55
|
|
|
46
56
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
47
57
|
s.add_runtime_dependency(%q<paint>, ["~> 0.8.5"])
|
|
58
|
+
s.add_runtime_dependency(%q<commander>, ["~> 4.1.2"])
|
|
48
59
|
s.add_development_dependency(%q<bundler>, [">= 0"])
|
|
49
60
|
s.add_development_dependency(%q<rake>, [">= 0"])
|
|
50
61
|
s.add_development_dependency(%q<rspec>, [">= 0"])
|
|
@@ -55,6 +66,7 @@ Gem::Specification.new do |s|
|
|
|
55
66
|
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
|
56
67
|
else
|
|
57
68
|
s.add_dependency(%q<paint>, ["~> 0.8.5"])
|
|
69
|
+
s.add_dependency(%q<commander>, ["~> 4.1.2"])
|
|
58
70
|
s.add_dependency(%q<bundler>, [">= 0"])
|
|
59
71
|
s.add_dependency(%q<rake>, [">= 0"])
|
|
60
72
|
s.add_dependency(%q<rspec>, [">= 0"])
|
|
@@ -66,6 +78,7 @@ Gem::Specification.new do |s|
|
|
|
66
78
|
end
|
|
67
79
|
else
|
|
68
80
|
s.add_dependency(%q<paint>, ["~> 0.8.5"])
|
|
81
|
+
s.add_dependency(%q<commander>, ["~> 4.1.2"])
|
|
69
82
|
s.add_dependency(%q<bundler>, [">= 0"])
|
|
70
83
|
s.add_dependency(%q<rake>, [">= 0"])
|
|
71
84
|
s.add_dependency(%q<rspec>, [">= 0"])
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
|
|
2
|
+
module Gitenv
|
|
3
|
+
|
|
4
|
+
class Actions
|
|
5
|
+
|
|
6
|
+
def initialize
|
|
7
|
+
@actions = []
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def each &block
|
|
11
|
+
@actions.each &block
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def from path
|
|
15
|
+
@actions.each{ |a| a.from path }
|
|
16
|
+
@actions
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def to path
|
|
20
|
+
@actions.each{ |a| a.to path }
|
|
21
|
+
@actions
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def << action
|
|
25
|
+
@actions << action
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
|
|
2
|
+
module Gitenv
|
|
3
|
+
|
|
4
|
+
class Config
|
|
5
|
+
include Context
|
|
6
|
+
|
|
7
|
+
attr_reader :actions
|
|
8
|
+
attr_reader :repository
|
|
9
|
+
attr_reader :home
|
|
10
|
+
|
|
11
|
+
def initialize home
|
|
12
|
+
@home = home
|
|
13
|
+
@actions = Actions.new
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def repo path
|
|
17
|
+
@repository = File.expand_path path
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def symlink file
|
|
21
|
+
|
|
22
|
+
scope = self
|
|
23
|
+
current_actions = Actions.new
|
|
24
|
+
enumerator(file).each do |f|
|
|
25
|
+
current_actions << Symlink.new(scope, f).tap do |action|
|
|
26
|
+
@actions << action
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
current_actions
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def all_files
|
|
34
|
+
:all_files
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def dot_files
|
|
38
|
+
:dot_files
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
private
|
|
42
|
+
|
|
43
|
+
def enumerator file
|
|
44
|
+
if file == :all_files
|
|
45
|
+
AllFiles.new File.join(*[@repository, from_path].compact)
|
|
46
|
+
elsif file == :dot_files
|
|
47
|
+
DotFiles.new File.join(*[@repository, from_path].compact)
|
|
48
|
+
else
|
|
49
|
+
[ file ]
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
|
|
2
|
+
module Gitenv
|
|
3
|
+
|
|
4
|
+
module Context
|
|
5
|
+
|
|
6
|
+
def from path, &block
|
|
7
|
+
(@from_path ||= []) << path
|
|
8
|
+
if block
|
|
9
|
+
instance_eval &block
|
|
10
|
+
@from_path.pop
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def from_path
|
|
15
|
+
@from_path ? File.join(*@from_path) : nil
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def from_paths
|
|
19
|
+
@from_path || []
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def from_paths= paths
|
|
23
|
+
@from_path = paths
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def to path, &block
|
|
27
|
+
(@to_path ||= []) << path
|
|
28
|
+
if block
|
|
29
|
+
instance_eval &block
|
|
30
|
+
@to_path.pop
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def to_path
|
|
35
|
+
@to_path ? File.join(*@to_path) : nil
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def to_paths
|
|
39
|
+
@to_path || []
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def to_paths= paths
|
|
43
|
+
@to_path = paths
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
|
|
2
|
+
module Gitenv
|
|
3
|
+
|
|
4
|
+
class Controller
|
|
5
|
+
|
|
6
|
+
def initialize action, options
|
|
7
|
+
|
|
8
|
+
@action = action
|
|
9
|
+
@options = options
|
|
10
|
+
|
|
11
|
+
@home = File.expand_path '~'
|
|
12
|
+
@config = Config.new @home
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def run
|
|
16
|
+
load_config_file!
|
|
17
|
+
@config.actions.each &:build!
|
|
18
|
+
@config.actions.each &:update! if @action == :update
|
|
19
|
+
@config.actions.each{ |a| puts a }
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
private
|
|
23
|
+
|
|
24
|
+
def load_config_file!
|
|
25
|
+
|
|
26
|
+
config_file = @options.config ? File.expand_path(@options.config) : File.join(@home, '.gitenv.rb')
|
|
27
|
+
if !File.exists?(config_file) and @options.config
|
|
28
|
+
abort "No such configuration file #{config_file}"
|
|
29
|
+
elsif !File.exists?(config_file)
|
|
30
|
+
abort "You must create a configuration file #{config_file} or load another one with the --config option"
|
|
31
|
+
elsif !File.file?(config_file)
|
|
32
|
+
abort "Configuration file #{config_file} is not a file"
|
|
33
|
+
elsif !File.readable?(config_file)
|
|
34
|
+
abort "Configuration file #{config_file} is not readable"
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
contents = File.open(config_file, 'r').read
|
|
38
|
+
@config.instance_eval contents, config_file
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def abort msg, code = 1
|
|
42
|
+
warn ms
|
|
43
|
+
exit code
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
data/lib/gitenv/copy.rb
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
|
|
3
|
+
module Gitenv
|
|
4
|
+
|
|
5
|
+
class Symlink
|
|
6
|
+
include Context
|
|
7
|
+
|
|
8
|
+
def initialize config, file
|
|
9
|
+
@config, @file = config, file
|
|
10
|
+
self.from_paths = config.from_paths.dup
|
|
11
|
+
self.to_paths = config.to_paths.dup
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def build!
|
|
15
|
+
@color, @mark, @message = if File.symlink? link
|
|
16
|
+
@current_target = File.expand_path File.readlink(link)
|
|
17
|
+
if @current_target == target
|
|
18
|
+
[ :green, "✓", "ok" ]
|
|
19
|
+
else
|
|
20
|
+
[ :yellow, "✗", "currently points to #{@current_target}" ]
|
|
21
|
+
end
|
|
22
|
+
elsif File.file? link
|
|
23
|
+
[ :red, "✗", "is a file" ]
|
|
24
|
+
elsif File.directory? link
|
|
25
|
+
[ :red, "✗", "is a directory" ]
|
|
26
|
+
elsif File.exists? link
|
|
27
|
+
[ :red, "✗", "exists but is not a symlink" ]
|
|
28
|
+
else
|
|
29
|
+
[ :blue, "✓", "is not set up" ]
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def update!
|
|
34
|
+
if !File.exists? link
|
|
35
|
+
File.symlink target, link
|
|
36
|
+
@color, @mark, @message = :green, "✓", "ok"
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def to_s
|
|
41
|
+
%/ #{status_mark} #{Paint[link, :cyan]} -> #{target} #{status_message}/
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
private
|
|
45
|
+
|
|
46
|
+
def status_mark
|
|
47
|
+
Paint["#{@mark}", @color]
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def status_message
|
|
51
|
+
Paint["#{@message}", @color]
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def link
|
|
55
|
+
File.join(*[ @config.home, to_path, @file].compact)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def target
|
|
59
|
+
File.join(*[ @config.repository, from_path, @file ].compact)
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
data/lib/gitenv.rb
CHANGED
|
@@ -2,173 +2,9 @@
|
|
|
2
2
|
require 'paint'
|
|
3
3
|
|
|
4
4
|
module Gitenv
|
|
5
|
-
VERSION = '0.0.
|
|
6
|
-
|
|
7
|
-
class Runner
|
|
8
|
-
|
|
9
|
-
def initialize
|
|
10
|
-
@home = File.expand_path '~'
|
|
11
|
-
@config_file = File.join @home, '.gitenv.rb'
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def run
|
|
15
|
-
|
|
16
|
-
@dsl = DSL.new
|
|
17
|
-
@dsl.instance_eval File.open(@config_file, 'r').read, @config_file
|
|
18
|
-
|
|
19
|
-
action = ARGV.shift || 'info'
|
|
20
|
-
|
|
21
|
-
puts
|
|
22
|
-
puts "gitenv v#{VERSION}"
|
|
23
|
-
puts "configuration #{@config_file}"
|
|
24
|
-
puts
|
|
25
|
-
case action
|
|
26
|
-
when 'info'
|
|
27
|
-
puts Paint["Listing current state", :bright, :bold]
|
|
28
|
-
when 'update'
|
|
29
|
-
puts Paint["Creating missing links", :blue, :bold]
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
@dsl.symlinks.each do |link|
|
|
33
|
-
|
|
34
|
-
link_file_path = File.join @home, link[:file]
|
|
35
|
-
real_file = link[:source] || link[:file]
|
|
36
|
-
real_file_path = File.join File.expand_path(@dsl.repository), real_file
|
|
37
|
-
|
|
38
|
-
msg = %/#{Paint[link_file_path, :cyan]} -> #{real_file_path}/
|
|
39
|
-
data = analyze link_file_path, real_file_path
|
|
40
|
-
|
|
41
|
-
case action
|
|
42
|
-
when 'info'
|
|
43
|
-
puts %/#{info_mark data}#{msg} #{info_msg data}/
|
|
44
|
-
when 'update'
|
|
45
|
-
unless File.exists? link_file_path
|
|
46
|
-
File.symlink real_file_path, link_file_path
|
|
47
|
-
end
|
|
48
|
-
puts %/#{update_mark data}#{msg} #{update_msg data}/
|
|
49
|
-
else
|
|
50
|
-
raise "No such action #{action}"
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
puts
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
private
|
|
58
|
-
|
|
59
|
-
def update_mark data
|
|
60
|
-
case data[:status]
|
|
61
|
-
when :setup
|
|
62
|
-
Paint[" ✓ ", :green]
|
|
63
|
-
when :wrong_link
|
|
64
|
-
Paint[" ✗ ", :yellow]
|
|
65
|
-
when :not_link
|
|
66
|
-
Paint[" ✗ ", :yellow]
|
|
67
|
-
when :void
|
|
68
|
-
Paint[" ✓ ", :green]
|
|
69
|
-
else
|
|
70
|
-
Paint[" ? ", :red]
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
def update_msg data
|
|
75
|
-
case data[:status]
|
|
76
|
-
when :setup
|
|
77
|
-
Paint["already here", :green]
|
|
78
|
-
when :wrong_link
|
|
79
|
-
Paint["skipped (points to #{data[:target]})", :yellow]
|
|
80
|
-
when :not_link
|
|
81
|
-
Paint["skipped (not a symlink)", :yellow]
|
|
82
|
-
when :void
|
|
83
|
-
Paint["set up", :green]
|
|
84
|
-
else
|
|
85
|
-
Paint["unknown", :red]
|
|
86
|
-
end
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
def info_msg data
|
|
90
|
-
case data[:status]
|
|
91
|
-
when :setup
|
|
92
|
-
Paint["already here", :green]
|
|
93
|
-
when :wrong_link
|
|
94
|
-
Paint["points to #{data[:target]}", :yellow]
|
|
95
|
-
when :not_link
|
|
96
|
-
Paint["is not a symlink", :red]
|
|
97
|
-
when :void
|
|
98
|
-
Paint["is not yet set up", :blue]
|
|
99
|
-
else
|
|
100
|
-
Paint["unknown", :red]
|
|
101
|
-
end
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
def info_mark data
|
|
105
|
-
case data[:status]
|
|
106
|
-
when :setup
|
|
107
|
-
Paint[" ✓ ", :green]
|
|
108
|
-
when :wrong_link
|
|
109
|
-
Paint[" ✗ ", :red]
|
|
110
|
-
when :not_link
|
|
111
|
-
Paint[" ✗ ", :red]
|
|
112
|
-
when :void
|
|
113
|
-
Paint[" ✓ ", :green]
|
|
114
|
-
else
|
|
115
|
-
Paint[" ? ", :red]
|
|
116
|
-
end
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
def analyze link_file_path, real_file_path
|
|
120
|
-
if File.symlink? link_file_path
|
|
121
|
-
current_real_file_path = File.expand_path(File.readlink(link_file_path))
|
|
122
|
-
if current_real_file_path == real_file_path
|
|
123
|
-
{ :status => :setup }
|
|
124
|
-
else
|
|
125
|
-
{ :status => :wrong_link, :target => current_real_file_path }
|
|
126
|
-
end
|
|
127
|
-
elsif File.exists? link_file_path
|
|
128
|
-
{ :status => :not_link }
|
|
129
|
-
else
|
|
130
|
-
{ :status => :void }
|
|
131
|
-
end
|
|
132
|
-
end
|
|
133
|
-
end
|
|
134
|
-
|
|
135
|
-
class DSL
|
|
136
|
-
attr_reader :repository
|
|
137
|
-
attr_reader :symlinks
|
|
138
|
-
|
|
139
|
-
def initialize
|
|
140
|
-
@symlinks = []
|
|
141
|
-
end
|
|
142
|
-
|
|
143
|
-
def repo path
|
|
144
|
-
@repository = File.expand_path path
|
|
145
|
-
raise unless File.directory? @repository
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
def within path
|
|
149
|
-
path = File.expand_path path
|
|
150
|
-
raise unless File.directory? path
|
|
151
|
-
@within = path
|
|
152
|
-
yield
|
|
153
|
-
@within = nil
|
|
154
|
-
end
|
|
155
|
-
|
|
156
|
-
def symlink file, source = nil
|
|
157
|
-
source ||= file
|
|
158
|
-
s = source || file
|
|
159
|
-
f = File.join @repository, s
|
|
160
|
-
raise "Unknown file #{f}" unless File.exists? f
|
|
161
|
-
@symlinks << { :file => file, :source => source, :within => @within }
|
|
162
|
-
end
|
|
163
|
-
|
|
164
|
-
def configure &block
|
|
165
|
-
@self_before_instance_eval = eval "self", block.binding
|
|
166
|
-
instance_eval &block
|
|
167
|
-
@self_before_instance_eval = nil
|
|
168
|
-
end
|
|
5
|
+
VERSION = '0.0.3'
|
|
6
|
+
end
|
|
169
7
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
end
|
|
173
|
-
end
|
|
8
|
+
[ :context, :config, :controller, :symlink, :copy, :enumerator, :all_files, :dot_files, :actions ].each do |lib|
|
|
9
|
+
require File.join(File.dirname(__FILE__), 'gitenv', lib.to_s)
|
|
174
10
|
end
|
data/lib/program.rb
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
require File.join File.dirname(__FILE__), 'gitenv'
|
|
2
|
+
require 'commander/import'
|
|
3
|
+
|
|
4
|
+
program :name, 'gitenv'
|
|
5
|
+
program :version, Gitenv::VERSION
|
|
6
|
+
program :description, 'Symlink manager for git repositories with configuration files.'
|
|
7
|
+
|
|
8
|
+
command :info do |c|
|
|
9
|
+
c.action do |args,options|
|
|
10
|
+
Gitenv::Controller.new(:info, options).run
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
command :update do |c|
|
|
15
|
+
c.action do |args,options|
|
|
16
|
+
Gitenv::Controller.new(:update, options).run
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
global_option '-c', '--config FILE', 'Use a custom configuration file (defaults to ~/.gitenv.rb)'
|
|
21
|
+
|
|
22
|
+
default_command :info
|
|
23
|
+
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gitenv
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.3
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2012-09-
|
|
12
|
+
date: 2012-09-23 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: paint
|
|
@@ -27,6 +27,22 @@ dependencies:
|
|
|
27
27
|
- - ~>
|
|
28
28
|
- !ruby/object:Gem::Version
|
|
29
29
|
version: 0.8.5
|
|
30
|
+
- !ruby/object:Gem::Dependency
|
|
31
|
+
name: commander
|
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
|
33
|
+
none: false
|
|
34
|
+
requirements:
|
|
35
|
+
- - ~>
|
|
36
|
+
- !ruby/object:Gem::Version
|
|
37
|
+
version: 4.1.2
|
|
38
|
+
type: :runtime
|
|
39
|
+
prerelease: false
|
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
+
none: false
|
|
42
|
+
requirements:
|
|
43
|
+
- - ~>
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: 4.1.2
|
|
30
46
|
- !ruby/object:Gem::Dependency
|
|
31
47
|
name: bundler
|
|
32
48
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -177,6 +193,16 @@ files:
|
|
|
177
193
|
- bin/gitenv
|
|
178
194
|
- gitenv.gemspec
|
|
179
195
|
- lib/gitenv.rb
|
|
196
|
+
- lib/gitenv/actions.rb
|
|
197
|
+
- lib/gitenv/all_files.rb
|
|
198
|
+
- lib/gitenv/config.rb
|
|
199
|
+
- lib/gitenv/context.rb
|
|
200
|
+
- lib/gitenv/controller.rb
|
|
201
|
+
- lib/gitenv/copy.rb
|
|
202
|
+
- lib/gitenv/dot_files.rb
|
|
203
|
+
- lib/gitenv/enumerator.rb
|
|
204
|
+
- lib/gitenv/symlink.rb
|
|
205
|
+
- lib/program.rb
|
|
180
206
|
- spec/helper.rb
|
|
181
207
|
- spec/version_spec.rb
|
|
182
208
|
homepage: http://github.com/AlphaHydrae/gitenv
|