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 +4 -4
- data/Dockerfile +4 -2
- data/README.md +1 -1
- data/Rakefile +9 -1
- data/exe/mchat +32 -5
- data/exe/mchat_repl +24 -1
- data/exe/mchat_timeline +19 -3
- data/exe/mchat_uninstall +26 -5
- data/lib/mchat/comps/user_config.rb +22 -9
- data/lib/mchat/repl.rb +7 -5
- data/lib/mchat/timeline.rb +1 -0
- data/lib/mchat/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd20c228d8f1f1a62cbed21314af7f902681917943e90b28d27f4c735a68b409
|
4
|
+
data.tar.gz: 215269c0de4340528ddbae49604a3eed960c706fa5b874ca4b09ce74205df386
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
data/Rakefile
CHANGED
@@ -13,9 +13,17 @@ end
|
|
13
13
|
|
14
14
|
# RuboCop::RakeTask.new
|
15
15
|
|
16
|
-
|
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
|
-
|
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
|
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
|
-
|
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
|
-
|
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
|
-
|
7
|
+
OptionParser.new do |opts|
|
8
|
+
opts.banner = "Usage: mchat [options]"
|
7
9
|
|
8
|
-
|
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
|
-
|
4
|
-
|
5
|
-
|
6
|
-
system("gem uninstall mchat")
|
5
|
+
options = {}
|
6
|
+
OptionParser.new do |opts|
|
7
|
+
opts.banner = "Usage: mchat_uninstall [options]"
|
7
8
|
|
8
|
-
|
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
|
39
|
-
if
|
40
|
-
|
41
|
-
puts "
|
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.
|
50
|
-
|
51
|
-
|
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
|
-
|
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/timeline.rb
CHANGED
data/lib/mchat/version.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2022-08-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rainbow
|