kdwatch 0.5.0 → 0.5.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE.txt +1 -1
- data/README.md +39 -7
- data/bin/kds +54 -0
- data/bin/kdwatch +1 -0
- data/kdwatch.gemspec +1 -1
- data/lib/kdwatch/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 974abb5a5f84e7afb0d7bde78c81a8072b9627a90e1aa25bb26811ba02605c56
|
4
|
+
data.tar.gz: e4777968c970488118701adf24fd6c86efce9ae8d08ee4f999ddf2cf851e05d0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c62d74513d5fdc91cd5736c2c0410f2d985d64bd4784680f387fae825ba33ab08770eef3930ceb9da21c092d2670083b372c356ac0e1940202f14376d598a99b
|
7
|
+
data.tar.gz: f5e5a995913f7b7bdd5ab264045062452ceaea3840cc7c3ff47780fd11b648c2f203f0a850c29896871874f4ccdeb514439c5ae73c1423f5ad951a061bfbcfa3
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -51,9 +51,11 @@ There can only be one kdwatch active on each host and port. You will
|
|
51
51
|
need to specify a different port (or host!) to run more than one
|
52
52
|
kdwatch at the same time.
|
53
53
|
|
54
|
-
* `-p port` to select a port number
|
55
|
-
* `-1` to `6` as a shortcut for `-p 7991`
|
54
|
+
* `-p port` to select a specific port number
|
55
|
+
* `-1` to `6` as a shortcut for `-p 7991` to `-p 7996` (must be last
|
56
56
|
option because of an idiosyncrasy of the optionparser library)
|
57
|
+
* if no port number is given, `kdwatch` will hunt for a port number
|
58
|
+
that doesn't have a listener, starting with 7991.
|
57
59
|
|
58
60
|
kdwatch has two flags to simplify handling servers that might be
|
59
61
|
accumulating on one host/port:
|
@@ -64,18 +66,19 @@ accumulating on one host/port:
|
|
64
66
|
So the most likely use is going to be:
|
65
67
|
|
66
68
|
```
|
67
|
-
kdwatch
|
69
|
+
kdwatch
|
68
70
|
```
|
69
71
|
|
70
|
-
|
72
|
+
to start a new server on a new port number.
|
73
|
+
|
74
|
+
These tend to accumulate a bit, so sometimes you'll want to replace an
|
75
|
+
existing one (here: port number 7992):
|
71
76
|
|
72
77
|
```
|
73
78
|
kdwatch -r2
|
74
79
|
```
|
75
80
|
|
76
|
-
|
77
|
-
|
78
|
-
or, if your drafts are weirdly named or you need to select one out of
|
81
|
+
If your drafts are weirdly named or you need to select one out of
|
79
82
|
many
|
80
83
|
|
81
84
|
```
|
@@ -118,6 +121,35 @@ another laptop), and save some screen real-estate on your laptop.
|
|
118
121
|
With a globally routable address, kdwatch even can be used for joint
|
119
122
|
viewing in a team.
|
120
123
|
|
124
|
+
### Finding and accessing kdwatch servers
|
125
|
+
|
126
|
+
The `kds` tool can list active local (127.0.0.1) kdwatch servers and
|
127
|
+
optionally quickly open the page for a selected kdwatch server.
|
128
|
+
|
129
|
+
```
|
130
|
+
Usage: kds [options] [match...]
|
131
|
+
Version: n.m.l (from kdwatch)
|
132
|
+
-v, --version Show version and exit
|
133
|
+
-h, --help Show option summary and exit
|
134
|
+
-f, --from=NUM Search from port number (7991)
|
135
|
+
-t, --to=NUM Search to port number (7999)
|
136
|
+
```
|
137
|
+
|
138
|
+
```
|
139
|
+
$ kds
|
140
|
+
http://127.0.0.1:7991 Packed CBOR
|
141
|
+
http://127.0.0.1:7992 Concise Problem Details For CoAP APIs
|
142
|
+
$ kds prob
|
143
|
+
http://127.0.0.1:7991 Packed CBOR
|
144
|
+
http://127.0.0.1:7992 Concise Problem Details For CoAP APIs
|
145
|
+
(...web page http://127.0.0.1:7992 opens...)
|
146
|
+
$
|
147
|
+
```
|
148
|
+
|
149
|
+
Any match arguments are concatenated with spaces; for servers that
|
150
|
+
offer a page with the match string in the title (case insensitive), a
|
151
|
+
window is opened in the default browser.
|
152
|
+
|
121
153
|
## Feedback, please
|
122
154
|
|
123
155
|
This has only been tested on macOS and briefly on Linux. No idea about WSL.
|
data/bin/kds
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'socket'
|
3
|
+
require 'uri'
|
4
|
+
require 'open-uri'
|
5
|
+
require 'optparse'
|
6
|
+
|
7
|
+
KDWATCH_VERSION=Gem.loaded_specs["kdwatch"].version rescue "unknown-version"
|
8
|
+
|
9
|
+
loport = 7991
|
10
|
+
hiport = 7999
|
11
|
+
match = nil
|
12
|
+
|
13
|
+
op = OptionParser.new do |opts|
|
14
|
+
opts.banner = <<BANNER
|
15
|
+
Usage: kds [options] [match...]
|
16
|
+
Version: #{KDWATCH_VERSION} (from kdwatch)
|
17
|
+
BANNER
|
18
|
+
opts.on("-v", "--version", "Show version and exit") do |v|
|
19
|
+
puts "kds, from kdwatch #{KDWATCH_VERSION}"
|
20
|
+
exit
|
21
|
+
end
|
22
|
+
opts.on("-h", "--help", "Show option summary and exit") do |v|
|
23
|
+
puts opts
|
24
|
+
exit
|
25
|
+
end
|
26
|
+
opts.on("-fNUM", "--from=NUM", Integer, "Search from port number (#{loport})") do |v|
|
27
|
+
loport = v
|
28
|
+
end
|
29
|
+
opts.on("-tNUM", "--to=NUM", Integer, "Search to port number (#{hiport})") do |v|
|
30
|
+
hiport = v
|
31
|
+
end
|
32
|
+
end
|
33
|
+
op.parse!
|
34
|
+
|
35
|
+
if ARGV.size != 0
|
36
|
+
match = ARGV.join(" ")
|
37
|
+
end
|
38
|
+
|
39
|
+
(loport..hiport).each do |p|
|
40
|
+
url = "http://127.0.0.1:#{p}"
|
41
|
+
URI(url).open do |f|
|
42
|
+
s = f.readpartial(40000)
|
43
|
+
sc = s.scan(/id="title".*?<|Internal server error/)
|
44
|
+
sc.each do |scl|
|
45
|
+
scl.sub!(/id="title">/, "")
|
46
|
+
scl.chomp!('<')
|
47
|
+
puts "#{url} #{scl}"
|
48
|
+
if match && scl.downcase.include?(match.downcase)
|
49
|
+
spawn("open #{url} || xdg-open #{url} || echo @@@ Please open #{url}")
|
50
|
+
end
|
51
|
+
break
|
52
|
+
end
|
53
|
+
end rescue nil
|
54
|
+
end
|
data/bin/kdwatch
CHANGED
@@ -13,6 +13,7 @@ require_relative "../lib/kdwatch/version"
|
|
13
13
|
KDWATCH_PORT = 7991 # currently unregistered...
|
14
14
|
|
15
15
|
def socket_is_free(host, port, uri)
|
16
|
+
host = "localhost" if host == "::"
|
16
17
|
begin
|
17
18
|
TCPSocket.new(host, port, connect_timeout: 1)
|
18
19
|
rescue Errno::ECONNREFUSED => e
|
data/kdwatch.gemspec
CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
24
24
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
|
25
25
|
end
|
26
|
-
spec.executables = ['kdwatch']
|
26
|
+
spec.executables = ['kdwatch', 'kds']
|
27
27
|
spec.require_paths = ["lib"]
|
28
28
|
|
29
29
|
spec.add_dependency "bundler", '~> 2.2'
|
data/lib/kdwatch/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kdwatch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carsten Bormann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-07-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -127,6 +127,7 @@ email:
|
|
127
127
|
- cabo@tzi.org
|
128
128
|
executables:
|
129
129
|
- kdwatch
|
130
|
+
- kds
|
130
131
|
extensions: []
|
131
132
|
extra_rdoc_files: []
|
132
133
|
files:
|
@@ -134,6 +135,7 @@ files:
|
|
134
135
|
- Gemfile
|
135
136
|
- LICENSE.txt
|
136
137
|
- README.md
|
138
|
+
- bin/kds
|
137
139
|
- bin/kdwatch
|
138
140
|
- kdwatch.gemspec
|
139
141
|
- lib/kdwatch-app.rb
|