gitgem 0.0.5 → 0.0.7

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 +4 -4
  2. data/bin/gitgem +151 -37
  3. data/lib/gitgem/action.rb +14 -9
  4. metadata +22 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2d32c4e13465683f9d3324fe3049c6112a081175
4
- data.tar.gz: 45f0bb2357632ddbdaada5d1b9f009cf6f2bbeb7
3
+ metadata.gz: 62f651ebd2d42e35bb2fe68b6234ba1317fbacad
4
+ data.tar.gz: cd48647a970eea69fb6e42d7fa8d0221206a7808
5
5
  SHA512:
6
- metadata.gz: 3366bd301de4e256801dc63364db2ae8d24a65aee4ad7f8f46841745c83d42a49efd747492e07559f762af045c41fe6d5b7fc680b5099a9b1a25902eaeab2a2a
7
- data.tar.gz: 94f1c336de8c35bde97d0a4321cefa07adfa5640c0f185adc683c1014cb583bc5f26469e7f311cc95c816132f55f6668b69a4a3ab10602ce7f1e1a4c2c08d1f2
6
+ metadata.gz: 2926ba3404ad80d45b8ad7b60a7aca47ac1b4eeb1e871145ca5f6a55dfd78044812357d61f61494c2559673434b442f42090304b67929bafefd48d940a68d457
7
+ data.tar.gz: 9329f01fc6682e2d054132fac344593913281045ea5567127434de0578952e975a3a8a38bf1e3b00d5ac78c1be67fc4641072895353c1c87319c90e256f35e89
data/bin/gitgem CHANGED
@@ -1,53 +1,167 @@
1
1
  #!/usr/bin/env ruby
2
2
  # -*- coding: UTF-8 -*-
3
3
 
4
- $LOAD_PATH.push File.expand_path("../../lib", __FILE__)
4
+ lib = File.expand_path(File.join(__dir__, "../lib"))
5
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
6
 
6
- require 'optparse'
7
+ require 'gli'
7
8
 
9
+ require 'version'
8
10
  require 'gitgem/action'
9
11
 
10
- ARGV << '-h' if ARGV.empty?
11
- action = ARGV.shift unless ARGV.first.start_with?("-")
12
+ include GLI::App
12
13
 
13
- options = {}
14
- option_parser = OptionParser.new do |opts|
15
- opts.banner = "Here is help messages of the command line tool.\nAction Suppored: 'add', 'remove', 'install', 'uninstall'."
14
+ program_desc 'Install gem from git repo'
15
+ version GitGem::VERSION
16
16
 
17
- opts.on('-r REPO', '--repo Repo', 'Specify git repo') do |value|
18
- options[:repo] = value
17
+ subcommand_option_handling :normal
18
+ arguments :strict
19
+
20
+ desc "Add git repo"
21
+ arg_name '-r repo -a alias'
22
+ command :add do |c|
23
+
24
+ c.desc 'Specify git repo'
25
+ c.arg_name 'ssh@xxx.git'
26
+ c.flag [:r, :repo]
27
+
28
+ c.desc 'Specify a short name of git repo'
29
+ c.arg_name 'alias'
30
+ c.flag [:a, :alias]
31
+
32
+ c.action do |_, opts, _|
33
+ repo = options[:r]
34
+ repo_alias = options[:a]
35
+ GitGem::Action.add(repo_alias, repo)
19
36
  end
37
+ end
38
+
39
+ desc "Remove git repo by alias"
40
+ arg_name '-a alias'
41
+ command :remove do |c|
20
42
 
21
- opts.on('-a ALIAS', '--alias Alias', 'Make Alias') do |value|
22
- options[:alias] = value
43
+ c.desc 'Alias of git repo'
44
+ c.arg_name 'alias'
45
+ c.flag [:a, :alias]
46
+
47
+ c.action do |_, opts, _|
48
+ repo_alias = options[:a]
49
+ GitGem::Action.remove(repo_alias)
23
50
  end
