toastyapps-gembox 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/Manifest.txt CHANGED
@@ -4,4 +4,8 @@ README.txt
4
4
  Rakefile
5
5
  bin/gembox
6
6
  lib/gembox.rb
7
- test/test_gembox.rb
7
+ lib/templates/dispatch.rb
8
+ lib/templates/bashrc
9
+ lib/templates/gemrc
10
+ lib/templates/shell.bash
11
+ test/test_gembox.rb
data/lib/gembox.rb CHANGED
@@ -1,63 +1,24 @@
1
1
  require 'rubygems'
2
2
  require 'yaml'
3
+ require 'erb'
3
4
 
4
5
  class Gembox
5
- VERSION = '1.1.0'
6
-
6
+ VERSION = '1.1.1'
7
+ attr_accessor :dir
7
8
  def self.create(args)
9
+
8
10
  dir = Dir.new(Dir.pwd+"/"+args.shift).path
9
11
  Dir.chdir(dir)
10
- dir = Dir.pwd
12
+
13
+ @dir = dir = Dir.pwd
14
+
11
15
  FileUtils.mkdir_p "#{dir}/usr/bin"
12
16
  FileUtils.mkdir_p "#{dir}/gems"
13
- File.open("#{dir}/.gemrc", 'w') do |f|
14
- f.puts "gempath:"
15
- f.puts " - #{dir}/gems"
16
- end
17
- File.open("#{dir}/.bashrc", "w") do |f|
18
- f.puts "PS1=\"gembox:\\w> \""
19
- f.puts "export PATH=#{dir}/usr/bin:\$PATH"
20
- f.puts "alias gem='ruby #{dir}/dispatch.rb'"
21
- f.puts "export GEM_PATH=#{dir}/gems"
22
- f.puts "export GEM_HOME=#{dir}/gems"
23
- end
24
- File.open("#{dir}/shell.bash", "w") do |f|
25
- f.puts "/usr/bin/env bash --rcfile #{dir}/.bashrc"
26
- end
27
- File.open("#{dir}/dispatch.rb", "w") do |f|
28
- f.puts "#!/usr/bin/ruby"
29
- f.puts "require 'rubygems'"
30
- f.puts "require 'yaml'"
31
- f.puts "require 'fileutils'"
32
- f.puts "args=ARGV"
33
- f.puts "command=args.shift"
34
- f.puts "case command"
35
- f.puts "when 'install'"
36
- f.puts " system(\"gem --config-file #{dir}/.gemrc #\{command\} --bindir #{dir}/usr/bin #\{ARGV.join(' ')\}\")"
37
- f.puts "when 'query'"
38
- f.puts " puts 'here'"
39
- f.puts " system(\"gem query #\{ARGV.join(' ')\}\")"
40
- f.puts "when 'symlink'"
41
- f.puts " data = YAML.load(File.open('#{dir}/gems.yaml').read)"
42
- f.puts " gem_name = args.shift"
43
- f.puts " if data[gem_name].keys.length == 1"
44
- f.puts " FileUtils.mkdir_p('#{dir}/gems/gems/')"
45
- f.puts " FileUtils.mkdir_p('#{dir}/gems/specifications/')"
46
- f.puts " version = data[gem_name].keys[0]"
47
- f.puts " gemdir = data[gem_name][version]"
48
- f.puts " gemname = gem_name+'-'+version"
49
- f.puts " gem_file = gemdir + '/gems/' + gemname"
50
- f.puts " spec_file = gemdir + '/specifications/' + gemname + '.gemspec'"
51
- f.puts " \`ln -s #\{gem_file\} #{dir}/gems/gems/#\{gemname\} && ln -s #\{spec_file\} #{dir}/gems/specifications/#\{gemname\}.gemspec\`"
52
- f.puts " elsif data[gem_name].keys.length > 1"
53
- f.puts " puts 'This gem has multiple versions. Gembox does not supporting gems with multiple versions installed yet.'"
54
- f.puts " else"
55
- f.puts " puts \"Could not find gem #\{gem_name\}\""
56
- f.puts " end"
57
- f.puts "else"
58
- f.puts " system(\"gem --config-file #{dir}/.gemrc #\{command\} #\{ARGV.join(' ')\}\")"
59
- f.puts "end"
60
- end
17
+
18
+ File.open("#{dir}/.gemrc", 'w') { |f| f.puts ERB.new(File.open(File.dirname(__FILE__)+"/templates/gemrc").read).result(binding) }
19
+ File.open("#{dir}/.bashrc", "w") { |f| f.puts ERB.new(File.open(File.dirname(__FILE__)+"/templates/bashrc").read).result(binding) }
20
+ File.open("#{dir}/shell.bash", "w") {|f| f.puts ERB.new(File.open(File.dirname(__FILE__)+"/templates/shell.bash").read).result(binding) }
21
+ File.open("#{dir}/dispatch.rb", "w") { |f| f.puts ERB.new(File.open(File.dirname(__FILE__)+"/templates/dispatch.rb").read).result(binding) }
61
22
  end
