tmbundle-manager 0.1.0.pre2 → 0.1.0.pre3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/bin/tmb +1 -97
- data/lib/tmbundle/manager/version.rb +1 -1
- data/lib/tmbundle.rb +117 -0
- data/spec/tmbundle_spec.rb +9 -0
- data/tmbundle-manager.gemspec +1 -0
- metadata +19 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 77f32abf4b5ce55055841dbe347a9c715143146b
|
4
|
+
data.tar.gz: 07ab6f1206b3458849874a5239524d9157b3805c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49de021c0e249769fea02108da7cf66a6b110231be5134de78dca0f58dfa2a2e672f85fe7a2166994ce5f48bf918f36b7b865332a8b1654ff1fd4ff958b259eb
|
7
|
+
data.tar.gz: 9c96a97acee53e0dd4c1b06d82a3a6db366630cc021fd047d8cd10eb468a656c17273ed5a81cfe7b4dae2997059cca51bf77345a763286574f1644cda181e502
|
data/README.md
CHANGED
data/bin/tmb
CHANGED
@@ -1,100 +1,4 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require '
|
4
|
-
require 'thor'
|
5
|
-
|
6
|
-
class TMBundle < Thor
|
7
|
-
desc 'edit PARTIAL_NAME', 'Edit an installed bundle (name will be matched against PARTIAL_NAME)'
|
8
|
-
def edit partial_name
|
9
|
-
matches = installed_bundles.select do |bundle|
|
10
|
-
bundle.name =~ /^#{partial_name}/i
|
11
|
-
end
|
12
|
-
|
13
|
-
if matches.size > 1
|
14
|
-
puts "please be more specific:"
|
15
|
-
matches.each_with_index {|m,i| puts " #{i+1}) #{m.name}"}
|
16
|
-
return false
|
17
|
-
end
|
18
|
-
|
19
|
-
if matches.empty?
|
20
|
-
puts "nothing found"
|
21
|
-
return false
|
22
|
-
end
|
23
|
-
|
24
|
-
bundle = matches.first
|
25
|
-
mate bundle.path
|
26
|
-
end
|
27
|
-
|
28
|
-
desc 'update', 'Update installed bundles'
|
29
|
-
def update
|
30
|
-
require 'thread'
|
31
|
-
signals = Queue.new
|
32
|
-
trap('INT') { signals << :int }
|
33
|
-
|
34
|
-
updated = []
|
35
|
-
skipped = []
|
36
|
-
errored = []
|
37
|
-
|
38
|
-
installed_bundles[0..4].each do |bundle|
|
39
|
-
within bundle do
|
40
|
-
if not(File.exist?('./.git'))
|
41
|
-
puts "------> Skipping #{bundle.name} (not a Git repo, delta bundle?)"
|
42
|
-
skipped << bundle
|
43
|
-
next
|
44
|
-
end
|
45
|
-
|
46
|
-
puts "------> Updating #{bundle.name}..."
|
47
|
-
system *%w[git pull --ff-only]
|
48
|
-
success = $? == 0
|
49
|
-
updated << bundle if success
|
50
|
-
errored << bundle unless success
|
51
|
-
puts
|
52
|
-
(puts 'Exiting…'; exit) if signals.pop == :int until signals.empty?
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
puts
|
57
|
-
puts
|
58
|
-
puts '------> Summary'
|
59
|
-
puts
|
60
|
-
puts "Skipped (#{skipped.size})\n- #{skipped.map(&:name).join("\n- ")}\n\n" if skipped.any?
|
61
|
-
puts "Updated (#{updated.size})\n- #{updated.map(&:name).join("\n- ")}\n\n" if updated.any?
|
62
|
-
puts "Errored (#{errored.size})\n- #{errored.map(&:name).join("\n- ")}\n\n" if errored.any?
|
63
|
-
end
|
64
|
-
|
65
|
-
desc 'install', 'Install a bundle from GitHub'
|
66
|
-
def install name
|
67
|
-
full_name = name.gsub(/(\.tmbundle)$/i, '')+'.tmbundle'
|
68
|
-
git_url = "https://github.com/#{full_name}.git"
|
69
|
-
install_path = bundles_dir.join(full_name).to_s
|
70
|
-
system *(%w[git clone] + [git_url, install_path])
|
71
|
-
end
|
72
|
-
|
73
|
-
private
|
74
|
-
|
75
|
-
def within bundle
|
76
|
-
Dir.chdir bundle.path do
|
77
|
-
yield
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
def installed_bundles
|
82
|
-
@installed_bundles ||= Dir[bundles_dir.join('*').to_s].map {|path| Bundle.new(path)}
|
83
|
-
end
|
84
|
-
|
85
|
-
def bundles_dir
|
86
|
-
@bundles_dir ||= Pathname('~/Library/Application Support/Avian/Bundles').expand_path
|
87
|
-
end
|
88
|
-
|
89
|
-
class Bundle < Struct.new(:path)
|
90
|
-
def name
|
91
|
-
@name ||= File.basename(path, '.tmbundle')
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
def mate *args
|
96
|
-
exec 'mate', *args
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
3
|
+
require 'tmbundle'
|
100
4
|
TMBundle.start
|
data/lib/tmbundle.rb
ADDED
@@ -0,0 +1,117 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
require 'thor'
|
3
|
+
|
4
|
+
class TMBundle < Thor
|
5
|
+
desc 'edit PARTIAL_NAME', 'Edit an installed bundle (name will be matched against PARTIAL_NAME)'
|
6
|
+
def edit partial_name
|
7
|
+
matches = installed_bundles.select do |bundle|
|
8
|
+
bundle.name =~ /^#{partial_name}/i
|
9
|
+
end
|
10
|
+
|
11
|
+
if matches.size > 1
|
12
|
+
puts "please be more specific:"
|
13
|
+
matches.each_with_index {|m,i| puts " #{i+1}) #{m.name}"}
|
14
|
+
return false
|
15
|
+
end
|
16
|
+
|
17
|
+
if matches.empty?
|
18
|
+
puts "nothing found"
|
19
|
+
return false
|
20
|
+
end
|
21
|
+
|
22
|
+
bundle = matches.first
|
23
|
+
mate bundle.path
|
24
|
+
end
|
25
|
+
|
26
|
+
desc 'update', 'Update installed bundles'
|
27
|
+
def update
|
28
|
+
require 'thread'
|
29
|
+
signals = Queue.new
|
30
|
+
trap('INT') { signals << :int }
|
31
|
+
|
32
|
+
updated = []
|
33
|
+
skipped = []
|
34
|
+
errored = []
|
35
|
+
|
36
|
+
installed_bundles[0..4].each do |bundle|
|
37
|
+
within bundle do
|
38
|
+
if not(File.exist?('./.git'))
|
39
|
+
puts "------> Skipping #{bundle.name} (not a Git repo, delta bundle?)"
|
40
|
+
skipped << bundle
|
41
|
+
next
|
42
|
+
end
|
43
|
+
|
44
|
+
puts "------> Updating #{bundle.name}..."
|
45
|
+
system *%w[git pull --ff-only]
|
46
|
+
success = $? == 0
|
47
|
+
updated << bundle if success
|
48
|
+
errored << bundle unless success
|
49
|
+
puts
|
50
|
+
(puts 'Exiting…'; exit) if signals.pop == :int until signals.empty?
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
puts
|
55
|
+
puts
|
56
|
+
puts '------> Summary'
|
57
|
+
puts
|
58
|
+
puts "Skipped (#{skipped.size})\n- #{skipped.map(&:name).join("\n- ")}\n\n" if skipped.any?
|
59
|
+
puts "Updated (#{updated.size})\n- #{updated.map(&:name).join("\n- ")}\n\n" if updated.any?
|
60
|
+
puts "Errored (#{errored.size})\n- #{errored.map(&:name).join("\n- ")}\n\n" if errored.any?
|
61
|
+
end
|
62
|
+
|
63
|
+
desc 'install', 'Install a bundle from GitHub'
|
64
|
+
def install name
|
65
|
+
name = BundleName.new(name)
|
66
|
+
install_path = bundles_dir.join(name.install_name).to_s
|
67
|
+
system('git', 'clone', name.git_url, install_path)
|
68
|
+
end
|
69
|
+
|
70
|
+
class BundleName
|
71
|
+
def initialize(name)
|
72
|
+
@name = name
|
73
|
+
end
|
74
|
+
|
75
|
+
attr_reader :name
|
76
|
+
private :name
|
77
|
+
|
78
|
+
def install_name
|
79
|
+
File.basename(name.gsub(/([\.\-_]tmbundle)?$/i, '.tmbundle'))
|
80
|
+
end
|
81
|
+
|
82
|
+
def repo_name
|
83
|
+
name+'.tmbundle' unless name =~ /([\.\-_]tmbundle)$/i
|
84
|
+
end
|
85
|
+
|
86
|
+
def git_url
|
87
|
+
"https://github.com/#{repo_name}.git"
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
private
|
92
|
+
|
93
|
+
def within bundle
|
94
|
+
Dir.chdir bundle.path do
|
95
|
+
yield
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
def installed_bundles
|
100
|
+
@installed_bundles ||= Dir[bundles_dir.join('*').to_s].map {|path| Bundle.new(path)}
|
101
|
+
end
|
102
|
+
|
103
|
+
def bundles_dir
|
104
|
+
@bundles_dir ||= Pathname('~/Library/Application Support/Avian/Bundles').expand_path
|
105
|
+
end
|
106
|
+
|
107
|
+
class Bundle < Struct.new(:path)
|
108
|
+
def name
|
109
|
+
@name ||= File.basename(path, '.tmbundle')
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
def mate *args
|
114
|
+
exec 'mate', *args
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
data/tmbundle-manager.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tmbundle-manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.
|
4
|
+
version: 0.1.0.pre3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elia Schito
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: spectator
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.3'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.3'
|
69
83
|
description:
|
70
84
|
email:
|
71
85
|
- elia@schito.me
|
@@ -82,11 +96,13 @@ files:
|
|
82
96
|
- README.md
|
83
97
|
- Rakefile
|
84
98
|
- bin/tmb
|
99
|
+
- lib/tmbundle.rb
|
85
100
|
- lib/tmbundle/manager.rb
|
86
101
|
- lib/tmbundle/manager/server.rb
|
87
102
|
- lib/tmbundle/manager/version.rb
|
88
103
|
- spec/spec_helper.rb
|
89
104
|
- spec/tmbundle/manager_spec.rb
|
105
|
+
- spec/tmbundle_spec.rb
|
90
106
|
- tmbundle-manager.gemspec
|
91
107
|
homepage: ''
|
92
108
|
licenses:
|
@@ -115,3 +131,4 @@ summary: TextMate 2 Bundle/Package Manager
|
|
115
131
|
test_files:
|
116
132
|
- spec/spec_helper.rb
|
117
133
|
- spec/tmbundle/manager_spec.rb
|
134
|
+
- spec/tmbundle_spec.rb
|