51
+ end
52
+
53
+ desc "Install gem from git repo"
54
+ arg_name '-a alias -g gem -n bindir'
55
+ command :install do |c|
56
+
57
+ c.desc 'Alias of git repo'
58
+ c.arg_name 'alias'
59
+ c.flag [:a, :alias]
60
+
61
+ c.desc 'Name of gem'
62
+ c.arg_name 'gitgem'
63
+ c.flag [:g, :gem]
24
64
 
25
- opts.on('-g GEM', '--gem Gem', 'Install GEM') do |value|
26
- argvs = value.split("/")
27
- options[:alias] = argvs.shift
28
- options[:gem_dir] = argvs.join("/")
65
+ c.desc 'dir will install'
66
+ c.arg_name '/usr/local/bin'
67
+ c.flag [:n, :bindir]
68
+
69
+ c.action do |_, opts, _|
70
+ repo = options[:a]
71
+ gem_name = options[:g]
72
+ bindir = options[:n]
73
+ GitGem::Action.install(repo, gem_name, bindir)
29
74
  end
75
+ end
76
+
77
+ desc "Uninstall gem"
78
+ arg_name '-a alias -g gem'
79
+ command :uninstall do |c|
80
+
81
+ c.desc 'Alias of git repo'
82
+ c.arg_name 'alias'
83
+ c.flag [:a, :alias]
84
+
85
+ c.desc 'Name of gem'
86
+ c.arg_name 'gitgem'
87
+ c.flag [:g, :gem]
30
88
 
31
- opts.on('-h', '--help', 'Show this message') { puts opts; exit }
32
- opts.on('-v', '--version', 'Show version') { exit }
33
- end.parse!
34
-
35
- case action
36
- when 'add'
37
- repo = options[:repo]
38
- repo_alias = options[:alias]
39
- GitGem::Action.add(repo_alias, repo)
40
- when 'remove'
41
- repo = options[:alias]
42
- GitGem::Action.remove(repo)
43
- when 'install'
44
- repo = options[:alias]
45
- gem_dir = options[:gem_dir]
46
- GitGem::Action.install(repo, gem_dir)
47
- when 'uninstall'
48
- repo = options[:alias]
49
- gem_dir = options[:gem_dir]
50
- GitGem::Action.uninstall(repo, gem_dir)
51
- else
52
- abort("Could not find action named '#{action}'")
89
+ c.desc 'dir will uninstall'
90
+ c.arg_name '/usr/local/bin'
91
+ c.flag [:n, :bindir]
92
+
93
+ c.action do |_, opts, _|
94
+ repo = options[:a]
95
+ gem_name = options[:g]
96
+ bindir = options[:n]
97
+ GitGem::Action.uninstall(repo, gem_name, bindir)
98
+ end
53
99
  end
100
+
101
+ exit run(ARGV)
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
+
120
+
121
+
122
+
123
+
124
+ # ARGV << '-h' if ARGV.empty?
125
+ # action = ARGV.shift unless ARGV.first.start_with?("-")
126
+ #
127
+ # options = {}
128
+ # option_parser = OptionParser.new do |opts|
129
+ # opts.banner = "Here is help messages of the command line tool.\nAction Suppored: 'add', 'remove', 'install', 'uninstall'."
130
+ #
131
+ # opts.on('-r REPO', '--repo Repo', 'Specify git repo') do |value|
132
+ # options[:repo] = value
133
+ # end
134
+ #
135
+ # opts.on('-a ALIAS', '--alias Alias', 'Make Alias') do |value|
136
+ # options[:alias] = value
137
+ # end
138
+ #
139
+ # opts.on('-g GEM', '--gem Gem', 'Install GEM') do |value|
140
+ # argvs = value.split("/")
141
+ # options[:alias] = argvs.shift
142
+ # options[:gem_dir] = argvs.join("/")
143
+ # end
144
+ #
145
+ # opts.on('-h', '--help', 'Show this message') { puts opts; exit }
146
+ # opts.on('-v', '--version', 'Show version') { exit }
147
+ # end.parse!
148
+ #
149
+ # case action
150
+ # when 'add'
151
+ # repo = options[:repo]
152
+ # repo_alias = options[:alias]
153
+ # GitGem::Action.add(repo_alias, repo)
154
+ # when 'remove'
155
+ # repo = options[:alias]
156
+ # GitGem::Action.remove(repo)
157
+ # when 'install'
158
+ # repo = options[:alias]
159
+ # gem_dir = options[:gem_dir]
160
+ # GitGem::Action.install(repo, gem_dir)
161
+ # when 'uninstall'
162
+ # repo = options[:alias]
163
+ # gem_dir = options[:gem_dir]
164
+ # GitGem::Action.uninstall(repo, gem_dir)
165
+ # else
166
+ # abort("Could not find action named '#{action}'")
167
+ # end
data/lib/gitgem/action.rb CHANGED
@@ -36,7 +36,7 @@ module GitGem
36
36
  system("sed -i '' '/#{repo_alias}=/d' #{alias_path}")
