kscript 1.0.0 → 1.0.1
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/Rakefile +7 -0
- data/kscript.gemspec +2 -7
- data/lib/kscript/base.rb +1 -9
- data/lib/kscript/logger.rb +2 -4
- data/lib/kscript/utils.rb +0 -4
- data/lib/kscript/version.rb +1 -1
- data/lib/kscript.rb +17 -0
- metadata +42 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a72c639d7028f3032a3ab8d6508308cd174a1174f698d5099f86356b1bef9f31
|
4
|
+
data.tar.gz: 898a2845e93a58bb1760a92850b091b84fcd374d92b138c13022e85dc6868877
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 869a3dfa24680f0c6e95cbdb82f0d8e6f981f5868d5f5c30b0183b7d2490b64ee2ce670e08190f095eea1291f26c31293e215759ee9545eab2a1d602b36a9bba
|
7
|
+
data.tar.gz: 5d24ef70c21851e42b337fd8e0222d50bb9f0def1e61a0121e2edaac8eb5fd16d4233adb8560e428eada8ee5e312a2c717f5ce30826c93891988861a38ee6260
|
data/Rakefile
CHANGED
data/kscript.gemspec
CHANGED
@@ -27,7 +27,9 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.require_paths = ['lib']
|
28
28
|
|
29
29
|
# Runtime dependencies
|
30
|
+
spec.add_dependency 'bcrypt', '>= 3.1', '< 4.0'
|
30
31
|
spec.add_dependency 'http', '>= 4.0', '< 6.0'
|
32
|
+
spec.add_dependency 'nokogiri', '>= 1.13', '< 2.0'
|
31
33
|
spec.add_dependency 'thor', '1.3.2'
|
32
34
|
|
33
35
|
# Development dependencies
|
@@ -35,11 +37,4 @@ Gem::Specification.new do |spec|
|
|
35
37
|
spec.metadata['rubygems_mfa_required'] = 'true'
|
36
38
|
|
37
39
|
# spec.extensions = ['ext/install.rb'] # 已移除,防止 native extension build 错误
|
38
|
-
|
39
|
-
spec.post_install_message = <<~MSG
|
40
|
-
[kscript] Shell completion is available!
|
41
|
-
To enable shell completion for your shell, please run:
|
42
|
-
ruby ext/install.rb
|
43
|
-
Or see README for more details.
|
44
|
-
MSG
|
45
40
|
end
|
data/lib/kscript/base.rb
CHANGED
@@ -7,11 +7,9 @@ module Kscript
|
|
7
7
|
class Base
|
8
8
|
attr_reader :logger
|
9
9
|
|
10
|
-
def initialize(service: nil, log_level: nil
|
10
|
+
def initialize(service: nil, log_level: nil)
|
11
11
|
config = defined?(Kscript::Utils::Config) ? Kscript::Utils::Config.load : nil
|
12
12
|
log_level ||= config&.log_level || ENV['KSCRIPT_LOG_LEVEL'] || :info
|
13
|
-
trace_id ||= config&.trace_id || ENV['KSCRIPT_TRACE_ID']
|
14
|
-
@trace_id = trace_id
|
15
13
|
@logger = Kscript::Logger.new(service: service || self.class.name, level: log_level)
|
16
14
|
@logger.set_human_output(human_output?)
|
17
15
|
end
|
@@ -24,12 +22,6 @@ module Kscript
|
|
24
22
|
exit(1)
|
25
23
|
end
|
26
24
|
|
27
|
-
# 提供 trace_id 给 logger
|
28
|
-
def logger
|
29
|
-
@logger.define_singleton_method(:default_trace_id) { @trace_id } if @trace_id
|
30
|
-
@logger
|
31
|
-
end
|
32
|
-
|
33
25
|
# 自动注册所有 Kscript::Base 的子类为插件
|
34
26
|
def self.inherited(subclass)
|
35
27
|
name = subclass.name.split('::').last
|
data/lib/kscript/logger.rb
CHANGED
@@ -45,14 +45,12 @@ module Kscript
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def log(level, message, context = {})
|
48
|
-
trace_id = context[:trace_id] || (respond_to?(:default_trace_id) ? default_trace_id : nil) || SecureRandom.hex(8)
|
49
48
|
entry = {
|
50
49
|
timestamp: Time.now.utc.iso8601,
|
51
50
|
level: level.to_s.upcase,
|
52
51
|
service: @service,
|
53
52
|
message: message,
|
54
|
-
|
55
|
-
context: context.reject { |k, _| k == :trace_id }
|
53
|
+
context: context
|
56
54
|
}
|
57
55
|
@logger.send(level, entry.to_json)
|
58
56
|
end
|
@@ -67,7 +65,7 @@ module Kscript
|
|
67
65
|
svc = @service || 'kscript'
|
68
66
|
trace = context[:trace_id] || (respond_to?(:default_trace_id) ? default_trace_id : nil) || '-'
|
69
67
|
color = COLORS[level] || COLORS[:info]
|
70
|
-
ctx_str = context.
|
68
|
+
ctx_str = context.map { |k, v| "#{k}=#{v}" }.join(' ')
|
71
69
|
line = "[#{ts}] [#{lvl}] [#{svc}] [#{trace}] #{message}"
|
72
70
|
line += " | #{ctx_str}" unless ctx_str.empty?
|
73
71
|
$stdout.puts "#{color}#{line}#{COLORS[:reset]}"
|
data/lib/kscript/utils.rb
CHANGED
data/lib/kscript/version.rb
CHANGED
data/lib/kscript.rb
CHANGED
@@ -5,9 +5,26 @@
|
|
5
5
|
# This software is released under the MIT License.
|
6
6
|
# https://opensource.org/licenses/MIT
|
7
7
|
|
8
|
+
# Ruby 标准库
|
8
9
|
require 'json'
|
9
10
|
require 'logger'
|
10
11
|
require 'securerandom'
|
12
|
+
require 'yaml'
|
13
|
+
require 'fileutils'
|
14
|
+
require 'base64'
|
15
|
+
require 'rexml/document'
|
16
|
+
require 'net/http'
|
17
|
+
require 'timeout'
|
18
|
+
require 'socket'
|
19
|
+
require 'open3'
|
20
|
+
require 'openssl'
|
21
|
+
|
22
|
+
# 第三方 gem
|
23
|
+
require 'http'
|
24
|
+
require 'bcrypt'
|
25
|
+
require 'nokogiri'
|
26
|
+
require 'thor'
|
27
|
+
|
11
28
|
require 'kscript/plugins'
|
12
29
|
require 'kscript/base'
|
13
30
|
require 'kscript/logger'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kscript
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kk
|
@@ -10,6 +10,26 @@ bindir: bin
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2025-07-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bcrypt
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.1'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '4.0'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '3.1'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '4.0'
|
13
33
|
- !ruby/object:Gem::Dependency
|
14
34
|
name: http
|
15
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -30,6 +50,26 @@ dependencies:
|
|
30
50
|
- - "<"
|
31
51
|
- !ruby/object:Gem::Version
|
32
52
|
version: '6.0'
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: nokogiri
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '1.13'
|
60
|
+
- - "<"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '2.0'
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '1.13'
|
70
|
+
- - "<"
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '2.0'
|
33
73
|
- !ruby/object:Gem::Dependency
|
34
74
|
name: thor
|
35
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -104,11 +144,7 @@ licenses:
|
|
104
144
|
- MIT
|
105
145
|
metadata:
|
106
146
|
rubygems_mfa_required: 'true'
|
107
|
-
post_install_message:
|
108
|
-
[kscript] Shell completion is available!
|
109
|
-
To enable shell completion for your shell, please run:
|
110
|
-
ruby ext/install.rb
|
111
|
-
Or see README for more details.
|
147
|
+
post_install_message:
|
112
148
|
rdoc_options: []
|
113
149
|
require_paths:
|
114
150
|
- lib
|