kdwatch 0.5.3 → 0.5.5

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: 974abb5a5f84e7afb0d7bde78c81a8072b9627a90e1aa25bb26811ba02605c56
4
- data.tar.gz: e4777968c970488118701adf24fd6c86efce9ae8d08ee4f999ddf2cf851e05d0
3
+ metadata.gz: 6566f3e18e0382e8884beeca9cacc476052a969ca2fdb2b2444776cf5cbd841c
4
+ data.tar.gz: ec6c75ac9f53726c514263bc288862d3406d601e71e7cdc0a263a3a83eac04a9
5
5
  SHA512:
6
- metadata.gz: c62d74513d5fdc91cd5736c2c0410f2d985d64bd4784680f387fae825ba33ab08770eef3930ceb9da21c092d2670083b372c356ac0e1940202f14376d598a99b
7
- data.tar.gz: f5e5a995913f7b7bdd5ab264045062452ceaea3840cc7c3ff47780fd11b648c2f203f0a850c29896871874f4ccdeb514439c5ae73c1423f5ad951a061bfbcfa3
6
+ metadata.gz: eb70454412b047f97acb4906b471dcd87e8a56908ed976f7f2094e34422284f38032eea6d1b97a1653cb5d15965400935c9e271a503e52f2077ae2fec61a9e60
7
+ data.tar.gz: ea35944c3d007676c43c009f06a4deb506fbfaebf9ab71521e6f048818fcccaf89967d31076d710f5b1fb09fd4866412f8e4ce9c8e2a1e516a7c48d16292fca9
data/README.md CHANGED
@@ -85,10 +85,6 @@ many
85
85
  kdwatch -r5 weird-draft.md
86
86
  ```
87
87
 
88
- (Glitches are to be expected if you *start* more than one server out of
89
- the same directory at the same instant; TODO; for now, wait 10 seconds
90
- before starting another from the same directory.)
91
-
92
88
  ### 7991, haven't I heard that number before?
93
89
 
94
90
  The default port number was chosen after [RFC 7991], the initial (no
data/bin/kdwatch CHANGED
@@ -7,6 +7,7 @@ ENV["KRAMDOWN_PERSISTENT"]="yes"
7
7
  require 'optparse'
8
8
  require 'ostruct'
9
9
  require 'socket'
10
+ require 'tempfile'
10
11
 
11
12
  require_relative "../lib/kdwatch/version"
12
13
 
@@ -153,11 +154,19 @@ ENV["KDWATCH_PORT"] = options.port.to_s
153
154
  live_reload_port = options.port + 51234 # move up into ephemeral space
154
155
  ENV["KDWATCH_LRPORT"] = live_reload_port.to_s
155
156
 
156
- File.write(".config.ru", <<HERE)
157
+ tf = Tempfile.new('kdwatch-config-ru-')
158
+ path = tf.path
159
+ rupath = "#{path}.ru"
160
+
161
+ tf.write(<<HERE)
157
162
  require 'rack-livereload'
158
163
  use Rack::LiveReload, min_delay: 500, source: :vendored, no_swf: true, port: #{live_reload_port}, live_reload_port: #{live_reload_port}
159
164
  require 'kdwatch-app.rb'
160
165
  run Sinatra::Application
166
+ File.delete("#{rupath}")
161
167
  HERE
162
168
 
163
- exec("rackup -E production -s thin -o #{options.host} -p #{options.port} .config.ru")
169
+ tf.close
170
+ File.rename(path, rupath)
171
+
172
+ exec("rackup -E production -s thin -o #{options.host} -p #{options.port} #{rupath}")
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Kdwatch
4
- VERSION = "0.5.3"
4
+ VERSION = "0.5.5"
5
5
  end
data/lib/kdwatch-app.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require_relative "kdwatch/version"
2
2
  require 'bundler'
3
+ require 'tempfile'
3
4
 
4
5
  # Bundler.require
5
6
  require "bundler"
@@ -62,14 +63,17 @@ get "/rfc-local.css" do
62
63
  # insert local css here
63
64
  end
64
65
 
65
- File.write(".Guardfile", <<GF)
66
+ guardfile = Tempfile.new("kdwatch-guard-")
67
+ guardfile.write(<<GF)
66
68
  guard :livereload, :port => #{ENV["KDWATCH_LRPORT"]} do
67
69
  watch("#{sfn}")
68
70
  end
69
71
  GF
72
+ guardfile.close
73
+ gfpath = guardfile.path
70
74
 
71
75
  rd, _wr = IO.pipe
72
- spawn("guard -G .Guardfile", in: rd, close_others: true)
76
+ spawn("guard -G #{gfpath}", in: rd, close_others: true)
73
77
 
74
78
  # wrong: puts settings.port
75
79
 
@@ -77,7 +81,22 @@ host = "localhost" if host == "::" # work around macOS peculiarity
77
81
  host = "[#{host}]" if host =~ /:/
78
82
 
79
83
  url = "http://#{host}:#{port}"
80
-
81
- spawn("sleep 5; open #{url} || xdg-open #{url} || echo @@@ Please open #{url}")
82
-
83
-
84
+ command = "open #{url} || xdg-open #{url} || echo @@@ Please open #{url}"
85
+
86
+ if Process.respond_to?(:fork) && fork do
87
+ begin
88
+ # warn "** Making connection to #{host} #{port}"
89
+ TCPSocket.new host, port
90
+ # warn "** Successful connection to #{host} #{port}"
91
+ rescue => _e
92
+ # warn "** #{e.detailed_message}"
93
+ sleep 0.5
94
+ retry
95
+ end
96
+ exec(command)
97
+ warn "** exec didn't work"
98
+ exit!
99
+ end
100
+ else
101
+ spawn("sleep 3; #{command}")
102
+ end
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.3
4
+ version: 0.5.5
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-07-07 00:00:00.000000000 Z
11
+ date: 2023-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -159,7 +159,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
159
159
  - !ruby/object:Gem::Version
160
160
  version: '0'
161
161
  requirements: []
162
- rubygems_version: 3.3.11
162
+ rubygems_version: 3.4.6
163
163
  signing_key:
164
164
  specification_version: 4
165
165
  summary: 'kdwatch: open auto-reloaded HTML for kramdown-rfc in a browser.'