62
23
 
63
24
  def self.shell(args)
@@ -86,9 +47,7 @@ class Gembox
86
47
  end
87
48
  end
88
49
  end
89
- File.open("gems.yaml", "w") do |f|
90
- f.puts gemdata.to_yaml
91
- end
50
+ File.open("gems.yaml", "w") { |f| f.puts gemdata.to_yaml }
92
51
  system("sh shell.bash")
93
52
  end
94
53
 
@@ -0,0 +1,5 @@
1
+ PS1="gembox:\w> "
2
+ export PATH=<%= @dir %>/usr/bin:$PATH
3
+ alias gem='ruby <%= @dir %>/dispatch.rb'
4
+ export GEM_PATH=<%= @dir %>/gems
5
+ export GEM_HOME=<%= @dir %>/gems
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/ruby
2
+ require 'rubygems'
3
+ require 'yaml'
4
+ require 'fileutils'
5
+ args=ARGV
6
+ command=args.shift
7
+ case command
8
+ when 'install'
9
+ system("gem --config-file <%= @dir %>/.gemrc #{command} --bindir <%= @dir %>/usr/bin #{ARGV.join(' ')}")
10
+ when 'query'
11
+ puts 'here'
12
+ system("gem query #{ARGV.join(' ')}")
13
+ when 'symlink'
14
+ data = YAML.load(File.open('<%= @dir %>/gems.yaml').read)
15
+ gem_name = args.shift
16
+ if data[gem_name].keys.length == 1
17
+ FileUtils.mkdir_p('<%= @dir %>/gems/gems/')
18
+ FileUtils.mkdir_p('<%= @dir %>/gems/specifications/')
19
+ version = data[gem_name].keys[0]
20
+ gemdir = data[gem_name][version]
21
+ gemname = gem_name+'-'+version
22
+ gem_file = gemdir + '/gems/' + gemname
23
+ spec_file = gemdir + '/specifications/' + gemname + '.gemspec'
24
+ `ln -s #{gem_file} <%= @dir %>/gems/gems/#{gemname} && ln -s #{spec_file} <%= @dir %>/gems/specifications/#{gemname}.gemspec`
25
+ elsif data[gem_name].keys.length > 1
26
+ puts 'This gem has multiple versions. Gembox does not supporting gems with multiple versions installed yet.'
27
+ else
28
+ puts "Could not find gem #{gem_name}"
29
+ end
30
+ else
31
+ system("gem --config-file <%= @dir %>/.gemrc #{command} #{ARGV.join(' ')}")
32
+ end
@@ -0,0 +1,2 @@
1
+ gempath:
2
+ - <%= @dir %>/gems
@@ -0,0 +1 @@
1
+ /usr/bin/env bash --rcfile <%= @dir %>/.bashrc
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: toastyapps-gembox
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Mongeau
@@ -30,6 +30,10 @@ files:
30
30
  - Rakefile
31
31
  - bin/gembox
32
32
  - lib/gembox.rb
33
+ - lib/templates/dispatch.rb
34
+ - lib/templates/bashrc
35
+ - lib/templates/gemrc
36
+ - lib/templates/shell.bash
33
37
  - test/test_gembox.rb
34
38
  has_rdoc: true
35
39
  homepage: http://www.halogenandtoast.com