mchat 0.1.1 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d50f65b48df8f72db33d5b3cc5eaecd00170d0a33f06308c911fec6d0d27b963
4
- data.tar.gz: c5be63ca6e5e0245a032d8cbc8070c43bdb019c5c6c1d6e1b0959c5f032fe98c
3
+ metadata.gz: bd20c228d8f1f1a62cbed21314af7f902681917943e90b28d27f4c735a68b409
4
+ data.tar.gz: 215269c0de4340528ddbae49604a3eed960c706fa5b874ca4b09ce74205df386
5
5
  SHA512:
6
- metadata.gz: eddc551d4c07aa58310b0c079b2f3e22dc4798979c2d7298ed2cf5bcf9b2356b389a254da633e0cf04f16026d1a394b4c52bb85416ab3a5145f1f4dc16b5ddaf
7
- data.tar.gz: e5dabeda5c37ac25a8636079f5b706d5755ea805b6ab413144e4fea8a5a03b7bdf7b8adcec7ff13fe0f2ffd7361cf58f0945b2f1f64fec167957b5c7e724745b
6
+ metadata.gz: e6de36a3ed8587149894670a802b84d3e17893c06f9dba0b17a3d935d419b7220737a8aac6414ad96d3c93b47d85b32023c8f6cd34bce521f3e81f8da560adb5
7
+ data.tar.gz: 50f3e3b8d0bc5d48e33db1bab00a341dd5e7a3415b9829d17484c83e4d81415a62c09f8a79bfbe1ddc0569a75aa0931706b8c1095486447b3a41a2ab00e26b45
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
@@ -13,6 +15,6 @@ RUN bundle config mirror.https://rubygems.org https://gems.ruby-china.com
13
15
  # Install gems
14
16
  RUN gem install rainbow
15
17
  RUN gem install httparty
16
- RUN gem install mchat
18
+ RUN gem install mchat -v 0.2.1
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
@@ -1,5 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
+ require 'optparse'
2
3
  require 'pathname'
4
+ require_relative '../lib/mchat/version.rb'
3
5
  require_relative "../lib/mchat/comps/font"
4
6
  class String
5
7
  include Mchat::Style
@@ -8,8 +10,8 @@ require_relative "../lib/mchat/comps/user_config"
8
10
  class MchatApp
9
11
  include Mchat::UserConfig
10
12
 
11
- def initialize
12
- first_time_use
13
+ def initialize(opts={})
14
+ @server = opts.fetch(:server, nil)
13
15
  @screenrc_dir = Pathname.new(Dir.home).join('.mchat')
14
16
  @screenrc = Pathname.new(Dir.home).join('.mchat').join('screenrc')
15
17
  end
@@ -30,10 +32,15 @@ class MchatApp
30
32
  init_config = %Q(
31
33
  split -v
32
34
 
33
- screen -t timeline 'mchat_timeline'
35
+ screen -t timeline mchat_timeline
34
36
  focus
35
- screen -t repl 'mchat_repl'
36
37
  )
38
+ if @server
39
+ # https://www.gnu.org/software/screen/manual/screen.html
40
+ init_config << "screen -t repl mchat_repl --server=#{@server}"
41
+ else
42
+ init_config << "screen -t repl mchat_repl"
43
+ end
37
44
  f << init_config
38
45
  end
39
46
  end
@@ -59,4 +66,24 @@ class MchatApp
59
66
  end
60
67
 
61
68
 
62
- MchatApp.new.run
69
+
70
+ options = {}
71
+ OptionParser.new do |opts|
72
+ opts.banner = "Usage: mchat [options]"
73
+
74
+ opts.on("--version", "version") do
75
+
76
+ puts "Mchat v#{::Mchat::VERSION}"
77
+ puts ""
78
+ puts "author: mark24"
79
+ puts "mail: mark.zhangyoung@qq.com"
80
+ return
81
+ end
82
+
83
+ opts.on("--server=SERVER", "server") do |server|
84
+ options[:server] = server
85
+ end
86
+
87
+ end.parse!
88
+
89
+ MchatApp.new(options).run
data/exe/mchat_repl CHANGED
@@ -1,7 +1,30 @@
1
1
  #!/usr/bin/env ruby
