ormdev 0.0.7 → 0.0.8
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/ormdev/command/create.rb +1 -1
- data/lib/ormdev/command/lint.rb +6 -1
- data/lib/ormdev/command/publish.rb +18 -4
- data/lib/ormdev/command/run.rb +12 -4
- data/lib/ormdev/source/core/run_helper.rb +77 -16
- data/lib/ormdev/source/util/http_util.rb +74 -0
- data/lib/ormdev/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 27324a958a9f1f17ed9fb67551d4feec4d1afead11c973c07fde615274a4b656
|
4
|
+
data.tar.gz: 97aa2fbe11290e69ffa83089955c04f1400db87149233c013ebda71a03aae349
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a8cbcf9a055f8ac0baf8065986dbc231d83aef0418d757191d56627b7824950df2b3e22ed9230d9eab96797e77bf713ea2d9c7ed74278a4fb4a59d67786c34e0
|
7
|
+
data.tar.gz: 77e989221ccba398e69d6b5970b35f77c5ebb852bed5d425395ebf4a7a6de422de32a2fad6dd17b66e70721fd3df48b07d8e8a7b73f08b6c402a9784a8e2c340
|
data/Gemfile.lock
CHANGED
@@ -42,7 +42,7 @@ module OrmDev
|
|
42
42
|
def run
|
43
43
|
create = OrmDev::CreateHelper.new(@name, @fast, @prefix, @template_url)
|
44
44
|
create.setup(@skip)
|
45
|
-
OrmDev::LogUtil.info "
|
45
|
+
OrmDev::LogUtil.info "【创建插件工程】Success!!!, `cd #{@name}` \n `ormdev run ` "
|
46
46
|
end
|
47
47
|
end
|
48
48
|
end
|
data/lib/ormdev/command/lint.rb
CHANGED
@@ -17,12 +17,14 @@ module OrmDev
|
|
17
17
|
|
18
18
|
def self.options
|
19
19
|
[
|
20
|
+
['--source', '依赖库源码更新'],
|
20
21
|
].concat(super)
|
21
22
|
end
|
22
23
|
|
23
24
|
def initialize(argv)
|
24
25
|
@podspec_file = argv.shift_argument
|
25
26
|
@podspec_files = Pathname.pwd.children.select { |pn| pn.extname == '.podspec' }
|
27
|
+
@source = argv.flag?('source', false)
|
26
28
|
super
|
27
29
|
end
|
28
30
|
|
@@ -42,7 +44,10 @@ module OrmDev
|
|
42
44
|
super
|
43
45
|
OrmDev::LogUtil.info '[插件管理] 验证Pod'.green
|
44
46
|
@spec = Pod::Specification.from_file(@podspec_path)
|
45
|
-
|
47
|
+
ORM::SHUtil.run_command("pod cache clean #{@spec.name} --all",'清除Pod缓存',false)
|
48
|
+
pod_lint_command = ''
|
49
|
+
pod_lint_command << "#{@spec.name}_Lib=1" unless @source
|
50
|
+
pod_lint_command << ' pod lib lint --sources=orm,master --allow-warnings --use-libraries --verbose'
|
46
51
|
OrmDev::SHUtil.run_command(pod_lint_command,'更验证Pod',false)
|
47
52
|
end
|
48
53
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'cocoapods'
|
2
2
|
|
3
|
-
require_relative '../source/
|
3
|
+
require_relative '../source/util/http_util'
|
4
4
|
|
5
5
|
module OrmDev
|
6
6
|
class Command
|
@@ -17,12 +17,22 @@ module OrmDev
|
|
17
17
|
|
18
18
|
def self.options
|
19
19
|
[
|
20
|
+
['--account=XXX', '发布第三方插件的账户名'],
|
21
|
+
['--password=XXX', '发布第三方插件的密码'],
|
22
|
+
['--changelog=xxxx', '更新说明'],
|
23
|
+
['--zip=xxx', '插件SDK本地地址,当push-type = 0,是必传'],
|
24
|
+
['--push-type=[0,1,2]', '发布类型:0、替换+push+录入;1、push+录入;2、直接录入'],
|
20
25
|
].concat(super)
|
21
26
|
end
|
22
27
|
|
23
28
|
def initialize(argv)
|
24
29
|
@podspec_file = argv.shift_argument
|
25
30
|
@podspec_files = Pathname.pwd.children.select { |pn| pn.extname == '.podspec' }
|
31
|
+
@account = argv.option('account')
|
32
|
+
@password = argv.option('password')
|
33
|
+
@changelog = argv.option('changelog', '')
|
34
|
+
@push_type = argv.option('push-type').to_i
|
35
|
+
@zip = argv.option('zip')
|
26
36
|
super
|
27
37
|
end
|
28
38
|
|
@@ -37,14 +47,18 @@ module OrmDev
|
|
37
47
|
raise Pod::Informative, 'Multiple podspec file found, please specify one' unless @podspec_files.length == 1
|
38
48
|
@podspec_path = @podspec_files.first
|
39
49
|
end
|
50
|
+
help! '发布类型传值错误' if @push_type < 0 || @push_type > 2
|
51
|
+
if @push_type == 0 then
|
52
|
+
help! '插件zip包地址不能为空' if @zip.nil?
|
53
|
+
help! "插件zip包地址( #{@zip} )不存在" unless File.exist? @zip
|
54
|
+
end
|
40
55
|
end
|
41
56
|
|
42
57
|
def run
|
43
58
|
super
|
44
59
|
OrmDev::LogUtil.info '[插件发布] '.green
|
45
|
-
|
46
|
-
|
47
|
-
OrmDev::LogUtil.info "Success!!! Please run command:\n orm ipa \#{platform}"
|
60
|
+
info = OrmDev::HTTPUtil.send_pulish_plugin_http(@account, @password, @push_type, @podspec_path, @zip, @changelog)
|
61
|
+
OrmDev::LogUtil.info "插件发布完成!!! #{info}"
|
48
62
|
end
|
49
63
|
end
|
50
64
|
end
|
data/lib/ormdev/command/run.rb
CHANGED
@@ -5,10 +5,16 @@ require_relative '../source/core/run_helper'
|
|
5
5
|
module OrmDev
|
6
6
|
class Command
|
7
7
|
class Run < Command
|
8
|
-
self.summary = '运行插件发布整个流程[
|
8
|
+
self.summary = '运行插件发布整个流程[检查运行环境、打包静态库、归档framework]'
|
9
9
|
self.description = <<-DESC
|
10
|
-
运行插件发布整个流程.
|
11
10
|
指定'插件名.podspec'的路径`PATH`。
|
11
|
+
运行插件发布整个流程【检查运行环境、打包静态库、归档framework】。
|
12
|
+
【*】在运行前完成版本控制和'插件名.podspec'配置
|
13
|
+
【*】如果暂时未加入版本控制,命令提供临时解决方案:
|
14
|
+
1、启动Mac系统默认Apache `sudo apachectl restart`;
|
15
|
+
2、归档源码`插件名.zip`到本机`/Library/WebServer/Documents/OrmPlugins`目录下;
|
16
|
+
3、配置地址`http://localhost/插件名.zip`。
|
17
|
+
在此期间需要获取系统权限,需要输入开机密码。
|
12
18
|
DESC
|
13
19
|
|
14
20
|
self.arguments = [
|
@@ -17,12 +23,14 @@ module OrmDev
|
|
17
23
|
|
18
24
|
def self.options
|
19
25
|
[
|
26
|
+
['--without-version-control', '没有版本控制'],
|
20
27
|
].concat(super)
|
21
28
|
end
|
22
29
|
|
23
30
|
def initialize(argv)
|
24
31
|
@podspec_file = argv.shift_argument
|
25
32
|
@podspec_files = Pathname.pwd.children.select { |pn| pn.extname == '.podspec' }
|
33
|
+
@no_version_control = argv.flag?('without-version-control')
|
26
34
|
super
|
27
35
|
end
|
28
36
|
|
@@ -43,8 +51,8 @@ module OrmDev
|
|
43
51
|
super
|
44
52
|
OrmDev::LogUtil.info '[插件发布] '.green
|
45
53
|
installer = OrmDev::RunHelper.new(@podspec_path)
|
46
|
-
installer.setup()
|
47
|
-
OrmDev::LogUtil.info "Success!!!
|
54
|
+
framework_zip = installer.setup(@no_version_control)
|
55
|
+
OrmDev::LogUtil.info "Success!!! `ormdev publish #{@podspec_path} --zip=#{framework_zip} --push-type=0`"
|
48
56
|
end
|
49
57
|
end
|
50
58
|
end
|
@@ -6,32 +6,48 @@ require_relative '../util/sh_util'
|
|
6
6
|
module OrmDev
|
7
7
|
class RunHelper
|
8
8
|
attr_reader :spec
|
9
|
+
attr_reader :podspec_path
|
9
10
|
|
10
11
|
def initialize(path)
|
12
|
+
@podspec_path = path;
|
11
13
|
@spec = Pod::Specification.from_file(path)
|
12
14
|
end
|
13
15
|
|
14
|
-
def setup()
|
16
|
+
def setup(no_version_control)
|
15
17
|
task_start_time = Time.now
|
16
18
|
time_info_logs = ["开始运行:#{task_start_time}"]
|
17
19
|
start_time = task_start_time
|
18
20
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
21
|
+
check_environment
|
22
|
+
current_time = Time.new
|
23
|
+
time_info_logs << "检查运行环境:#{current_time - start_time}秒"
|
24
|
+
start_time = current_time
|
25
|
+
|
26
|
+
if no_version_control then
|
27
|
+
archive_zip_source
|
28
|
+
current_time = Time.new
|
29
|
+
time_info_logs << "源码没有版本控制,归档到本机WebServer:#{current_time - start_time}秒"
|
30
|
+
start_time = current_time
|
31
|
+
end
|
28
32
|
|
29
|
-
|
33
|
+
pod_package_framwork
|
30
34
|
current_time = Time.new
|
31
|
-
time_info_logs << "
|
35
|
+
time_info_logs << "打包静态库:#{current_time - start_time}秒"
|
36
|
+
start_time = current_time
|
37
|
+
|
38
|
+
result = archive_zip_framwork
|
39
|
+
current_time = Time.new
|
40
|
+
time_info_logs << "压缩静态framework:#{current_time - start_time}秒"
|
41
|
+
start_time = current_time
|
42
|
+
|
43
|
+
# lint_zip_framwork
|
44
|
+
# current_time = Time.new
|
45
|
+
# time_info_logs << "验证静态framework:#{current_time - start_time}秒"
|
46
|
+
# start_time = current_time
|
32
47
|
|
33
48
|
time_info_logs << "#{@spec.name}总耗时:#{Time.new - task_start_time}秒"
|
34
49
|
puts time_info_logs
|
50
|
+
result
|
35
51
|
end
|
36
52
|
|
37
53
|
private
|
@@ -40,9 +56,44 @@ module OrmDev
|
|
40
56
|
OrmDev::SHUtil.run_command('bundle install','检测配置运行环境',false)
|
41
57
|
end
|
42
58
|
|
59
|
+
# 归档源码
|
60
|
+
def archive_zip_source
|
61
|
+
OrmDev::LogUtil.print_command '启动系统Apache服务,请求获取root权限,请输入root密码:'
|
62
|
+
OrmDev::SHUtil.run_command('sudo apachectl restart','启动系统Apache服务', true)
|
63
|
+
source_path = "#{@spec.name}.zip"
|
64
|
+
FileUtils.rm_rf(source_path) if File::exist?(source_path)
|
65
|
+
Zip::File.open(source_path, Zip::File::CREATE) do |zipfile|
|
66
|
+
[
|
67
|
+
"#{@spec.name}.podspec",
|
68
|
+
'LICENSE',
|
69
|
+
'README.md',
|
70
|
+
'Dependencies',
|
71
|
+
"#{@spec.name}/Assets",
|
72
|
+
"#{@spec.name}/Classes",
|
73
|
+
].each do |filename|
|
74
|
+
add_file_to_zip(filename, zipfile)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
OrmDev::LogUtil.print_success "归档压缩完成,#{source_path}"
|
78
|
+
zip_root_path = '/Library/WebServer/Documents/OrmPlugins'
|
79
|
+
unless Dir.exist?(zip_root_path) then
|
80
|
+
OrmDev::LogUtil.print_command '创建插件根目录,请输入root密码:'
|
81
|
+
OrmDev::SHUtil.run_command("sudo mkdir -p #{zip_root_path}",'创建插件根目录', true)
|
82
|
+
OrmDev::SHUtil.run_command("sudo chown #{ENV["USER"]} #{zip_root_path}",'初始化插件根目录权限', true)
|
83
|
+
end
|
84
|
+
destination_path = File.join(zip_root_path, "#{@spec.name}.zip")
|
85
|
+
FileUtils.rm_rf(destination_path) if File.exist?(destination_path)
|
86
|
+
FileUtils.cp_r(source_path, destination_path)
|
87
|
+
FileUtils.rm_rf(source_path)
|
88
|
+
zip_http_path = "http://localhost/OrmPlugins/#{@spec.name}.zip"
|
89
|
+
# 替换配置文件
|
90
|
+
version_text = File.read(@podspec_path).sub(/^( )*orm_sdk_source(.*)\n/, " orm_sdk_source = { :http => '#{zip_http_path}'}\n")
|
91
|
+
File.open(@podspec_path, "w") { |file| file.puts version_text }
|
92
|
+
end
|
93
|
+
|
43
94
|
# 静态化
|
44
95
|
def pod_package_framwork
|
45
|
-
pod_package_command = "
|
96
|
+
pod_package_command = "pod package #{@spec.name}.podspec --exclude-deps --no-mangle --force --spec-sources=git@gitee.com:mvn/ios.git,https://github.com/CocoaPods/Specs.git --verbose"
|
46
97
|
OrmDev::SHUtil.run_command(pod_package_command,'静态化插件')
|
47
98
|
destination_path = "#{@spec.name}/lib"
|
48
99
|
source_path = "#{@spec.name}-#{@spec.version}"
|
@@ -58,8 +109,18 @@ module OrmDev
|
|
58
109
|
end
|
59
110
|
end
|
60
111
|
|
112
|
+
# 验证静态库
|
113
|
+
# def lint_zip_framwork
|
114
|
+
# OrmDev::LogUtil.info '[插件管理] 验证Pod'.green
|
115
|
+
# ORM::SHUtil.run_command("pod cache clean #{@spec.name} --all",'清除Pod缓存',false)
|
116
|
+
# pod_lint_command = ''
|
117
|
+
# pod_lint_command << "#{@spec.name}_Lib=1"
|
118
|
+
# pod_lint_command << ' pod lib lint --sources=orm,master --allow-warnings --use-libraries --verbose'
|
119
|
+
# OrmDev::SHUtil.run_command(pod_lint_command,'更验证Pod',true)
|
120
|
+
# end
|
121
|
+
|
61
122
|
# 压缩上传
|
62
|
-
def
|
123
|
+
def archive_zip_framwork
|
63
124
|
zip_path = "#{@spec.name}.zip"
|
64
125
|
FileUtils.rm_rf(zip_path) if File::exist?(zip_path)
|
65
126
|
Zip::File.open(zip_path, Zip::File::CREATE) do |zipfile|
|
@@ -73,12 +134,12 @@ module OrmDev
|
|
73
134
|
add_file_to_zip(filename, zipfile)
|
74
135
|
end
|
75
136
|
end
|
76
|
-
zip_path
|
77
137
|
OrmDev::LogUtil.print_success "运行成功,#{zip_path}"
|
138
|
+
zip_path
|
78
139
|
end
|
79
140
|
|
80
141
|
def add_file_to_zip(file_path, zip)
|
81
|
-
|
142
|
+
return unless File::exist?(file_path)
|
82
143
|
if File.directory?(file_path)
|
83
144
|
Dir.foreach(file_path) do |sub_file_name|
|
84
145
|
add_file_to_zip("#{file_path}/#{sub_file_name}", zip) unless sub_file_name == '.' or sub_file_name == '..'
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
require 'faraday_middleware'
|
3
|
+
|
4
|
+
module OrmDev
|
5
|
+
class HTTPUtil
|
6
|
+
|
7
|
+
API_THIRD_PLUGIN_PUBLISH = 'http://192.168.2.110:8081/soops/sword/portal?SwordControllerName=uploadPlugin'.freeze #测试地址
|
8
|
+
|
9
|
+
def self.send_pulish_plugin_http(username, password, publish_type, podspec_path, zip_path, changelog = '')
|
10
|
+
@spec = Pod::Specification.from_file(podspec_path)
|
11
|
+
cim_sdk_version = ''
|
12
|
+
@spec.dependencies.each do |dep|
|
13
|
+
if 'CIMSDK'.eql? dep.name
|
14
|
+
cim_sdk_version = plugin_version_from(dep.requirement.requirements.flatten.last.to_s)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# start upload
|
19
|
+
conn_options = {
|
20
|
+
request: {
|
21
|
+
timeout: 1000,
|
22
|
+
open_timeout: 300
|
23
|
+
}
|
24
|
+
}
|
25
|
+
pgyer_client = Faraday.new(nil, conn_options) do |c|
|
26
|
+
c.request :multipart
|
27
|
+
c.request :url_encoded
|
28
|
+
c.response :json, content_type: /\bjson$/
|
29
|
+
c.adapter :net_http
|
30
|
+
end
|
31
|
+
|
32
|
+
params = {
|
33
|
+
'username' => username || ENV['ORMDEV_CLT_USERNAME'],
|
34
|
+
'password' => password || ENV['ORMDEV_CLT_PASSWORD'],
|
35
|
+
'version' => OrmDev::VERSION,
|
36
|
+
'platform' => 1,# 0:android,1:ios
|
37
|
+
'type' => 1,# ios:0,1,2
|
38
|
+
'cipBaseVersion' => cim_sdk_version, #base版本号
|
39
|
+
'desc' => changelog,
|
40
|
+
}
|
41
|
+
unless podspec_path.nil? then
|
42
|
+
params[File.basename(podspec_path)] = Faraday::UploadIO.new(podspec_path, 'application/octet-stream') if File.exist?(podspec_path)
|
43
|
+
end
|
44
|
+
unless zip_path.nil? then
|
45
|
+
params[File.basename(zip_path)] = Faraday::UploadIO.new(zip_path, 'application/octet-stream') if File.exist?(zip_path)
|
46
|
+
end
|
47
|
+
OrmDev::LogUtil.info '【发布第三方插件】Start upload ...'
|
48
|
+
|
49
|
+
api = ENV['ORMDEV_CLT_API_THIRD_PLUGIN_PUBLISH'] || API_THIRD_PLUGIN_PUBLISH
|
50
|
+
response = pgyer_client.post api, params
|
51
|
+
|
52
|
+
info = response.body
|
53
|
+
OrmDev::LogUtil.info "【第三方插件发布】#{api}"
|
54
|
+
OrmDev::LogUtil.info "【第三方插件发布】Upload complate: #{info}"
|
55
|
+
if info && info['status'] && info['status'] == '0000' then
|
56
|
+
OrmDev::LogUtil.info '发布成功'
|
57
|
+
end
|
58
|
+
info
|
59
|
+
end
|
60
|
+
|
61
|
+
private
|
62
|
+
|
63
|
+
def self.plugin_version_from(pod_version)
|
64
|
+
if pod_version.nil? then
|
65
|
+
''
|
66
|
+
else
|
67
|
+
arr = pod_version.split('.')
|
68
|
+
arr.delete_at(arr.size - 1)
|
69
|
+
arr.join('.')
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
end
|
data/lib/ormdev/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ormdev
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- devorm
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-12-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: claide
|
@@ -141,6 +141,7 @@ files:
|
|
141
141
|
- lib/ormdev/command/setup.rb
|
142
142
|
- lib/ormdev/source/core/create_helper.rb
|
143
143
|
- lib/ormdev/source/core/run_helper.rb
|
144
|
+
- lib/ormdev/source/util/http_util.rb
|
144
145
|
- lib/ormdev/source/util/log_util.rb
|
145
146
|
- lib/ormdev/source/util/sh_util.rb
|
146
147
|
- lib/ormdev/version.rb
|