erhu 0.1.7 → 0.1.9
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/ErhuFile +3 -0
- data/Gemfile.lock +27 -16
- data/README.md +11 -0
- data/demo/.env +2 -0
- data/erhu.gemspec +3 -2
- data/lib/erhu/app.rb +16 -22
- data/lib/erhu/cli.rb +5 -0
- data/lib/erhu/init.rb +6 -2
- data/lib/erhu/version.rb +1 -1
- data/lib/erhu.rb +5 -1
- metadata +30 -14
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: effacda7257f189d3c30347c41dfad2ac24be6bb118177f3d0f8255e322c3304
|
|
4
|
+
data.tar.gz: 3d7316750b2ad60f0381e7adc361a92f16577d0715c7352f5067e88177a7dbcc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5f501481fc3001590e11cbaad5a3a4aab581b8897e97594926da3650b224a1d5841b972887540cd50b934d051f26fc51c22d371261ca2acae6b85d1f7e84cdb5
|
|
7
|
+
data.tar.gz: b25282c0fe08383fbdc3b513544775573481b1cd3cc0b5f6cbedc8f74ca70fc2f2e4d38d8df38c744479f38f20c2ba7a5065240e4b421b01f75f2765bc425748
|
data/ErhuFile
ADDED
data/Gemfile.lock
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
erhu (0.1.
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
erhu (0.1.8)
|
|
5
|
+
dotenv (~> 2.8, >= 2.8.1)
|
|
6
|
+
down (~> 5.0)
|
|
7
7
|
git (~> 1.18)
|
|
8
|
+
http (~> 5.0)
|
|
8
9
|
pastel (~> 0.8.0)
|
|
9
10
|
rubyzip (~> 2.3, >= 2.3.2)
|
|
10
11
|
tty-command (~> 0.10.1)
|
|
@@ -17,26 +18,34 @@ GEM
|
|
|
17
18
|
specs:
|
|
18
19
|
addressable (2.8.1)
|
|
19
20
|
public_suffix (>= 2.0.2, < 6.0)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
domain_name (0.5.20190701)
|
|
22
|
+
unf (>= 0.0.5, < 1.0.0)
|
|
23
|
+
dotenv (2.8.1)
|
|
24
|
+
down (5.4.0)
|
|
25
|
+
addressable (~> 2.8)
|
|
26
|
+
ffi (1.15.5)
|
|
27
|
+
ffi-compiler (1.0.1)
|
|
28
|
+
ffi (>= 1.0.0)
|
|
29
|
+
rake
|
|
27
30
|
git (1.18.0)
|
|
28
31
|
addressable (~> 2.8)
|
|
29
32
|
rchardet (~> 1.8)
|
|
30
|
-
|
|
33
|
+
http (5.1.1)
|
|
34
|
+
addressable (~> 2.8)
|
|
35
|
+
http-cookie (~> 1.0)
|
|
36
|
+
http-form_data (~> 2.2)
|
|
37
|
+
llhttp-ffi (~> 0.4.0)
|
|
38
|
+
http-cookie (1.0.5)
|
|
39
|
+
domain_name (~> 0.5)
|
|
40
|
+
http-form_data (2.3.0)
|
|
41
|
+
llhttp-ffi (0.4.0)
|
|
42
|
+
ffi-compiler (~> 1.0)
|
|
43
|
+
rake (~> 13.0)
|
|
31
44
|
pastel (0.8.0)
|
|
32
45
|
tty-color (~> 0.5)
|
|
33
|
-
pry (0.14.2)
|
|
34
|
-
coderay (~> 1.1)
|
|
35
|
-
method_source (~> 1.0)
|
|
36
46
|
public_suffix (5.0.1)
|
|
37
47
|
rake (13.0.6)
|
|
38
48
|
rchardet (1.8.0)
|
|
39
|
-
ruby2_keywords (0.0.5)
|
|
40
49
|
rubyzip (2.3.2)
|
|
41
50
|
strings-ansi (0.2.0)
|
|
42
51
|
tty-color (0.6.0)
|
|
@@ -52,6 +61,9 @@ GEM
|
|
|
52
61
|
tty-screen (0.8.1)
|
|
53
62
|
tty-spinner (0.9.3)
|
|
54
63
|
tty-cursor (~> 0.7)
|
|
64
|
+
unf (0.1.4)
|
|
65
|
+
unf_ext
|
|
66
|
+
unf_ext (0.0.8.2)
|
|
55
67
|
unicode-display_width (2.4.2)
|
|
56
68
|
|
|
57
69
|
PLATFORMS
|
|
@@ -61,7 +73,6 @@ PLATFORMS
|
|
|
61
73
|
|
|
62
74
|
DEPENDENCIES
|
|
63
75
|
erhu!
|
|
64
|
-
pry
|
|
65
76
|
rake (~> 13.0)
|
|
66
77
|
|
|
67
78
|
BUNDLED WITH
|
data/README.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Erhu
|
|
2
2
|
|
|
3
|
+
<div align="left">
|
|
4
|
+
<a href="https://rubygems.org/gems/erhu" alt="RubyGems Version">
|
|
5
|
+
<img src="https://img.shields.io/gem/v/erhu.svg?style=flat-square&label=current-version" alt="RubyGems Version" />
|
|
6
|
+
</a>
|
|
7
|
+
</div>
|
|
8
|
+
|
|
9
|
+
|
|
3
10
|
一个创新的包管理,可以用来管理C语言的包,或者管理算法的包,理论可以用在各种地方,目前主要支持C++,算法管理。
|
|
4
11
|
|
|
5
12
|
## install
|
|
@@ -33,6 +40,10 @@ package "https://github.com/DaveGamble/cJSON/archive/refs/tags/v1.7.15.zip", nam
|
|
|
33
40
|
|
|
34
41
|
## 高级用法
|
|
35
42
|
|
|
43
|
+
### 项目环境变量使用
|
|
44
|
+
erhu 集成了dotenv,支持项目中通过.env来指定环境变量,具体可以查看demo目录中的.env文件
|
|
45
|
+
.env文件中的环境变量在 `Rakefile` 和 `erhu exec` 中可以使用
|
|
46
|
+
|
|
36
47
|
### 系统判断
|
|
37
48
|
|
|
38
49
|
```ruby
|
data/demo/.env
ADDED
data/erhu.gemspec
CHANGED
|
@@ -36,9 +36,10 @@ Gem::Specification.new do |spec|
|
|
|
36
36
|
spec.add_dependency 'tty-spinner', '~> 0.9.3'
|
|
37
37
|
spec.add_dependency 'pastel', '~> 0.8.0'
|
|
38
38
|
spec.add_dependency 'git', '~> 1.18'
|
|
39
|
-
spec.add_dependency
|
|
40
|
-
spec.add_dependency
|
|
39
|
+
spec.add_dependency "down", "~> 5.0"
|
|
40
|
+
spec.add_dependency "http", "~> 5.0"
|
|
41
41
|
spec.add_dependency 'rubyzip', '~> 2.3', '>= 2.3.2'
|
|
42
|
+
spec.add_dependency 'dotenv', '~> 2.8', '>= 2.8.1'
|
|
42
43
|
|
|
43
44
|
# Uncomment to register a new dependency of your gem
|
|
44
45
|
# spec.add_dependency "example-gem", "~> 1.0"
|
data/lib/erhu/app.rb
CHANGED
|
@@ -2,17 +2,17 @@ module Erhu
|
|
|
2
2
|
class App
|
|
3
3
|
attr_accessor :erhufile
|
|
4
4
|
def initialize(erhufile_path=nil)
|
|
5
|
-
@erhufile = erhufile_path || File.join(Dir.pwd, "
|
|
5
|
+
@erhufile = erhufile_path || File.join(Dir.pwd, "ErhuFile")
|
|
6
6
|
|
|
7
7
|
@erhu_path = File.join(Dir.pwd, ".erhu")
|
|
8
8
|
unless Dir.exist?(@erhu_path)
|
|
9
9
|
FileUtils.mkdir_p(@erhu_path)
|
|
10
10
|
puts "Created #{@erhu_path}"
|
|
11
|
-
end
|
|
11
|
+
end
|
|
12
12
|
@database_path = File.join(@erhu_path, "database.yml")
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
def database
|
|
15
|
+
def database
|
|
16
16
|
if File.exist?(@database_path)
|
|
17
17
|
@database ||= YAML.load_file(@database_path) || {}
|
|
18
18
|
else
|
|
@@ -77,25 +77,19 @@ module Erhu
|
|
|
77
77
|
return
|
|
78
78
|
end
|
|
79
79
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
File.open(package_file_path, 'w') do |f|
|
|
97
|
-
f.write(streamed.join)
|
|
98
|
-
end
|
|
80
|
+
bar = TTY::ProgressBar.new("downloading #{package_name} :percent [:bar]", total: 50)
|
|
81
|
+
total_size = 0
|
|
82
|
+
|
|
83
|
+
http.download package_url, destination: package_file_path,
|
|
84
|
+
content_length_proc: -> (content_length) {
|
|
85
|
+
total_size = content_length
|
|
86
|
+
},
|
|
87
|
+
progress_proc: -> (progress) {
|
|
88
|
+
if total_size > 0
|
|
89
|
+
bar.ratio = progress / total_size.to_f
|
|
90
|
+
end
|
|
91
|
+
}
|
|
92
|
+
bar.finish
|
|
99
93
|
|
|
100
94
|
unless block.blank?
|
|
101
95
|
block.call(package_file_path, self)
|
data/lib/erhu/cli.rb
CHANGED
|
@@ -11,6 +11,7 @@ module Erhu
|
|
|
11
11
|
puts """
|
|
12
12
|
erhu init -> init your project
|
|
13
13
|
erhu install(options) -> install your project depends
|
|
14
|
+
erhu exec -> run some shell (add .env to ENV)
|
|
14
15
|
"""
|
|
15
16
|
exit
|
|
16
17
|
end
|
|
@@ -46,6 +47,10 @@ module Erhu
|
|
|
46
47
|
Erhu::App.new.run
|
|
47
48
|
end
|
|
48
49
|
|
|
50
|
+
subcommands['exec'] = Proc.new do |args|
|
|
51
|
+
exec args.join(" ")
|
|
52
|
+
end
|
|
53
|
+
|
|
49
54
|
if ARGV.blank?
|
|
50
55
|
Erhu::App.new.run
|
|
51
56
|
elsif subcommands.key?(ARGV.first)
|
data/lib/erhu/init.rb
CHANGED
|
@@ -6,12 +6,12 @@ require "pastel"
|
|
|
6
6
|
require 'fileutils'
|
|
7
7
|
require "uri"
|
|
8
8
|
require 'yaml'
|
|
9
|
-
require 'faraday'
|
|
10
|
-
require 'faraday/follow_redirects'
|
|
11
9
|
require 'tempfile'
|
|
12
10
|
require 'zip'
|
|
13
11
|
require 'git'
|
|
14
12
|
require 'optparse'
|
|
13
|
+
require "down/http"
|
|
14
|
+
require 'dotenv'
|
|
15
15
|
|
|
16
16
|
class Object
|
|
17
17
|
def blank?
|
|
@@ -52,6 +52,10 @@ def unzip(zip_file_path, target_directory)
|
|
|
52
52
|
spinner.stop("Done!")
|
|
53
53
|
end
|
|
54
54
|
|
|
55
|
+
def http
|
|
56
|
+
http = Down::Http.new
|
|
57
|
+
end
|
|
58
|
+
|
|
55
59
|
class Cmd
|
|
56
60
|
def initialize(pty: true, uuid: false, color: true, printer: :pretty)
|
|
57
61
|
@cmd = TTY::Command.new(pty: pty, uuid: uuid, color: color, pretty: printer)
|
data/lib/erhu/version.rb
CHANGED
data/lib/erhu.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: erhu
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.9
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- MJ
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2023-03-
|
|
11
|
+
date: 2023-03-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: tty-platform
|
|
@@ -95,39 +95,33 @@ dependencies:
|
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
96
|
version: '1.18'
|
|
97
97
|
- !ruby/object:Gem::Dependency
|
|
98
|
-
name:
|
|
98
|
+
name: down
|
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
|
100
100
|
requirements:
|
|
101
101
|
- - "~>"
|
|
102
102
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: '
|
|
104
|
-
- - ">="
|
|
105
|
-
- !ruby/object:Gem::Version
|
|
106
|
-
version: 2.7.4
|
|
103
|
+
version: '5.0'
|
|
107
104
|
type: :runtime
|
|
108
105
|
prerelease: false
|
|
109
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
110
107
|
requirements:
|
|
111
108
|
- - "~>"
|
|
112
109
|
- !ruby/object:Gem::Version
|
|
113
|
-
version: '
|
|
114
|
-
- - ">="
|
|
115
|
-
- !ruby/object:Gem::Version
|
|
116
|
-
version: 2.7.4
|
|
110
|
+
version: '5.0'
|
|
117
111
|
- !ruby/object:Gem::Dependency
|
|
118
|
-
name:
|
|
112
|
+
name: http
|
|
119
113
|
requirement: !ruby/object:Gem::Requirement
|
|
120
114
|
requirements:
|
|
121
115
|
- - "~>"
|
|
122
116
|
- !ruby/object:Gem::Version
|
|
123
|
-
version:
|
|
117
|
+
version: '5.0'
|
|
124
118
|
type: :runtime
|
|
125
119
|
prerelease: false
|
|
126
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
127
121
|
requirements:
|
|
128
122
|
- - "~>"
|
|
129
123
|
- !ruby/object:Gem::Version
|
|
130
|
-
version:
|
|
124
|
+
version: '5.0'
|
|
131
125
|
- !ruby/object:Gem::Dependency
|
|
132
126
|
name: rubyzip
|
|
133
127
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -148,6 +142,26 @@ dependencies:
|
|
|
148
142
|
- - ">="
|
|
149
143
|
- !ruby/object:Gem::Version
|
|
150
144
|
version: 2.3.2
|
|
145
|
+
- !ruby/object:Gem::Dependency
|
|
146
|
+
name: dotenv
|
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
|
148
|
+
requirements:
|
|
149
|
+
- - "~>"
|
|
150
|
+
- !ruby/object:Gem::Version
|
|
151
|
+
version: '2.8'
|
|
152
|
+
- - ">="
|
|
153
|
+
- !ruby/object:Gem::Version
|
|
154
|
+
version: 2.8.1
|
|
155
|
+
type: :runtime
|
|
156
|
+
prerelease: false
|
|
157
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
158
|
+
requirements:
|
|
159
|
+
- - "~>"
|
|
160
|
+
- !ruby/object:Gem::Version
|
|
161
|
+
version: '2.8'
|
|
162
|
+
- - ">="
|
|
163
|
+
- !ruby/object:Gem::Version
|
|
164
|
+
version: 2.8.1
|
|
151
165
|
description: Erhu 是一个动态可编程的包管理系统
|
|
152
166
|
email:
|
|
153
167
|
- tywf91@gmail.com
|
|
@@ -156,10 +170,12 @@ executables:
|
|
|
156
170
|
extensions: []
|
|
157
171
|
extra_rdoc_files: []
|
|
158
172
|
files:
|
|
173
|
+
- ErhuFile
|
|
159
174
|
- Gemfile
|
|
160
175
|
- Gemfile.lock
|
|
161
176
|
- README.md
|
|
162
177
|
- Rakefile
|
|
178
|
+
- demo/.env
|
|
163
179
|
- demo/CMakeLists.txt
|
|
164
180
|
- demo/ErhuFile
|
|
165
181
|
- demo/Gemfile
|