deployman 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -10,10 +10,12 @@ require 'deployman/app/configuration'
10
10
  require 'deployman/app/postsetup'
11
11
  require 'deployman/component'
12
12
  require 'deployman/component/downloader'
13
+ require 'deployman/component/filemanager'
13
14
  require 'deployman/component/spinningclock'
14
15
  require 'deployman/component/output'
15
16
  require 'deployman/net'
16
17
  require 'deployman/net/post'
18
+ require 'deployman/net/get'
17
19
  require 'deployman/extractor'
18
20
  require 'deployman/extractor/zip'
19
21
 
@@ -55,6 +55,11 @@ module Deployman::App::Install
55
55
  create_configfile(owner, software, release, zip_url, dest)
56
56
  puts "done!"
57
57
 
58
+ # createfiles from api
59
+ print "> Creating Files from API..."
60
+ createfiles_from_api(dest)
61
+ puts "done!"
62
+
58
63
  # run deploy.rb
59
64
  print "> Deploying..."
60
65
  deployrb(dest)
@@ -82,6 +87,8 @@ module Deployman::App::Install
82
87
  FileUtils.rm_rf(release_path)
83
88
  end
84
89
 
90
+ # CREATE CONFIGFILE
91
+ #
85
92
  def self.create_configfile (owner, software, release, zip_url, dest)
86
93
  begin
87
94
  config = {
@@ -100,6 +107,23 @@ module Deployman::App::Install
100
107
  end
101
108
  end
102
109
 
110
+ # CREATE FILES FROM API
111
+ #
112
+ def self.createfiles_from_api (dest)
113
+ begin
114
+ # foreach all fileUrls
115
+ @@options[:createfiles_from_api].each do |fileUrl|
116
+ # get file data from api request
117
+ data = Deployman::Net::Get.send fileUrl
118
+ # create file
119
+ Deployman::Component::Filemanager.create_file(dest + '/' + data['path'], data['content'])
120
+ end
121
+ rescue Exception => e
122
+ warn "ERROR: #{e.message}"
123
+ raise "Creating Files from API failed!"
124
+ end
125
+ end
126
+
103
127
  # RUN_DEPLOYRB
104
128
  # dest = "/sandbox/liveserver/customerName/software/repoOnwer/repoName/releases/v2.2.0"
105
129
  #
@@ -38,7 +38,7 @@ module Deployman::App::Optionparser
38
38
 
39
39
  # config
40
40
  options[:config] = {}
41
- opts.on('--config VALUES', Array, "add custom config values (works only in combination with --install)") do |setting|
41
+ opts.on('--config VALUES', Array, "add custom config values (works only in combination with --install)\n\t\t\t\t\t VALUES = <key>,<value>,<key>,<value>,...") do |setting|
42
42
  raise OptionParser::MissingArgument if setting.length % 2 != 0
43
43
  # create key-value pairs from setting
44
44
  config = {}
@@ -50,10 +50,16 @@ module Deployman::App::Optionparser
50
50
 
51
51
  # callback
52
52
  options[:callback] = false
53
- opts.on('--callback URL', "callbacks status of installation (running/finished/error), stdout, stderr - as json object") do |setting|
53
+ opts.on('--callback URL', "callbacks status of installation (running/finished/error) + stdout + stderr\n\t\t\t\t\t JSON-Format: { \"status\" => \"running\", \"stdout\" => <STDOUT>, \"stderr\" => <STDERR> }") do |setting|
54
54
  options[:callback] = setting
55
55
  end
56
56
 
57
+ # createfiles from api
58
+ options[:createfiles_from_api] = {}
59
+ opts.on('--createfiles_from_api VALUES', Array, "creates files from given api-urls (works only in combination with --install),\n\t\t\t\t\t VALUES = <api_url1>,<api_url2>,...\n\t\t\t\t\t The api call has to return the file in following json-format:\n\t\t\t\t\t {\"path\":\"path/to/file.txt\",\"content\":\"content of file\"}") do |setting|
60
+ options[:createfiles_from_api] = setting
61
+ end
62
+
57
63
  # help
58
64
  opts.on( '-h', '--help', 'Display help screen' ) do
59
65
  puts opts
@@ -0,0 +1,23 @@
1
+ require 'fileutils'
2
+
3
+ module Deployman::Component::Filemanager
4
+
5
+ # create file
6
+ #
7
+ def self.create_file(path, content)
8
+
9
+ # create unexisting folders from path
10
+ dirname = File.dirname(path)
11
+ unless File.directory?(dirname)
12
+ FileUtils.mkdir_p(dirname)
13
+ end
14
+
15
+ # create file
16
+ # existing file will be overwritten
17
+ File.open(path, 'wb') do |file|
18
+ file.write(content)
19
+ file.close
20
+ end
21
+ end
22
+
23
+ end
@@ -0,0 +1,22 @@
1
+ require 'json'
2
+
3
+ module Deployman::Net::Get
4
+
5
+ def self.send (url)
6
+
7
+ # create http object
8
+ uri = URI.parse(url)
9
+ http = Net::HTTP.new(uri.host, uri.port)
10
+
11
+ # create request object
12
+ request = Net::HTTP::Get.new(uri.request_uri)
13
+
14
+ # do request and get response
15
+ response = http.request(request)
16
+
17
+ # parse JSON to array
18
+ resp_data = JSON.parse(response.body)
19
+
20
+ end
21
+
22
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deployman
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -55,6 +55,7 @@ files:
55
55
  - lib/deployman/component/downloader.rb
56
56
  - lib/deployman/component/spinningclock.rb
57
57
  - lib/deployman/component/output.rb
58
+ - lib/deployman/component/filemanager.rb
58
59
  - lib/deployman/app/postsetup.rb
59
60
  - lib/deployman/app/optionparser.rb
60
61
  - lib/deployman/app/configuration.rb
@@ -62,6 +63,7 @@ files:
62
63
  - lib/deployman/extractor.rb
63
64
  - lib/deployman/component.rb
64
65
  - lib/deployman/extractor/zip.rb
66
+ - lib/deployman/net/get.rb
65
67
  - lib/deployman/net/post.rb
66
68
  - lib/deployman/app.rb
67
69
  - bin/deployman