37
37
  end
38
38
 
39
- def install(repo_alias, gem_dir)
39
+ def install(repo_alias, gem_dir, bindir)
40
40
  abort("Please specify alias like alias/gem") if repo_alias.nil? || repo_alias.empty?
41
41
  result = read_alias(repo_alias)
42
42
  abort("Could not find alias named #{repo_alias}, please check again.") if result.nil?
@@ -64,7 +64,11 @@ module GitGem
64
64
  abort("Could not find gemspec in #{File.join(Dir.pwd)}") if gemspecs.nil? || gemspecs.empty?
65
65
  abort("Mutiple gemspecs found in #{File.join(Dir.pwd)}") if gemspecs.count > 1
66
66
 
67
- result = system("gem build #{gemspecs.first}")
67
+ Dir.glob("*.gem").each do |gem|
68
+ FileUtils.rm_rf(gem)
69
+ end
70
+
71
+ result = system("sudo gem build #{gemspecs.first}")
68
72
 
69
73
  abort("Fail to build gemspec") unless result
70
74
 
@@ -72,14 +76,15 @@ module GitGem
72
76
  abort("Could not find gem in #{File.join(Dir.pwd)}") if gemspecs.nil? || gemspecs.empty?
73
77
 
74
78
  # 获取最新 gem
75
- gem = gems.sort_by { |f| File.mtime(f) }.reverse.first
79
+ gem = gems.first
80
+ bin = "-n #{bindir}" unless bindir.nil?
76
81
 
77
- system("gem install #{gem}")
82
+ system("sudo gem install #{gem} #{bin}")
78
83
 
79
84
  Dir.chdir(pwd)
80
85
  end
81
86
 
82
- def uninstall(repo_alias, gem_dir)
87
+ def uninstall(repo_alias, gem_name, bindir)
83
88
  abort("Please specify alias like alias/gem") if repo_alias.nil? || repo_alias.empty?
84
89
  result = read_alias(repo_alias)
85
90
  abort("Could not find alias named #{repo_alias}, please check again.") if result.nil?
@@ -90,10 +95,10 @@ module GitGem
90
95
 
91
96
  gems = Dir.glob(File.join(repo_dir, gem_dir, "*.gem"))
92
97
  abort("Could not find gem in #{File.join(repo_dir, gem_dir)}") if gems.nil? || gems.empty?
93
- gems.each do |gem|
94
- gem_name = File.basename(gem, ".gem").split("-")[0...-1].join("-")
95
- system("gem uninstall #{gem_name}")
96
- end
98
+
99
+ bin = "-n #{bindir}" unless bindir.nil?
100
+ gem_name = File.basename(gems.first, ".gem").split("-")[0...-1].join("-")
101
+ system("sudo gem unisntall #{gem_name} #{bin}")
97
102
  end
98
103
 
99
104
  private
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitgem
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - saitjr
@@ -9,7 +9,27 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2018-01-10 00:00:00.000000000 Z
12
- dependencies: []
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: gli
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.17'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 2.17.1
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '2.17'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 2.17.1
13
33
  description: Install gem from git repo !
14
34
  email: tangjr.work@gmail.com
15
35
  executables: