mchat 0.1.2 → 0.2.0

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: 4e5b2f2c8f81c468432b3956d94cb55771ab176dcf253b0189f94913b849cb78
4
- data.tar.gz: e072da17f7a5d5bd68c9a742889565d55eeb85b1bc0ec3b8bc55d0fe20e1a4a0
3
+ metadata.gz: 6aefb6d9811fd9c32d4d2d4245bb28830c4660e4a9e8b4c83371cd0c97cf3b69
4
+ data.tar.gz: af93fe1a94375326e7a20cf141bb0e4936e317eb53398c874deb10d20d025480
5
5
  SHA512:
6
- metadata.gz: 0a13929cc01794eeb6ad087d7071e382ad3a5ab9fb34310a540c2c333b8e234bd2b4de34b39974eeafdfa7e6a7f36e5218764cbdcc1e14cacaa9e339d06847fa
7
- data.tar.gz: d3e62adf2c158acc533279cb5fbf99d3d8d12cb1212f2e4309797190392ca17121d57e55b94d14f484385deba1fdec3aa87b29a49e79a56463303cdb188ecee7
6
+ metadata.gz: '076984b05f9c3482cc520fb95ef31c9a29c1630fea35e7d946741e949f8883ea883981f4888d840e9b49fd675e6e202585d7c264c59a475e80271b5416f5cd80'
7
+ data.tar.gz: 02d42e72ad4619dafe0e069861c9d60af8f14c49f8f23f03e2d88cda199c9281f4ab282636e9cd5543b9b01dbf9fce59f2f8147e1f3b9faf496fcf2d82193553
data/Dockerfile CHANGED
@@ -1,5 +1,7 @@
1
1
  FROM ruby:3.1-buster
2
2
 
3
+ ENV LANG=C.UTF-8
4
+
3
5
  RUN apt update -y
4
6
  RUN apt install screen -y
5
7
  RUN apt install vim -y
@@ -15,4 +17,4 @@ RUN gem install rainbow
15
17
  RUN gem install httparty
16
18
  RUN gem install mchat
17
19
 
18
- CMD ["bash"]
20
+ CMD ["bash"]
data/README.md CHANGED
@@ -30,7 +30,7 @@ mchat
30
30
 
31
31
  直接使用
32
32
 
33
- `docker run -it mark24code/mchat env LANG=C.UTF-8 /bin/bash`
33
+ `docker run -it mark24code/mchat`
34
34
 
35
35
 
36
36
 
data/Rakefile CHANGED
@@ -13,9 +13,17 @@ end
13
13
 
14
14
  # RuboCop::RakeTask.new
15
15
 
16
- Rake::TestTask.new(:preview) do |t|
16
+ desc 'build gem & local install it'
17
+ task :preview do
17
18
  system("gem build mchat.gemspec && gem install ./mchat-#{Mchat::VERSION}.gem")
18
19
  end
19
20
 
21
+ desc 'build docker images & push'
22
+ task :docker_pd do
23
+ system("docker build -t mark24code/mchat:latest .")
24
+ system("docker push mark24code/mchat")
25
+ system("docker build -t mark24code/mchat:#{Mchat::VERSION} .")
26
+ system("docker push mark24code/mchat:#{Mchat::VERSION}")
27
+ end
20
28
 
21
29
  task default: %i[test]
data/exe/mchat CHANGED
@@ -10,8 +10,8 @@ require_relative "../lib/mchat/comps/user_config"
10
10
  class MchatApp
11
11
  include Mchat::UserConfig
12
12
 
13
- def initialize
14
- first_time_use
13
+ def initialize(opts={})
14
+ @server = opts.fetch(:server, nil)
15
15
  @screenrc_dir = Pathname.new(Dir.home).join('.mchat')
16
16
  @screenrc = Pathname.new(Dir.home).join('.mchat').join('screenrc')
17
17
  end
@@ -32,10 +32,16 @@ class MchatApp
32
32
  init_config = %Q(
33
33
  split -v
34
34
 
35
- screen -t timeline 'mchat_timeline'
35
+ screen -t timeline mchat_timeline
36
36
  focus
37
- screen -t repl 'mchat_repl'
38
37
  )
38
+ if @server
39
+ # search `eval` 接受完整参数
40
+ # https://www.gnu.org/software/screen/manual/screen.html
41
+ init_config << "screen -t repl eval mchat_repl --server=#{@server}"
42
+ else
43
+ init_config << "screen -t repl mchat_repl"
44
+ end
39
45
  f << init_config
40
46
  end
41
47
  end
@@ -62,18 +68,23 @@ end
62
68
 
63
69
 
64
70
 
65
- # options = {}
71
+ options = {}
66
72
  OptionParser.new do |opts|
67
73
  opts.banner = "Usage: mchat [options]"
68
74
 
69
75
  opts.on("--version", "version") do
70
-
76
+
71
77
  puts "Mchat v#{::Mchat::VERSION}"
72
78
  puts ""
73
79
  puts "author: mark24"
74
80
  puts "mail: mark.zhangyoung@qq.com"
75
81
  return
76
82
  end
83
+
84
+ opts.on("--server=SERVER", "server") do |server|
85
+ options[:server] = server
86
+ end
87
+
77
88
  end.parse!
78
89
 
79
- MchatApp.new.run
90
+ MchatApp.new(options).run
data/exe/mchat_repl CHANGED
@@ -9,7 +9,7 @@ OptionParser.new do |opts|
9
9
  opts.banner = "Usage: mchat_repl [options]"
10
10
 
11
11
  opts.on("--version", "version") do
12
-
12
+
13
13
  puts "MchatRepl v#{::Mchat::VERSION}"
14
14
  puts ""
15
15
  puts "author: mark24"
@@ -17,11 +17,15 @@ OptionParser.new do |opts|
17
17
  return
18
18
  end
19
19
 
20
+ opts.on("--server=SERVER", "server") do |server|
21
+ options[:server] = server
22
+ end
23
+
20
24
  end.parse!
21
25
 
22
26
 
23
- repl = Mchat::Repl.new
27
+ repl = Mchat::Repl.new(options)
24
28
 
25
29
  trap("INT") { repl.quit_command_run }
26
30
 
27
- repl.run
31
+ repl.run
@@ -18,7 +18,7 @@ init_config = %Q(
18
18
  wait_prefix: ">>"
19
19
  display_welcome: true
20
20
  clear_repl_everytime: true
21
- server: "localhost:4567"
21
+ # server: "localhost:4567"
22
22
 
23
23
  )
24
24
  f << init_config
@@ -35,20 +35,33 @@ server: "localhost:4567"
35
35
  return opt
36
36
  end
37
37
 
38
- def first_time_use
39
- if !user_config_exist?
40
- read_user_config
41
- puts "Mchat first run TIPS".style.jade
38
+ def check_server_before_all
39
+ if !@server
40
+ puts "Mchat about `Server` Tips".style.jade
41
+ puts ""
42
+ puts "your server: `#{@server}`"
42
43
  puts ""
43
- puts "Mchat not found user config, maybe this is your first time run Mchat."
44
44
  init_config = "~/.mchat".style.warn
45
45
  puts "Mchat has help your create config to #{init_config}"
46
46
  server_field = "<server> field".style.warn
47
47
  puts "Before you run mchat, edit your config file, change #{server_field} to yours:"
48
48
  puts "vim #{CONFIG_PATH.to_s}".style.warn
49
- puts "make sure your server works, before run Mchat. :D"
50
-
51
- exit 0
49
+ puts "make sure your server works, before run Mchat."
50
+ puts ""
51
+ puts "If you have server address, you can also run like this:"
52
+ puts "mchat --server='http://<your host>'"
53
+ puts "e.g. mchat --server='http://localhost:4567'"
54
+ puts "so you will not need to edit mchatrc." + " :)".style.warn
55
+ puts ""
56
+ puts "Confirm? (y/yes)"
57
+ while true
58
+ confirm = gets
59
+ confirm = confirm.strip
60
+ if confirm == 'y' || confirm == 'yes'
61
+ system('screen -X quit')
62
+ end
63
+ sleep 0.1
64
+ end
52
65
  end
53
66
  end
54
67
  end
data/lib/mchat/repl.rb CHANGED
@@ -104,14 +104,16 @@ module Mchat
104
104
 
105
105
  # Instance ########################3
106
106
 
107
- def initialize
108
- first_time_use
107
+ def initialize(opts = {})
109
108
 
110
109
  @config = read_user_config
111
- @server = @config.fetch("server") || 'localhost:4567'
110
+
111
+ @server = opts.fetch(:server, nil) || @config.fetch("server", nil) || nil
112
+
113
+ check_server_before_all
112
114
 
113
115
  @api = ::Mchat::Request.new(@server)
114
-
116
+
115
117
  @wait_prefix = @config.fetch("wait_prefix") || ">>"
116
118
  @display_welcome = @config.fetch("display_welcome") || true
117
119
 
@@ -215,7 +217,7 @@ module Mchat
215
217
  startup_msg = resp.fetch("data")
216
218
  return Message.new(startup_msg).display
217
219
  end
218
-
220
+
219
221
  def before_loop_setup
220
222
  # cli
221
223
  _puts welcome(@display_welcome)
data/lib/mchat/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mchat
4
- VERSION = "0.1.2"
4
+ VERSION = "0.2.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mchat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark24
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-08-15 00:00:00.000000000 Z
11
+ date: 2022-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rainbow