bin/tmb in tmbundle-manager-0.1.0.pre2 vs bin/tmb in tmbundle-manager-0.1.0.pre3
- old
+ new
@@ -1,100 +1,4 @@
#!/usr/bin/env ruby
-require 'pathname'
-require 'thor'
-
-class TMBundle < Thor
- desc 'edit PARTIAL_NAME', 'Edit an installed bundle (name will be matched against PARTIAL_NAME)'
- def edit partial_name
- matches = installed_bundles.select do |bundle|
- bundle.name =~ /^#{partial_name}/i
- end
-
- if matches.size > 1
- puts "please be more specific:"
- matches.each_with_index {|m,i| puts " #{i+1}) #{m.name}"}
- return false
- end
-
- if matches.empty?
- puts "nothing found"
- return false
- end
-
- bundle = matches.first
- mate bundle.path
- end
-
- desc 'update', 'Update installed bundles'
- def update
- require 'thread'
- signals = Queue.new
- trap('INT') { signals << :int }
-
- updated = []
- skipped = []
- errored = []
-
- installed_bundles[0..4].each do |bundle|
- within bundle do
- if not(File.exist?('./.git'))
- puts "------> Skipping #{bundle.name} (not a Git repo, delta bundle?)"
- skipped << bundle
- next
- end
-
- puts "------> Updating #{bundle.name}..."
- system *%w[git pull --ff-only]
- success = $? == 0
- updated << bundle if success
- errored << bundle unless success
- puts
- (puts 'Exiting…'; exit) if signals.pop == :int until signals.empty?
- end
- end
-
- puts
- puts
- puts '------> Summary'
- puts
- puts "Skipped (#{skipped.size})\n- #{skipped.map(&:name).join("\n- ")}\n\n" if skipped.any?
- puts "Updated (#{updated.size})\n- #{updated.map(&:name).join("\n- ")}\n\n" if updated.any?
- puts "Errored (#{errored.size})\n- #{errored.map(&:name).join("\n- ")}\n\n" if errored.any?
- end
-
- desc 'install', 'Install a bundle from GitHub'
- def install name
- full_name = name.gsub(/(\.tmbundle)$/i, '')+'.tmbundle'
- git_url = "https://github.com/#{full_name}.git"
- install_path = bundles_dir.join(full_name).to_s
- system *(%w[git clone] + [git_url, install_path])
- end
-
- private
-
- def within bundle
- Dir.chdir bundle.path do
- yield
- end
- end
-
- def installed_bundles
- @installed_bundles ||= Dir[bundles_dir.join('*').to_s].map {|path| Bundle.new(path)}
- end
-
- def bundles_dir
- @bundles_dir ||= Pathname('~/Library/Application Support/Avian/Bundles').expand_path
- end
-
- class Bundle < Struct.new(:path)
- def name
- @name ||= File.basename(path, '.tmbundle')
- end
- end
-
- def mate *args
- exec 'mate', *args
- end
-end
-
+require 'tmbundle'
TMBundle.start