kscript 1.0.4 → 1.0.6

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: a38a099a45b7be84d12e6b0122dae45eb9891dab7ec2b24804b0c2628111de9a
4
- data.tar.gz: 7b60a6c3aa2d320fe4f92e9bc23affcc6cd208aa6bf4ee68ccb154d92008269a
3
+ metadata.gz: 29c49db2c8133bbc61a27f182bd4aa2920a3f6ba44aa957e989c81ea1ebde95b
4
+ data.tar.gz: f5bb31a125f117daffa3b4613c694e09982d396810e9ca089772e562115d6b38
5
5
  SHA512:
6
- metadata.gz: 41ce72c538b84c8d27ced7099f4072cea6ec794a4ee758f568a61461263a5bf38d40c6ff7874a15361c9ead95834dd1c028fa5efe1c1dee78832a919b76e2554
7
- data.tar.gz: de04332a98285246ea14f7dc583d2a89248a90594ca7ac00cee9c628d8181bacea464f88a2e3be368ca22e8667430302fff8ae1947856941fd67d069346131b5
6
+ metadata.gz: 7f1c01ad2eb82ed4dc323ed9e926a4fd89ac9e9ad2c204fec077938bde8f98d50698e2f68cc08bcc3210947feb2d11e8408b567eea2aee95c0c9d800eb5384a8
7
+ data.tar.gz: 9c1f9ac7c23b94611ee489304ec32ee5e77c8d2c643acc107bab41e0c8476760d17f0c3728a6ee6310cca7806989e6e7f0f8faf0a79a033171073e9abf6758f3
@@ -6,8 +6,6 @@
6
6
  # Kscript::Config.load!
7
7
  # Kscript::Config.get('AWS_ACCESS_KEY_ID')
8
8
 
9
- require 'dotenv'
10
-
11
9
  module Kscript
12
10
  module Config
13
11
  CONFIG_PATH = File.expand_path('~/.kscript/.env')
@@ -13,13 +13,17 @@ module Kscript
13
13
  super(*args, **opts)
14
14
  end
15
15
 
16
- def run
16
+ def run(*args, **_opts)
17
17
  with_error_handling do
18
- optimize
18
+ if %w[help --help -h].include?(args[0]&.to_s)
19
+ logger.kwarn("Usage: #{self.class.usage}")
20
+ else
21
+ optimize_all
22
+ end
19
23
  end
20
24
  end
21
25
 
22
- def optimize
26
+ def optimize_all
23
27
  logger.kinfo('🔧 Starting macOS system optimization...')
24
28
 
25
29
  # Lower priority for OrbStack Helper
@@ -66,11 +70,11 @@ module Kscript
66
70
  end
67
71
 
68
72
  def self.arguments
69
- '[subcommand] [options]'
73
+ ''
70
74
  end
71
75
 
72
76
  def self.usage
73
- "kscript optimize clean\nkscript optimize speedup"
77
+ 'kscript optimize'
74
78
  end
75
79
 
76
80
  def self.group
@@ -6,6 +6,7 @@
6
6
  # https://opensource.org/licenses/MIT
7
7
 
8
8
  require 'kscript'
9
+ require 'httpx'
9
10
 
10
11
  module Kscript
11
12
  class KkShUtils < Base
@@ -17,12 +18,17 @@ module Kscript
17
18
  # @param command [String] command to get help for
18
19
  def initialize(*args, **opts)
19
20
  super(*args, **opts)
20
- @command = args.first
21
+ @command = args.join(' ').strip
21
22
  end
22
23
 
23
- def run
24
+ def run(*args, **_opts)
25
+ command = args.join(' ').strip
24
26
  with_error_handling do
25
- help
27
+ if command.nil? || command.strip.empty?
28
+ logger.kwarn("Usage: #{self.class.usage}")
29
+ else
30
+ fetch_help(command)
31
+ end
26
32
  end
