erhu 0.1.2 → 0.1.4

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: 237185a4219ba722ab6f49e85f31137aa8cd9933466fcc7d76f4b4793fb4a055
4
- data.tar.gz: 698cb55b43b84f53f93dd0f2fd62230bb681bc2d03ef064f1b095dc247c82f50
3
+ metadata.gz: c32c20c8ee9ba7e4091402f5921f6e534269f37df35b4eb7fc3d84e210bd561c
4
+ data.tar.gz: 430ab7355c7f954f1b9c884ec931462057ada64cafaf3e42e661aa1421d663d8
5
5
  SHA512:
6
- metadata.gz: 893b24dc9ab9e7044e285353a737d3e739c4bca23e34055b04b0df061363a28cc24751a7eb11c6c8cd34243830e3d6c84ddce6fb6fc936f751cf93f100fa6c58
7
- data.tar.gz: 2a0b849301d102a88f2463f9a5ce8999e961e83fc123e123459fcacd2d48f1ac6fb88d2289b2f0f1bed01951db767c4a3e510deee0ee9b09ddf0997447dff906
6
+ metadata.gz: 1733da1090e350510005ecf8021fbe097e493af7fc86a9d6d84d1e300b1f4bef60f9e54fe76bdabb3071ff808fde9266e4e351c7017ce0421ea026dc9f9cea77
7
+ data.tar.gz: 6b5b3cf0073821a78b6eb5ad9cb04e16473aeb5497be11f10c7f38c5a537437599527482bc845aa1b833baff8543353a61003e92639b297206d00020d54c4638
data/Gemfile CHANGED
@@ -6,14 +6,14 @@ source "https://rubygems.org"
6
6
  gemspec
7
7
 
8
8
  gem "rake", "~> 13.0"
9
- gem 'tty-platform'
10
- gem "tty-command"
11
- gem "tty-progressbar"
12
- gem "tty-spinner"
9
+ # gem 'tty-platform'
10
+ # gem "tty-command"
11
+ # gem "tty-progressbar"
12
+ # gem "tty-spinner"
13
13
 
14
- gem "pastel"
15
- gem "rugged"
14
+ # gem "pastel"
15
+ # gem "rugged"
16
16
 
17
- gem 'faraday'
18
- gem 'faraday-follow_redirects'
19
- gem 'rubyzip'
17
+ # gem 'faraday'
18
+ # gem 'faraday-follow_redirects'
19
+ # gem 'rubyzip'
data/Gemfile.lock ADDED
@@ -0,0 +1,56 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ erhu (0.1.4)
5
+ faraday (~> 2.7, >= 2.7.4)
6
+ faraday-follow_redirects (~> 0.3.0)
7
+ pastel (~> 0.8.0)
8
+ rubyzip (~> 2.3, >= 2.3.2)
9
+ rugged (~> 1.6, >= 1.6.2)
10
+ tty-command (~> 0.10.1)
11
+ tty-platform (~> 0.3.0)
12
+ tty-progressbar (~> 0.18.2)
13
+ tty-spinner (~> 0.9.3)
14
+
15
+ GEM
16
+ remote: https://rubygems.org/
17
+ specs:
18
+ faraday (2.7.4)
19
+ faraday-net_http (>= 2.0, < 3.1)
20
+ ruby2_keywords (>= 0.0.4)
21
+ faraday-follow_redirects (0.3.0)
22
+ faraday (>= 1, < 3)
23
+ faraday-net_http (3.0.2)
24
+ pastel (0.8.0)
25
+ tty-color (~> 0.5)
26
+ rake (13.0.6)
27
+ ruby2_keywords (0.0.5)
28
+ rubyzip (2.3.2)
29
+ rugged (1.6.2)
30
+ strings-ansi (0.2.0)
31
+ tty-color (0.6.0)
32
+ tty-command (0.10.1)
33
+ pastel (~> 0.8)
34
+ tty-cursor (0.7.1)
35
+ tty-platform (0.3.0)
36
+ tty-progressbar (0.18.2)
37
+ strings-ansi (~> 0.2)
38
+ tty-cursor (~> 0.7)
39
+ tty-screen (~> 0.8)
40
+ unicode-display_width (>= 1.6, < 3.0)
41
+ tty-screen (0.8.1)
42
+ tty-spinner (0.9.3)
43
+ tty-cursor (~> 0.7)
44
+ unicode-display_width (2.4.2)
45
+
46
+ PLATFORMS
47
+ arm64-darwin-22
48
+ ruby
49
+ x86_64-linux
50
+
51
+ DEPENDENCIES
52
+ erhu!
53
+ rake (~> 13.0)
54
+
55
+ BUNDLED WITH
56
+ 2.4.6
data/README.md CHANGED
@@ -1,3 +1,25 @@
1
1
  # Erhu
