erhu 0.1.7 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5e2903daee3341d94783a9012d6d9296dbcbf7b641f6e341bfcb417eb7e2718b
4
- data.tar.gz: 2fc00515e80deb9db2fe491f585769a5bf9ef2f631d7ae22442ed011a7635590
3
+ metadata.gz: effacda7257f189d3c30347c41dfad2ac24be6bb118177f3d0f8255e322c3304
4
+ data.tar.gz: 3d7316750b2ad60f0381e7adc361a92f16577d0715c7352f5067e88177a7dbcc
5
5
  SHA512:
6
- metadata.gz: e2d647367aaf493359d3fbbbd7f3a68c15f69fa7bb17b426e71641f8039cdb812445b7ff9724a0b5b52e34d26446a5ccffe93d1c9ede0507e891e1425db97cae
7
- data.tar.gz: ec3105639a41b1409419797a505ff3f211d4d18362513425e3feee3cc9c5dc7209a5a326235d91375f8b191713b25f67f724e8cac595b233da0b4e188a8d0876
6
+ metadata.gz: 5f501481fc3001590e11cbaad5a3a4aab581b8897e97594926da3650b224a1d5841b972887540cd50b934d051f26fc51c22d371261ca2acae6b85d1f7e84cdb5
7
+ data.tar.gz: b25282c0fe08383fbdc3b513544775573481b1cd3cc0b5f6cbedc8f74ca70fc2f2e4d38d8df38c744479f38f20c2ba7a5065240e4b421b01f75f2765bc425748
data/ErhuFile ADDED
@@ -0,0 +1,3 @@
1
+ target "./thirdparty"
2
+ # git "https://github.com/Tencent/rapidjson", tag: "v1.1.0"
3
+ package "https://github.com/DaveGamble/cJSON/archive/refs/tags/v1.7.15.zip", name: "cjson"
data/Gemfile.lock CHANGED
@@ -1,10 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- erhu (0.1.4)
5
- faraday (~> 2.7, >= 2.7.4)
6
- faraday-follow_redirects (~> 0.3.0)
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
- coderay (1.1.3)
21
- faraday (2.7.4)
22
- faraday-net_http (>= 2.0, < 3.1)
23
- ruby2_keywords (>= 0.0.4)
24
- faraday-follow_redirects (0.3.0)
25
- faraday (>= 1, < 3)
26
- faraday-net_http (3.0.2)
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
- method_source (1.0.0)
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
@@ -0,0 +1,2 @@
1
+ WASM_THINKER_SDK="/path/to/wasm-thinker-sdk"
2
+ WASI_TOOLCHAIN_PATH="/path/to/wasi-sdk-17.0"
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 'faraday', '~> 2.7', '>= 2.7.4'
40
- spec.add_dependency 'faraday-follow_redirects', '~> 0.3.0'
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, "erhuFile")
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
- conn = Faraday.new do |faraday|
81
- faraday.use Faraday::FollowRedirects::Middleware
82
- faraday.adapter Faraday.default_adapter
83
- end
84
-
85
- bar = TTY::ProgressBar.new("Downloading #{package_name} [:bar] :percent", total: 50, interval: 0.1)
86
-
87
- streamed = []
88
- response = conn.get(package_url) do |req|
89
- req.options.on_data = Proc.new do |chunk, overall_received_bytes, env|
90
- content_length = env.response_headers["content-length"]&.to_f
91
- bar.ratio = overall_received_bytes / content_length if !content_length.blank? && content_length > 0
92
- streamed << chunk
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Erhu
4
- VERSION = "0.1.7"
4
+ VERSION = "0.1.9"
5
5
  end
data/lib/erhu.rb CHANGED
@@ -7,4 +7,8 @@ require_relative "erhu/cli"
7
7
  module Erhu
8
8
  class Error < StandardError; end
9
9
  # Your code goes here...
10
- end
10
+
11
+ module_eval do
12
+ Dotenv.load
13
+ end
14
+ end
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.7
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-28 00:00:00.000000000 Z
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: faraday
98
+ name: down
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '2.7'
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: '2.7'
114
- - - ">="
115
- - !ruby/object:Gem::Version
116
- version: 2.7.4
110
+ version: '5.0'
117
111
  - !ruby/object:Gem::Dependency
118
- name: faraday-follow_redirects
112
+ name: http
119
113
  requirement: !ruby/object:Gem::Requirement
120
114
  requirements:
121
115
  - - "~>"
122
116
  - !ruby/object:Gem::Version
123
- version: 0.3.0
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: 0.3.0
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