cloudflare_cli 0.0.3.pre.alpha.2
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 +7 -0
- data/ChangeLog.md +95 -0
- data/README.md +18 -0
- data/bin/cloudflare_cli +4 -0
- data/lib/cloudflare_cli.rb +20 -0
- data/lib/cloudflare_cli/app.rb +56 -0
- data/lib/cloudflare_cli/commands/001_dns_records.rb +42 -0
- data/lib/cloudflare_cli/commands/002_cloudflare_ips.rb +24 -0
- data/lib/cloudflare_cli/commands/003_zones.rb +20 -0
- data/lib/cloudflare_cli/tree.rb +9 -0
- data/lib/cloudflare_cli/tree/ips.rb +15 -0
- data/lib/cloudflare_cli/tree/zones.rb +19 -0
- data/lib/cloudflare_cli/version.rb +3 -0
- metadata +128 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 716949ad82365bdc2c64b15a22b317978d1209197014bf1568849d985fecb6bd
|
4
|
+
data.tar.gz: 3e8a2237719cb60a309c96a8cbc25ef8b5762ec397f92ff110bbb70abffbaf47
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 4e1efffaf8e347df516c9cbffad488ad62f0d953de8181d60d2102985c8e840206b1d326451f84d56915417f8220fcc015f9070db03a2650aeff2c34057e2397
|
7
|
+
data.tar.gz: 6f1246089a2740fca16752336ce94433ae9e3c03edb1996654a34a210a4baf451ddf10d5dff2d53a44514c27f635bb5d9e72036332c485fd7b8ce8e0fd13635f
|
data/ChangeLog.md
ADDED
@@ -0,0 +1,95 @@
|
|
1
|
+
2018-11-28 Ken Spencer <me@iotaspencer.me>
|
2
|
+
|
3
|
+
* ChangeLog: upload ChangeLog
|
4
|
+
|
5
|
+
2018-11-28 Ken Spencer <me@iotaspencer.me>
|
6
|
+
|
7
|
+
* lib/cloudflare_cli/version.rb: Bump cloudflare_cli to 0.0.2
|
8
|
+
|
9
|
+
2018-11-28 Ken Spencer <me@iotaspencer.me>
|
10
|
+
|
11
|
+
* lib/cloudflare_cli/tree/zones.rb: implement /zones
|
12
|
+
|
13
|
+
2018-11-28 Ken Spencer <me@iotaspencer.me>
|
14
|
+
|
15
|
+
* lib/cloudflare_cli/tree/ips.rb: implement /ips
|
16
|
+
|
17
|
+
2018-11-28 Ken Spencer <me@iotaspencer.me>
|
18
|
+
|
19
|
+
* lib/cloudflare_cli/tree.rb: use tree as a middle module to
|
20
|
+
incorporate endpoints as we make them
|
21
|
+
|
22
|
+
2018-11-28 Ken Spencer <me@iotaspencer.me>
|
23
|
+
|
24
|
+
* lib/cloudflare_cli/app.rb: change up app and add a long desc and
|
25
|
+
get couple of the commands working
|
26
|
+
|
27
|
+
2018-11-28 Ken Spencer <me@iotaspencer.me>
|
28
|
+
|
29
|
+
* lib/cloudflare_cli.rb: allow state initialization without a class
|
30
|
+
having to be made and saved
|
31
|
+
|
32
|
+
2018-11-28 Ken Spencer <me@iotaspencer.me>
|
33
|
+
|
34
|
+
* Gemfile: use rubyflare and use my cloned version
|
35
|
+
|
36
|
+
2018-11-26 Ken Spencer <me@iotaspencer.me>
|
37
|
+
|
38
|
+
* lib/cloudflare_cli/tree/ips.rb: add rubyflare and remove httparty,
|
39
|
+
though we're going to bring it back
|
40
|
+
|
41
|
+
2018-11-26 Ken Spencer <me@iotaspencer.me>
|
42
|
+
|
43
|
+
* lib/cloudflare_cli/app.rb: fix up the app file and put it in the
|
44
|
+
gem namespace
|
45
|
+
|
46
|
+
2018-11-26 Ken Spencer <me@iotaspencer.me>
|
47
|
+
|
48
|
+
* lib/cloudflare_cli/api_tree.rb, lib/cloudflare_cli/tree.rb: rename
|
49
|
+
api_tree.rb -> tree.rb
|
50
|
+
|
51
|
+
2018-11-26 Ken Spencer <me@iotaspencer.me>
|
52
|
+
|
53
|
+
* bin/cloudflare_cli: add the .run(ARGV) call back into the file
|
54
|
+
|
55
|
+
2018-11-26 Ken Spencer <me@iotaspencer.me>
|
56
|
+
|
57
|
+
* README.rdoc: convert md to rdoc
|
58
|
+
|
59
|
+
2018-11-26 Ken Spencer <me@iotaspencer.me>
|
60
|
+
|
61
|
+
* doc/App.html, doc/CloudflareCli.html,
|
62
|
+
doc/CloudflareCli/APITree.html, doc/CloudflareCli/APITree/IPs.html,
|
63
|
+
doc/_index.html, doc/class_list.html, doc/css/common.css,
|
64
|
+
doc/css/full_list.css, doc/css/style.css, doc/file.README.html,
|
65
|
+
doc/file_list.html, doc/frames.html, doc/index.html, doc/js/app.js,
|
66
|
+
doc/js/full_list.js, doc/js/jquery.js, doc/method_list.html,
|
67
|
+
doc/top-level-namespace.html: remove 'doc' folder in favor of 'docs'
|
68
|
+
|
69
|
+
2018-11-26 Ken Spencer <me@iotaspencer.me>
|
70
|
+
|
71
|
+
* .yardopts, README.md => README.rdoc, cloudflare_cli.md =>
|
72
|
+
cloudflare_cli.rdoc, docs/App.html, docs/CloudflareCli.html,
|
73
|
+
docs/CloudflareCli/APITree.html,
|
74
|
+
docs/CloudflareCli/APITree/IPs.html, docs/_index.html,
|
75
|
+
docs/class_list.html, docs/css/common.css, docs/css/full_list.css,
|
76
|
+
docs/css/style.css, docs/file.README.html, docs/file_list.html,
|
77
|
+
docs/frames.html, docs/index.html, docs/js/app.js,
|
78
|
+
docs/js/full_list.js, docs/js/jquery.js, docs/method_list.html,
|
79
|
+
docs/top-level-namespace.html: upload docs
|
80
|
+
|
81
|
+
2018-11-26 Ken Spencer <me@iotaspencer.me>
|
82
|
+
|
83
|
+
* .yardoc/checksums, .yardoc/complete, cloudflare_cli.gemspec,
|
84
|
+
doc/App.html, doc/CloudflareCli.html,
|
85
|
+
doc/CloudflareCli/APITree.html, doc/CloudflareCli/APITree/IPs.html,
|
86
|
+
doc/_index.html, doc/class_list.html, doc/css/common.css,
|
87
|
+
doc/css/full_list.css, doc/css/style.css, doc/file.README.html,
|
88
|
+
doc/file_list.html, doc/frames.html, doc/index.html, doc/js/app.js,
|
89
|
+
doc/js/full_list.js, doc/js/jquery.js, doc/method_list.html,
|
90
|
+
doc/top-level-namespace.html: more changes
|
91
|
+
|
92
|
+
2018-11-26 Ken Spencer <me@iotaspencer.me>
|
93
|
+
|
94
|
+
* Initial Commit
|
95
|
+
|
data/README.md
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
= cloudflare_cli
|
2
|
+
|
3
|
+
A Command Line Interface for interacting with CloudFlare's API without having to
|
4
|
+
mess with scripting a script yourself.
|
5
|
+
|
6
|
+
|
7
|
+
== Installation
|
8
|
+
|
9
|
+
gem install cloudflare_cli
|
10
|
+
|
11
|
+
== About
|
12
|
+
|
13
|
+
This is not a library or require'able gem, this is an executable only.
|
14
|
+
If you wish to use CloudFlare's API in more advanced ways, then you would need
|
15
|
+
to install a gem that is requirable like [RubyFlare](https://github.com/trev/rubyflare)
|
16
|
+
which this gem uses behind the scenes.
|
17
|
+
|
18
|
+
gem install rubyflare
|
data/bin/cloudflare_cli
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
require "rubyflare"
|
2
|
+
# Add requires for other files you add to your project here, so
|
3
|
+
# you just need to require this one file in your bin file
|
4
|
+
|
5
|
+
module CloudflareCli
|
6
|
+
class State
|
7
|
+
# @param [Hash] options Hash of options to initiate the State
|
8
|
+
def self.initiate(options)
|
9
|
+
@@email = options[:email]
|
10
|
+
@@api_key = options["api-key"]
|
11
|
+
@@ctx = Rubyflare.connect_with(@@email, @@api_key)
|
12
|
+
end
|
13
|
+
def self.ctx
|
14
|
+
@@ctx
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
require "cloudflare_cli/version"
|
20
|
+
require "cloudflare_cli/app"
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require "gli"
|
2
|
+
require "json"
|
3
|
+
require "cloudflare_cli/tree"
|
4
|
+
|
5
|
+
module CloudflareCli
|
6
|
+
class App
|
7
|
+
extend GLI::App
|
8
|
+
program_desc "Interface with the Cloudflare API!"
|
9
|
+
|
10
|
+
program_long_desc <<~HEREDOC
|
11
|
+
|
12
|
+
#{exe_name} is an interface into the Cloudflare API,
|
13
|
+
usage is rate-limited by Cloudflare itself, not the gem.
|
14
|
+
|
15
|
+
See https://api.cloudflare.com/#getting-started-requests for information
|
16
|
+
on the API and the linked anchor for rate-limiting specifically.
|
17
|
+
HEREDOC
|
18
|
+
|
19
|
+
version CloudflareCli::VERSION
|
20
|
+
|
21
|
+
config_file ".cfcli/config"
|
22
|
+
subcommand_option_handling :normal
|
23
|
+
arguments :strict
|
24
|
+
wrap_help_text :verbatim
|
25
|
+
|
26
|
+
|
27
|
+
commands_from 'cloudflare_cli/commands'
|
28
|
+
flag [:email], desc: "Cloudflare E-Mail", default_value: "", arg_name: "EMAIL", mask: true
|
29
|
+
flag ["api-key"], desc: "Cloudflare API Key", default_value: "", arg_name: "APIKEY", mask: true
|
30
|
+
|
31
|
+
around do |global_options, command, options, arguments, code|
|
32
|
+
CloudflareCli::State.initiate(global_options)
|
33
|
+
code.call
|
34
|
+
end
|
35
|
+
pre do |global, command, options, args|
|
36
|
+
# Pre logic here
|
37
|
+
# Return true to proceed; false to abort and not call the
|
38
|
+
# chosen command
|
39
|
+
# Use skips_pre before a command to skip this block
|
40
|
+
# on that command only
|
41
|
+
true
|
42
|
+
end
|
43
|
+
#
|
44
|
+
# post do |global,command,options,args|
|
45
|
+
# # Post logic here
|
46
|
+
# # Use skips_post before a command to skip this
|
47
|
+
# # block on that command only
|
48
|
+
# end
|
49
|
+
#
|
50
|
+
# on_error do |exception|
|
51
|
+
# # Error logic here
|
52
|
+
# # return false to skip default error handling
|
53
|
+
# true
|
54
|
+
# end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module CloudflareCli
|
2
|
+
class App
|
3
|
+
extend GLI::App
|
4
|
+
|
5
|
+
desc "DNS Record Management"
|
6
|
+
command "dns-record" do |c|
|
7
|
+
c.desc "add a record"
|
8
|
+
c.command :add do |dnsadd|
|
9
|
+
dnsadd.action do |global_options, options, args|
|
10
|
+
|
11
|
+
# Your command logic here
|
12
|
+
|
13
|
+
# If you have any errors, just raise them
|
14
|
+
# raise "that command made no sense"
|
15
|
+
|
16
|
+
puts "dns-record add command ran"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
c.desc 'remove a record'
|
21
|
+
c.command [:rem, :del, :delete] do |dnsrem|
|
22
|
+
dnsrem.action do |global_options, options, args|
|
23
|
+
puts 'dns-record rem ran'
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
c.desc 'update a record'
|
28
|
+
c.command [:update, :modify] do |dnsmod|
|
29
|
+
dnsmod.action do |global_options, options, args|
|
30
|
+
puts 'dns-record update ran'
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
c.desc 'get a record'
|
35
|
+
c.command [:show] do |dnsshow|
|
36
|
+
dnsshow.action do |global_options, options, args|
|
37
|
+
puts 'dns-record show ran'
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'gli'
|
2
|
+
module CloudflareCli
|
3
|
+
class App
|
4
|
+
extend GLI::App
|
5
|
+
|
6
|
+
desc "Return Cloudflare IPs"
|
7
|
+
command :ips do |c|
|
8
|
+
c.desc "list out cloudflare's IPs"
|
9
|
+
c.command :list do |li|
|
10
|
+
|
11
|
+
li.switch [:pretty, :p], desc: "make the display of the ips pretty", negatable: false
|
12
|
+
|
13
|
+
li.action do |global_options, options, args|
|
14
|
+
if options[:pretty]
|
15
|
+
pp CloudflareCli::Endpoints::IPs.list.body
|
16
|
+
else
|
17
|
+
puts CloudflareCli::Endpoints::IPs.list.body
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
c.default_command :list
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module CloudflareCli
|
2
|
+
class App
|
3
|
+
extend GLI::App
|
4
|
+
|
5
|
+
desc "Use all the non-dns '/zones/*' endpoints"
|
6
|
+
command :zones do |c|
|
7
|
+
c.desc "list all zones or filter them"
|
8
|
+
c.command [:all, "list-zones"] do |lz|
|
9
|
+
lz.example "#{exe_name} zones [list-zones|all]", desc: "List all zones without filtering them"
|
10
|
+
lz.flag [:name], desc: "Zone name to search for"
|
11
|
+
lz.action do |global_options, options, args|
|
12
|
+
puts CloudflareCli::Endpoints::Zones.all(options)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
c.action do |global_options, options, args|
|
16
|
+
end
|
17
|
+
c.default_command false
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require "rubyflare"
|
2
|
+
|
3
|
+
module CloudflareCli
|
4
|
+
module Endpoints
|
5
|
+
class Zones
|
6
|
+
|
7
|
+
# Return Cloudflare Account Zones
|
8
|
+
def self.all(options)
|
9
|
+
puts options
|
10
|
+
#begin
|
11
|
+
# ctx = CloudflareCli::State.ctx
|
12
|
+
# ctx.get('zones')
|
13
|
+
#rescue Rubyflare::ConnectionError => e
|
14
|
+
# puts e.response.body
|
15
|
+
#end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
metadata
ADDED
@@ -0,0 +1,128 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cloudflare_cli
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.3.pre.alpha.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ken Spencer
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-11-29 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rdoc
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: aruba
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: gli
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.18.0
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 2.18.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: httparty
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.16.2
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.16.2
|
83
|
+
description:
|
84
|
+
email: me+cloudflare_cli@iotaspencer.me
|
85
|
+
executables:
|
86
|
+
- cloudflare_cli
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files: []
|
89
|
+
files:
|
90
|
+
- ChangeLog.md
|
91
|
+
- README.md
|
92
|
+
- bin/cloudflare_cli
|
93
|
+
- lib/cloudflare_cli.rb
|
94
|
+
- lib/cloudflare_cli/app.rb
|
95
|
+
- lib/cloudflare_cli/commands/001_dns_records.rb
|
96
|
+
- lib/cloudflare_cli/commands/002_cloudflare_ips.rb
|
97
|
+
- lib/cloudflare_cli/commands/003_zones.rb
|
98
|
+
- lib/cloudflare_cli/tree.rb
|
99
|
+
- lib/cloudflare_cli/tree/ips.rb
|
100
|
+
- lib/cloudflare_cli/tree/zones.rb
|
101
|
+
- lib/cloudflare_cli/version.rb
|
102
|
+
homepage: https://iotaspencer.me/projects/cloudflare_cli
|
103
|
+
licenses:
|
104
|
+
- MIT
|
105
|
+
metadata: {}
|
106
|
+
post_install_message:
|
107
|
+
rdoc_options: []
|
108
|
+
require_paths:
|
109
|
+
- lib
|
110
|
+
- lib
|
111
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
112
|
+
requirements:
|
113
|
+
- - ">="
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: '0'
|
116
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
|
+
requirements:
|
118
|
+
- - ">"
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: 1.3.1
|
121
|
+
requirements: []
|
122
|
+
rubyforge_project:
|
123
|
+
rubygems_version: 2.7.6
|
124
|
+
signing_key:
|
125
|
+
specification_version: 4
|
126
|
+
summary: A CLI encapsulating /hopefully/ all of cloudflare's numerous endpoints (as
|
127
|
+
soon as its fully finished)
|
128
|
+
test_files: []
|