2
2
 
3
- 一个创新新的包管理,可以用来管理C语音的包,或者管理算法的包
3
+ 一个创新的包管理,可以用来管理C语言的包,或者管理算法的包,理论可以用在各种地方,目前主要支持C++,算法管理。
4
+
5
+ ## install
6
+ ```
7
+ gem install erhu
8
+ ```
9
+
10
+ ## 如何使用
11
+
12
+ 在根目录里面建立`ErhuFile`, 当前也可以使用`erhu init`用于拉取依赖
13
+
14
+ ```ruby
15
+ target "./thirdparty"
16
+ git "https://github.com/Tencent/rapidjson", tag: "v1.1.0"
17
+ git "https://github.com/DaveGamble/cJSON", tag: "v1.7.15"
18
+ git "https://github.com/catchorg/Catch2", tag: "v3.3.2"
19
+
20
+ package "https://github.com/DaveGamble/cJSON/archive/refs/tags/v1.7.15.zip", name: "cjson"
21
+ ```
22
+
23
+ 然后就在项目目录中使用 erhu 命令即可拉取对应的代码
24
+
25
+ 示例项目可以看 example 目录
data/erhu.gemspec ADDED
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/erhu/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "erhu"
7
+ spec.version = Erhu::VERSION
8
+ spec.authors = ["MJ"]
9
+ spec.email = ["tywf91@gmail.com"]
10
+
11
+ spec.summary = "Erhu 一个包管理"
12
+ spec.description = "Erhu 是一个动态可编程的包管理系统"
13
+ spec.homepage = "https://github.com/mjason/erhu.git"
14
+ spec.required_ruby_version = ">= 2.6.0"
15
+
16
+ # spec.metadata["allowed_push_host"] = "https://github.com/mjason/erhu.git'"
17
+
18
+ spec.metadata["homepage_uri"] = spec.homepage
19
+ spec.metadata["source_code_uri"] = "https://github.com/mjason/erhu.git"
20
+ spec.metadata["changelog_uri"] = "https://github.com/mjason/erhu.git"
21
+
22
+ # Specify which files should be added to the gem when it is released.
23
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
24
+ spec.files = Dir.chdir(__dir__) do
25
+ `git ls-files -z`.split("\x0").reject do |f|
26
+ (f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|circleci)|appveyor)})
27
+ end
28
+ end
29
+ spec.bindir = "exe"
30
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
31
+ spec.require_paths = ["lib"]
32
+
33
+ spec.add_dependency "tty-platform", '~> 0.3.0'
34
+ spec.add_dependency 'tty-command', '~> 0.10.1'
35
+ spec.add_dependency 'tty-progressbar', '~> 0.18.2'
36
+ spec.add_dependency 'tty-spinner', '~> 0.9.3'
37
+ spec.add_dependency 'pastel', '~> 0.8.0'
38
+ spec.add_dependency 'rugged', '~> 1.6', '>= 1.6.2'
39
+ spec.add_dependency 'faraday', '~> 2.7', '>= 2.7.4'
40
+ spec.add_dependency 'faraday-follow_redirects', '~> 0.3.0'
41
+ spec.add_dependency 'rubyzip', '~> 2.3', '>= 2.3.2'
42
+
43
+ # Uncomment to register a new dependency of your gem
44
+ # spec.add_dependency "example-gem", "~> 1.0"
45
+
46
+ # For more information and examples about making a new gem, check out our
47
+ # guide at: https://bundler.io/guides/creating_gem.html
48
+ end
data/exe/erhu CHANGED
@@ -4,4 +4,4 @@
4
4
  require "bundler/setup"
5
5
  require_relative "../lib/erhu"
6
6
 
