rumr 0.1.0

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.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/bin/rumr +5 -0
  3. data/lib/rumr.rb +57 -0
  4. metadata +60 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4336d2f8c584d8ecaba26ea64594e6979105781e
4
+ data.tar.gz: 161f7f5f7643bfa53873811d33839dc77b536f25
5
+ SHA512:
6
+ metadata.gz: 17befb6b95a66143496fc19c27b2161ea568b31d0578731fe5642d8c8d32fa62fc252e171631fdf356bf108012ab88d31fdab3e3050f57c6f6321a8b6856ae52
7
+ data.tar.gz: 8fdac461f656aec914630f4bf3945d92be25c96340f538f0c15662f90ede2d989ab29f0f75957f5cee2fc41b75db22bdc1a80169ddfe7b29012ba60a4c6b2475
data/bin/rumr ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rumr'
4
+
5
+ Rumr.start(ARGV)
data/lib/rumr.rb ADDED
@@ -0,0 +1,57 @@
1
+ require 'find'
2
+ require 'yaml'
3
+ require 'thor'
4
+
5
+ # [Ru]by [m]ulti-[r]epository command line tool
6
+ class Rumr < Thor
7
+ desc 'register', 'Register a directory'
8
+ method_option :directory,
9
+ aliases: '-d',
10
+ type: :string,
11
+ default: './',
12
+ desc: 'Directory to register'
13
+ method_option :tag,
14
+ aliases: '-t',
15
+ type: :array,
16
+ default: 'default',
17
+ desc: 'Tag/s to register'
18
+ method_option :append,
19
+ type: :boolean,
20
+ desc: 'Append given tags to any existing tags?'
21
+ def register
22
+ new_tags = options[:tag]
23
+ rumr_file = File.join(options[:directory], '.rumr')
24
+ if options[:append] && File.exist?(rumr_file)
25
+ cur_tags = YAML.load_file(rumr_file)
26
+ new_tags = (new_tags + cur_tags).uniq
27
+ end
28
+ File.open(rumr_file, 'w') { |f| f.write new_tags.to_yaml }
29
+ end
30
+
31
+ desc 'exec COMMAND', 'Execute (run) a given command on registered directories'
32
+ method_option :basepath,
33
+ aliases: '-b',
34
+ type: :string,
35
+ default: './',
36
+ desc: 'Directory to begin search for rumr files.'
37
+ method_option :tag,
38
+ aliases: '-t',
39
+ type: :string,
40
+ default: 'default',
41
+ desc: 'Tag to match against'
42
+ method_option :dryrun,
43
+ type: :boolean,
44
+ desc: 'Display (do not execute) the commands to run.'
45
+ def exec(command)
46
+ Find.find(options[:basepath]) do |path|
47
+ next unless File.basename(path) == '.rumr'
48
+ next unless YAML.load_file(path).include? options[:tag]
49
+ if options['dryrun']
50
+ puts "Would execute #{command} in #{path}"
51
+ else
52
+ base_path = File.dirname(path)
53
+ puts `bash -c "cd #{base_path} && #{command}"`
54
+ end
55
+ end
56
+ end
57
+ end
metadata ADDED
@@ -0,0 +1,60 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rumr
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Kyle W. Purdon
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-05-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.19.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.19.1
27
+ description: "[Ru]by [m]ulti-[r]epository Tool"
28
+ email: kylepurdon@gmail.com
29
+ executables:
30
+ - rumr
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - bin/rumr
35
+ - lib/rumr.rb
36
+ homepage: http://rubygems.org/gems/rumr
37
+ licenses:
38
+ - GPLv3
39
+ metadata: {}
40
+ post_install_message:
41
+ rdoc_options: []
42
+ require_paths:
43
+ - lib
44
+ required_ruby_version: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ required_rubygems_version: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ requirements: []
55
+ rubyforge_project:
56
+ rubygems_version: 2.4.5
57
+ signing_key:
58
+ specification_version: 4
59
+ summary: Hola!
60
+ test_files: []