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