7
- Erhu::App.new.run
7
+ Erhu.cli
data/lib/erhu/cli.rb ADDED
@@ -0,0 +1,60 @@
1
+ require 'optparse'
2
+
3
+ module Erhu
4
+ module_function
5
+ def cli()
6
+ options = {}
7
+ subcommands = {}
8
+
9
+ OptionParser.new do |opts|
10
+ opts.banner = "Usage: erhu [command]"
11
+
12
+ opts.on("-h", "--help", "Prints help") do
13
+ puts """
14
+ erhu init -> init your project
15
+ erhu install(options) -> install your project depends
16
+ """
17
+ exit
18
+ end
19
+
20
+ # Define global options here
21
+
22
+ end.parse!
23
+
24
+ subcommands['init'] = Proc.new do |args|
25
+ File.open("Erhufile", "w") do |f|
26
+ f.puts 'target "./thirdparty"'
27
+ f.puts 'git "https://github.com/Tencent/rapidjson", tag: "v1.1.0"'
28
+ f.puts 'package "https://github.com/DaveGamble/cJSON/archive/refs/tags/v1.7.15.zip", name: "cjson"'
29
+ end
30
+
31
+ # Create Rakefile
32
+ File.open("Rakefile", "w") do |f|
33
+ f.puts 'require "erhu"'
34
+ f.puts
35
+ f.puts 'task :build do |t|'
36
+ f.puts ' Cmd.new().chdir("./build")'
37
+ f.puts ' .run("cmake", "..")'
38
+ f.puts ' .run("make")'
39
+ f.puts 'end'
40
+ f.puts
41
+ f.puts 'task run: [:build] do |t|'
42
+ f.puts ' Cmd.new().chdir("./target").run("./Erhu")'
43
+ f.puts 'end'
44
+ end
45
+ end
46
+
47
+ subcommands['install'] = Proc.new do |args|
48
+ Erhu::App.new.run
49
+ end
50
+
51
+ if ARGV.blank?
52
+ Erhu::App.new.run
53
+ elsif subcommands.key?(ARGV.first)
54
+ subcommands[ARGV.first].call(ARGV[1..-1])
55
+ else
56
+ puts "Invalid command. Use -h or --help for usage information."
57
+ end
58
+
59
+ end
60
+ end
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.2"
4
+ VERSION = "0.1.4"
5
5
  end
data/lib/erhu.rb CHANGED
@@ -2,6 +2,7 @@
2
2
  require_relative "erhu/init"
3
3
  require_relative "erhu/version"
4
4
  require_relative "erhu/app"
5
+ require_relative "erhu/cli"
5
6
 
6
7
  module Erhu
7
8
  class Error < StandardError; end
metadata CHANGED
@@ -1,15 +1,159 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: erhu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.4
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-24 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2023-03-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: tty-platform
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.3.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.3.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: tty-command
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.10.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.10.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: tty-progressbar
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.18.2
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.18.2
55
+ - !ruby/object:Gem::Dependency
56
+ name: tty-spinner
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.9.3
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.9.3
69
+ - !ruby/object:Gem::Dependency
70
+ name: pastel
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.8.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.8.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: rugged
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.6'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 1.6.2
93
+ type: :runtime
94
+ prerelease: false
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '1.6'
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 1.6.2
103
+ - !ruby/object:Gem::Dependency
104
+ name: faraday
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '2.7'
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 2.7.4
113
+ type: :runtime
114
+ prerelease: false
115
+ version_requirements: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '2.7'
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: 2.7.4
123
+ - !ruby/object:Gem::Dependency
124
+ name: faraday-follow_redirects
125
+ requirement: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: 0.3.0
130
+ type: :runtime
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - "~>"
135
+ - !ruby/object:Gem::Version
136
+ version: 0.3.0
137
+ - !ruby/object:Gem::Dependency
138
+ name: rubyzip
139
+ requirement: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - "~>"
142
+ - !ruby/object:Gem::Version
143
+ version: '2.3'
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: 2.3.2
147
+ type: :runtime
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: '2.3'
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: 2.3.2
13
157
  description: Erhu 是一个动态可编程的包管理系统
14
158
  email:
15
159
  - tywf91@gmail.com
@@ -19,11 +163,14 @@ extensions: []
19
163
  extra_rdoc_files: []
20
164
  files:
21
165
  - Gemfile
166
+ - Gemfile.lock
22
167
  - README.md
23
168
  - Rakefile
169
+ - erhu.gemspec
24
170
  - exe/erhu
25
171
  - lib/erhu.rb
26
172
  - lib/erhu/app.rb
173
+ - lib/erhu/cli.rb
27
174
  - lib/erhu/init.rb
28
175
  - lib/erhu/version.rb
29
176
  - sig/erhu.rbs