27
33
  end
28
34
 
@@ -36,10 +42,11 @@ module Kscript
36
42
  end
37
43
 
38
44
  # Fetch and display command documentation
39
- def fetch_help
40
- response = make_request
41
- display_result(response)
42
- rescue HTTP::Error => e
45
+ def fetch_help(command)
46
+ response = make_request(command)
47
+ response = response.is_a?(Array) ? response.first : response
48
+ puts response.body
49
+ rescue StandardError => e
43
50
  display_error(e)
44
51
  end
45
52
 
@@ -65,41 +72,15 @@ module Kscript
65
72
 
66
73
  private
67
74
 
68
- # Make HTTP request to cht.sh
69
- # @return [HTTP::Response] response from cht.sh
70
- def make_request
71
- HTTP.get("#{CHT_SH_URL}/#{command}")
72
- end
73
-
74
- # Display command documentation
75
- # @param response [HTTP::Response] response from cht.sh
76
- def display_result(response)
77
- if response.status.success?
78
- text = extract_plain_text(response.body)
79
- logger.kinfo(text)
80
- else
81
- logger.kerror("Failed to retrieve data: #{response.status}")
82
- end
83
- end
84
-
85
- # 提取纯文本内容
86
- def extract_plain_text(body)
87
- body = body.to_s
88
- begin
89
- doc = Nokogiri::HTML(body)
90
- doc.search('script,style').remove
91
- text = doc.text.lines.map(&:strip)
92
- # 过滤掉包含广告/社交/Follow等内容的行
93
- text = text.reject { |line| line =~ /Follow @|twitter|github|sponsor|donate|chubin|^!function/ }
94
- text.reject!(&:empty?)
95
- # 去除顶部多余空白行,只保留正文
96
- text = text.drop_while(&:empty?)
97
- text.join("\n")
98
- rescue StandardError
99
- body.gsub(/\e\[[\d;]*m/, '').lines.reject do |line|
100
- line =~ /Follow @|twitter|github|sponsor|donate|chubin|^!function/
101
- end.drop_while { |line| line.strip.empty? }.join
102
- end
75
+ # Make HTTP request to cheat.sh
76
+ # @return [HTTPX::Response] response from cheat.sh
77
+ def make_request(command)
78
+ HTTPX.with(
79
+ headers: {
80
+ 'User-Agent' => 'curl/8.0.1',
81
+ 'Accept' => 'text/plain'
82
+ }
83
+ ).get("https://cheat.sh/#{URI.encode_www_form_component(command)}")
103
84
  end
104
85
 
105
86
  # Display error message
@@ -6,5 +6,5 @@
6
6
  # https://opensource.org/licenses/MIT
7
7
 
8
8
  module Kscript
9
- VERSION = '1.0.4'
9
+ VERSION = '1.0.6'
10
10
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kscript
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kk
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-07-06 00:00:00.000000000 Z
11
+ date: 2025-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-s3
@@ -59,25 +59,19 @@ dependencies:
59
59
  - !ruby/object:Gem::Version
60
60
  version: '3.0'
61
61
  - !ruby/object:Gem::Dependency
62
- name: http
62
+ name: httpx
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: '4.0'
68
- - - "<"
65
+ - - "~>"
69
66
  - !ruby/object:Gem::Version
70
- version: '6.0'
67
+ version: '1.5'
71
68
  type: :runtime
72
69
  prerelease: false
73
70
  version_requirements: !ruby/object:Gem::Requirement
74
71
  requirements:
75
- - - ">="
76
- - !ruby/object:Gem::Version
77
- version: '4.0'
78
- - - "<"
72
+ - - "~>"
79
73
  - !ruby/object:Gem::Version
80
- version: '6.0'
74
+ version: '1.5'
81
75
  - !ruby/object:Gem::Dependency
82
76
  name: nokogiri
83
77
  requirement: !ruby/object:Gem::Requirement