rails_caddy_dev 0.4.0 → 0.5.0
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/README.md +10 -0
- data/bin/rails_caddy_dev +47 -3
- data/lib/rails_caddy_dev/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a8fe9678c7487626f988b63e3b205916e386179605835d7eed6699ee9be9aff4
|
|
4
|
+
data.tar.gz: ace04b2d24135e1b3d121a5af921ce68eb1186888b77857d9fecc8c733fbf9df
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e7b56f5687870f5e41ff56523508ed1a968068f75b8b6baebd4b75c2c0513feac58e2ea8106893ca67de61f20cc69263d8393b7ceb070e49bf3fec26e472aa85
|
|
7
|
+
data.tar.gz: cf9046f2aa1d912fb3a37c48ee7a04cc173f164a22088931caf99f7721311fee3b228ff75a66559512212aa664a95617b2692fea84c423f6ddf1501f6f728555
|
data/README.md
CHANGED
|
@@ -75,6 +75,16 @@ export PORT=$(bundle exec rails_caddy_dev port)
|
|
|
75
75
|
|
|
76
76
|
Subdomains are also supported due to a wildcard Caddy route that will be configured. For example, if the resolved domain is `myapp`, then `api.myapp.localhost` will also proxy to your Rails server.
|
|
77
77
|
|
|
78
|
+
### Removing a Route
|
|
79
|
+
|
|
80
|
+
To remove the Caddy route for the current project, run:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
bundle exec rails_caddy_dev delete
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
This deletes the route registered for `RAILS_CADDY_DEV_DOMAIN` (or the current directory's basename if unset).
|
|
87
|
+
|
|
78
88
|
## Development
|
|
79
89
|
|
|
80
90
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `bundle exec rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/bin/rails_caddy_dev
CHANGED
|
@@ -1,11 +1,55 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
require 'net/http'
|
|
5
|
+
require 'socket'
|
|
6
|
+
|
|
7
|
+
def resolve_domain
|
|
8
|
+
domain = ENV.fetch('RAILS_CADDY_DEV_DOMAIN') { File.basename(Dir.pwd) }
|
|
9
|
+
domain = File.basename(Dir.pwd) if domain.strip.empty?
|
|
10
|
+
domain.downcase
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
case ARGV[0]
|
|
14
|
+
when 'port'
|
|
6
15
|
puts(Addrinfo.tcp('', 0).bind { |s| s.local_address.ip_port })
|
|
7
16
|
exit 0
|
|
17
|
+
when 'delete'
|
|
18
|
+
domain = resolve_domain
|
|
19
|
+
caddy_host = ENV.fetch('CADDY_HOST', 'localhost')
|
|
20
|
+
caddy_port = ENV.fetch('CADDY_PORT', '2019').to_i
|
|
21
|
+
|
|
22
|
+
if !ARGV[1..].intersect?(%w[-y --yes])
|
|
23
|
+
print "Delete Caddy route for '#{domain}'? [y/N] "
|
|
24
|
+
answer = $stdin.gets&.strip&.downcase
|
|
25
|
+
if !%w[y yes].include?(answer)
|
|
26
|
+
puts 'Aborted.'
|
|
27
|
+
exit 1
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
uri = URI("http://#{caddy_host}:#{caddy_port}/id/#{domain}")
|
|
32
|
+
begin
|
|
33
|
+
response = Net::HTTP.start(uri.host, uri.port) do |http|
|
|
34
|
+
http.request(Net::HTTP::Delete.new(uri.path))
|
|
35
|
+
end
|
|
36
|
+
rescue Errno::ECONNREFUSED
|
|
37
|
+
puts "⚠️ Caddy admin API not available at #{caddy_host}:#{caddy_port}. Is caddy running?"
|
|
38
|
+
exit 1
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
case response
|
|
42
|
+
when Net::HTTPSuccess
|
|
43
|
+
puts "=> Caddy config for '#{domain}' deleted"
|
|
44
|
+
when Net::HTTPNotFound
|
|
45
|
+
puts "=> No Caddy config found for '#{domain}'"
|
|
46
|
+
else
|
|
47
|
+
puts "=! Failed to delete Caddy config: #{response.body}"
|
|
48
|
+
exit 1
|
|
49
|
+
end
|
|
8
50
|
else
|
|
9
|
-
puts 'Usage:
|
|
51
|
+
puts 'Usage:'
|
|
52
|
+
puts ' rails_caddy_dev port # print an available TCP port'
|
|
53
|
+
puts ' rails_caddy_dev delete [-y|--yes] # remove the Caddy route'
|
|
10
54
|
exit 1
|
|
11
55
|
end
|