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 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