nexus_cli 0.0.4 → 0.0.5

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.4
1
+ 0.0.5
@@ -38,4 +38,11 @@ module NexusCli
38
38
  end
39
39
  status_code(103)
40
40
  end
41
+
42
+ class NonSecureConnectionException < NexusCliError
43
+ def message
44
+ "Your communication with a server using an SSL certificate failed during validation. You may want to try the --insecure option."
45
+ end
46
+ status_code(104)
47
+ end
41
48
  end
@@ -1,5 +1,6 @@
1
1
  require 'restclient'
2
2
  require 'yaml'
3
+ require 'open3'
3
4
 
4
5
  module NexusCli
5
6
  class Remote
@@ -43,7 +44,7 @@ module NexusCli
43
44
  File.expand_path(artifact.path)
44
45
  end
45
46
 
46
- def push_artifact(artifact, file)
47
+ def push_artifact(artifact, file, insecure)
47
48
  #Build up the pieces that will make up the PUT request
48
49
  split_artifact = artifact.split(":")
49
50
  if(split_artifact.size < 4)
@@ -55,8 +56,13 @@ module NexusCli
55
56
  file_name = "#{split_artifact[1]}-#{version}.#{split_artifact[3]}"
56
57
 
57
58
  put_string = "content/repositories/releases/#{artifact_id}/#{group_id}/#{version}/#{file_name}"
58
- #nexus[put_string].put File.read(file), :accept => "*/*"
59
- Kernel.quietly {`curl -T #{file} #{configuration['url']}#{put_string} -u #{configuration['username']}:#{configuration['password']}`}
59
+ Open3.popen3("curl #{insecure ? "-k" : ""} -T #{file} #{configuration['url']}#{put_string} -u #{configuration['username']}:#{configuration['password']}") do |stdin, stdout, stderr, wait_thr|
60
+ exit_code = wait_thr.value.exitstatus
61
+ case exit_code
62
+ when 60
63
+ raise NonSecureConnectionException
64
+ end
65
+ end
60
66
  end
61
67
 
62
68
  def delete_artifact(artifact)
@@ -11,25 +11,31 @@ module NexusCli
11
11
  def pull_artifact(artifact)
12
12
  begin
13
13
  path_to_artifact = Remote.pull_artifact(artifact, options[:destination])
14
- puts "Artifact has been retrived and can be found at path: #{path_to_artifact}"
14
+ say "Artifact has been retrived and can be found at path: #{path_to_artifact}", :green
15
15
  rescue NexusCliError => e
16
- puts e.message
16
+ say e.message, :red
17
17
  exit e.status_code
18
18
  end
19
19
  end
20
20
 
21
21
  desc "push_artifact artifact file", "Pushes an artifact from your machine onto the Nexus."
22
+ method_options :insecure => false
22
23
  def push_artifact(artifact, file)
23
- Remote.push_artifact(artifact, file)
24
- puts "Artifact #{artifact} has been successfully pushed to Nexus."
24
+ begin
25
+ Remote.push_artifact(artifact, file, options[:insecure])
26
+ say "Artifact #{artifact} has been successfully pushed to Nexus.", :green
27
+ rescue NexusCliError => e
28
+ say e.message, :red
29
+ exit e.status_code
30
+ end
25
31
  end
26
32
 
27
33
  desc "get_artifact_info artifact", "Gets and returns the XML information about a particular artifact."
28
34
  def get_artifact_info(artifact)
29
35
  begin
30
- puts Remote.get_artifact_info(artifact)
36
+ say Remote.get_artifact_info(artifact), :green
31
37
  rescue NexusCliError => e
32
- puts e.message
38
+ say e.message, :red
33
39
  exit e.status_code
34
40
  end
35
41
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nexus_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-14 00:00:00.000000000 Z
12
+ date: 2012-06-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
@@ -147,18 +147,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
147
147
  - - ! '>='
148
148
  - !ruby/object:Gem::Version
149
149
  version: '0'
150
- segments:
151
- - 0
152
- hash: 4305968249871314487
153
150
  required_rubygems_version: !ruby/object:Gem::Requirement
154
151
  none: false
155
152
  requirements:
156
153
  - - ! '>='
157
154
  - !ruby/object:Gem::Version
158
155
  version: '0'
159
- segments:
160
- - 0
161
- hash: 4305968249871314487
162
156
  requirements: []
163
157
  rubyforge_project:
164
158
  rubygems_version: 1.8.21