2
+ require 'optparse'
3
+ require_relative '../lib/mchat/version.rb'
2
4
  require_relative "../lib/mchat"
3
5
 
4
- repl = Mchat::Repl.new
6
+
7
+ options = {}
8
+ OptionParser.new do |opts|
9
+ opts.banner = "Usage: mchat_repl [options]"
10
+
11
+ opts.on("--version", "version") do
12
+
13
+ puts "MchatRepl v#{::Mchat::VERSION}"
14
+ puts ""
15
+ puts "author: mark24"
16
+ puts "mail: mark.zhangyoung@qq.com"
17
+ return
18
+ end
19
+
20
+ opts.on("--server=SERVER", "server") do |server|
21
+ options[:server] = server
22
+ end
23
+
24
+ end.parse!
25
+
26
+
27
+ repl = Mchat::Repl.new(options)
5
28
 
6
29
  trap("INT") { repl.quit_command_run }
7
30
 
data/exe/mchat_timeline CHANGED
@@ -1,8 +1,24 @@
1
1
  #!/usr/bin/env ruby
2
+ require 'optparse'
3
+ require_relative '../lib/mchat/version.rb'
2
4
  require_relative "../lib/mchat/timeline"
3
5
 
4
- tl = Mchat::Timeline.new
5
6
 
6
- trap("INT") { tl.hook_close }
7
+ OptionParser.new do |opts|
8
+ opts.banner = "Usage: mchat [options]"
7
9
 
8
- tl.run
10
+ opts.on("--version", "version") do
11
+
12
+ puts "MchatTimeline v#{::Mchat::VERSION}"
13
+ puts ""
14
+ puts "author: mark24"
15
+ puts "mail: mark.zhangyoung@qq.com"
16
+ return
17
+ end
18
+ end.parse!
19
+
20
+ tl = Mchat::Timeline.new
21
+
22
+ trap("INT") { tl.hook_close }
23
+
24
+ tl.run
data/exe/mchat_uninstall CHANGED
@@ -1,8 +1,29 @@
1
1
  #!/usr/bin/env ruby
2
+ require 'optparse'
3
+ require_relative '../lib/mchat/version.rb'
2
4
 
3
- puts "[mchat] clean config ..."
4
- system("rm -rf .mchat")
5
- puts "[mchat] uninstall mchat ..."
6
- system("gem uninstall mchat")
5
+ options = {}
6
+ OptionParser.new do |opts|
7
+ opts.banner = "Usage: mchat_uninstall [options]"
7
8
 
8
- puts "[mchat] all files have uninstalled. Bye :D"
9
+ opts.on("--version", "version") do
10
+
11
+ puts "MchatUninstall v#{::Mchat::VERSION}"
12
+ puts ""
13
+ puts "author: mark24"
14
+ puts "mail: mark.zhangyoung@qq.com"
15
+ return
16
+ end
17
+ end.parse!
18
+
19
+
20
+ def goodbye_job
21
+ puts "[mchat] clean config ..."
22
+ system("rm -rf .mchat")
23
+ puts "[mchat] uninstall mchat ..."
24
+ system("gem uninstall mchat")
25
+
26
+ puts "[mchat] all files have uninstalled. Bye :D"
27
+ end
28
+
29
+ goodbye_job
@@ -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)
@@ -55,6 +55,7 @@ module Mchat
55
55
  def hook_close
56
56
  @reader.hook_quit
57
57
  system('screen -X quit')
58
+ exit 0
58
59
  end
59
60
 
60
61
  def dispatch(m)
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.1"
4
+ VERSION = "0.2.1"
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.1
4
+ version: 0.2.1
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