mchat 0.1.1 → 0.2.1

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: 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