raketary 0.2.1 → 0.2.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 +4 -4
- data/CHANGELOG.md +18 -2
- data/Gemfile +0 -18
- data/Gemfile.lock +13 -12
- data/README.md +5 -5
- data/Rakefile +3 -21
- data/bin/raketary +5 -16
- data/lib/raketary.rb +6 -18
- data/lib/raketary/app.rb +19 -31
- data/lib/raketary/bump_cmd.rb +39 -48
- data/lib/raketary/cmd.rb +31 -43
- data/lib/raketary/errors.rb +6 -18
- data/lib/raketary/ghp_sync_cmd.rb +32 -44
- data/lib/raketary/github_pkg_cmd.rb +16 -28
- data/lib/raketary/irb_cmd.rb +14 -26
- data/lib/raketary/nokogiri_cmd.rb +18 -30
- data/lib/raketary/run_cmd.rb +17 -29
- data/lib/raketary/sub_cmd.rb +5 -17
- data/lib/raketary/version.rb +4 -16
- data/raketary.gemspec +14 -32
- metadata +11 -11
data/lib/raketary/cmd.rb
CHANGED
@@ -1,23 +1,11 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
1
|
# encoding: UTF-8
|
3
2
|
# frozen_string_literal: true
|
4
3
|
|
5
4
|
#--
|
6
5
|
# This file is part of Raketary.
|
7
|
-
# Copyright (c) 2019-
|
8
|
-
#
|
9
|
-
#
|
10
|
-
# it under the terms of the GNU Lesser General Public License as published by
|
11
|
-
# the Free Software Foundation, either version 3 of the License, or
|
12
|
-
# (at your option) any later version.
|
13
|
-
#
|
14
|
-
# Raketary is distributed in the hope that it will be useful,
|
15
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
16
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
17
|
-
# GNU Lesser General Public License for more details.
|
18
|
-
#
|
19
|
-
# You should have received a copy of the GNU Lesser General Public License
|
20
|
-
# along with Raketary. If not, see <https://www.gnu.org/licenses/>.
|
6
|
+
# Copyright (c) 2019-2021 Jonathan Bradley Whited
|
7
|
+
#
|
8
|
+
# SPDX-License-Identifier: LGPL-3.0-or-later
|
21
9
|
#++
|
22
10
|
|
23
11
|
|
@@ -27,7 +15,7 @@ require 'raketary/errors'
|
|
27
15
|
|
28
16
|
module Raketary
|
29
17
|
###
|
30
|
-
# @author Jonathan Bradley Whited
|
18
|
+
# @author Jonathan Bradley Whited
|
31
19
|
# @since 0.1.0
|
32
20
|
###
|
33
21
|
class Cmd
|
@@ -35,70 +23,70 @@ module Raketary
|
|
35
23
|
attr_reader :leftover_args
|
36
24
|
attr_reader :name
|
37
25
|
attr_reader :sub_cmds
|
38
|
-
|
26
|
+
|
39
27
|
def initialize(app,name)
|
40
28
|
@app = app
|
41
29
|
@leftover_args = []
|
42
30
|
@name = name
|
43
31
|
@sub_cmds = {}
|
44
32
|
end
|
45
|
-
|
33
|
+
|
46
34
|
def parse!(is_app=false)
|
47
|
-
parser = OptionParser.new
|
35
|
+
parser = OptionParser.new do |op|
|
48
36
|
op.program_name = app.name
|
49
37
|
op.version = app.version
|
50
|
-
|
38
|
+
|
51
39
|
op.banner = ''
|
52
40
|
op.separator '' if is_app
|
53
|
-
|
54
|
-
if !@sub_cmds.empty?
|
41
|
+
|
42
|
+
if !@sub_cmds.empty?
|
55
43
|
op.separator is_app ? 'Commands:' : "[#{@name}] Commands:"
|
56
|
-
|
44
|
+
|
57
45
|
@sub_cmds.each do |name,sub_cmd|
|
58
|
-
name_desc = ''.dup
|
46
|
+
name_desc = ''.dup
|
59
47
|
name_desc << op.summary_indent
|
60
48
|
name_desc << ("%-#{op.summary_width}s #{sub_cmd.desc}" % [name])
|
61
|
-
|
49
|
+
|
62
50
|
op.separator name_desc
|
63
51
|
end
|
64
52
|
op.separator ''
|
65
53
|
end
|
66
|
-
|
54
|
+
|
67
55
|
op.separator is_app ? 'Options:' : "[#{@name}] Options:"
|
68
|
-
|
56
|
+
|
69
57
|
op.on_tail('-h','--help','show this help')
|
70
|
-
|
58
|
+
|
71
59
|
yield op
|
72
60
|
end
|
73
|
-
|
61
|
+
|
74
62
|
options = {}
|
75
|
-
@leftover_args = parser.order!(app.args,into: options).dup
|
76
|
-
|
77
|
-
options.
|
78
|
-
if (key_s = key.to_s
|
79
|
-
options[key_s.gsub('-','_').to_sym
|
63
|
+
@leftover_args = parser.order!(app.args,into: options).dup
|
64
|
+
|
65
|
+
options.each_key do |key|
|
66
|
+
if (key_s = key.to_s).include?('-')
|
67
|
+
options[key_s.gsub('-','_').to_sym] = options[key]
|
80
68
|
options.delete(key)
|
81
69
|
end
|
82
70
|
end
|
83
71
|
app.options.merge!(options)
|
84
|
-
|
72
|
+
|
85
73
|
app.parsers << parser
|
86
|
-
|
87
|
-
if !app.args.nil?
|
88
|
-
if !(sub_cmd = @sub_cmds[sub_cmd_name]).nil?
|
74
|
+
|
75
|
+
if !app.args.nil? && !(sub_cmd_name = app.args.shift).nil?
|
76
|
+
if !(sub_cmd = @sub_cmds[sub_cmd_name]).nil?
|
89
77
|
begin
|
90
|
-
sub_cmd.cmd_class.new(app,sub_cmd_name).run
|
78
|
+
sub_cmd.cmd_class.new(app,sub_cmd_name).run
|
91
79
|
rescue DoNotRunCmdError => e
|
92
80
|
app.soft_error = e.soft_msg
|
93
81
|
end
|
94
82
|
end
|
95
83
|
end
|
96
|
-
|
84
|
+
|
97
85
|
return parser
|
98
86
|
end
|
99
|
-
|
100
|
-
def run
|
101
|
-
raise DoNotRunCmdError if app.options[:help] || app.ran_cmd?
|
87
|
+
|
88
|
+
def run
|
89
|
+
raise DoNotRunCmdError if app.options[:help] || app.ran_cmd?
|
102
90
|
end
|
103
91
|
end
|
104
92
|
end
|
data/lib/raketary/errors.rb
CHANGED
@@ -1,37 +1,25 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
1
|
# encoding: UTF-8
|
3
2
|
# frozen_string_literal: true
|
4
3
|
|
5
4
|
#--
|
6
5
|
# This file is part of Raketary.
|
7
|
-
# Copyright (c) 2019 Jonathan Bradley Whited
|
8
|
-
#
|
9
|
-
#
|
10
|
-
# it under the terms of the GNU Lesser General Public License as published by
|
11
|
-
# the Free Software Foundation, either version 3 of the License, or
|
12
|
-
# (at your option) any later version.
|
13
|
-
#
|
14
|
-
# Raketary is distributed in the hope that it will be useful,
|
15
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
16
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
17
|
-
# GNU Lesser General Public License for more details.
|
18
|
-
#
|
19
|
-
# You should have received a copy of the GNU Lesser General Public License
|
20
|
-
# along with Raketary. If not, see <https://www.gnu.org/licenses/>.
|
6
|
+
# Copyright (c) 2019-2021 Jonathan Bradley Whited
|
7
|
+
#
|
8
|
+
# SPDX-License-Identifier: LGPL-3.0-or-later
|
21
9
|
#++
|
22
10
|
|
23
11
|
|
24
12
|
module Raketary
|
25
13
|
###
|
26
|
-
# @author Jonathan Bradley Whited
|
14
|
+
# @author Jonathan Bradley Whited
|
27
15
|
# @since 0.1.0
|
28
16
|
###
|
29
17
|
class DoNotRunCmdError < StandardError
|
30
18
|
attr_accessor :soft_msg
|
31
|
-
|
19
|
+
|
32
20
|
def initialize(msg=nil)
|
33
21
|
super(msg)
|
34
|
-
|
22
|
+
|
35
23
|
@soft_msg = msg
|
36
24
|
end
|
37
25
|
end
|
@@ -1,23 +1,11 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
1
|
# encoding: UTF-8
|
3
2
|
# frozen_string_literal: true
|
4
3
|
|
5
4
|
#--
|
6
5
|
# This file is part of Raketary.
|
7
|
-
# Copyright (c) 2020 Jonathan Bradley Whited
|
8
|
-
#
|
9
|
-
#
|
10
|
-
# it under the terms of the GNU Lesser General Public License as published by
|
11
|
-
# the Free Software Foundation, either version 3 of the License, or
|
12
|
-
# (at your option) any later version.
|
13
|
-
#
|
14
|
-
# Raketary is distributed in the hope that it will be useful,
|
15
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
16
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
17
|
-
# GNU Lesser General Public License for more details.
|
18
|
-
#
|
19
|
-
# You should have received a copy of the GNU Lesser General Public License
|
20
|
-
# along with Raketary. If not, see <https://www.gnu.org/licenses/>.
|
6
|
+
# Copyright (c) 2020-2021 Jonathan Bradley Whited
|
7
|
+
#
|
8
|
+
# SPDX-License-Identifier: LGPL-3.0-or-later
|
21
9
|
#++
|
22
10
|
|
23
11
|
|
@@ -29,68 +17,68 @@ require 'yard_ghurt/ghp_sync_task'
|
|
29
17
|
|
30
18
|
module Raketary
|
31
19
|
###
|
32
|
-
# @author Jonathan Bradley Whited
|
20
|
+
# @author Jonathan Bradley Whited
|
33
21
|
# @since 0.2.0
|
34
22
|
###
|
35
23
|
class GHPSyncCmd < Cmd
|
36
24
|
def initialize(*)
|
37
25
|
super
|
38
|
-
|
26
|
+
|
39
27
|
# Kind of hacky, but necessary because sync_args can have a hyphen/dash.
|
40
|
-
app.args.each_with_index
|
41
|
-
arg = arg.strip
|
42
|
-
|
43
|
-
if arg == '-s' || arg.downcase
|
28
|
+
app.args.each_with_index do |arg,i|
|
29
|
+
arg = arg.strip
|
30
|
+
|
31
|
+
if arg == '-s' || arg.downcase == '--sync-args'
|
44
32
|
sync_args = app.args[i + 1] # If out of bounds, nil
|
45
|
-
|
46
|
-
if !sync_args.nil?
|
33
|
+
|
34
|
+
if !sync_args.nil?
|
47
35
|
sync_args = Shellwords.split(sync_args)
|
48
|
-
sync_args = nil if sync_args.nil?
|
49
|
-
|
36
|
+
sync_args = nil if sync_args.nil? || sync_args.empty?
|
37
|
+
|
50
38
|
app.options[:sync_args] = sync_args
|
51
39
|
end
|
52
|
-
|
40
|
+
|
53
41
|
app.args.delete_at(i)
|
54
42
|
app.args.delete_at(i) # If out of bounds, no error
|
55
|
-
|
43
|
+
|
56
44
|
break
|
57
45
|
end
|
58
46
|
end
|
59
|
-
|
60
|
-
parse!
|
47
|
+
|
48
|
+
parse! do |op|
|
61
49
|
op.on('-g','--ghp-dir STR','the destination (GitHub Pages) directory to sync "doc/" to')
|
62
|
-
|
50
|
+
|
63
51
|
op.separator op.summary_indent
|
64
|
-
|
52
|
+
|
65
53
|
op.on('-d','--deploy',"actually deploy (don't just do a dry-run)")
|
66
54
|
op.on('-s','--sync-args STR','additional args to pass to the sync command') do |sync_args|
|
67
55
|
app.options[:sync_args] # Already processed above
|
68
56
|
end
|
69
|
-
|
57
|
+
|
70
58
|
op.separator op.summary_indent
|
71
59
|
end
|
72
60
|
end
|
73
|
-
|
74
|
-
def run
|
61
|
+
|
62
|
+
def run
|
75
63
|
super()
|
76
|
-
|
64
|
+
|
77
65
|
ghp_dir = app.options[:ghp_dir]
|
78
|
-
|
66
|
+
|
79
67
|
return unless ghp_dir
|
80
|
-
|
68
|
+
|
81
69
|
deploy = app.options[:deploy]
|
82
70
|
sync_args = app.options[:sync_args]
|
83
|
-
|
84
|
-
sync_task = YardGhurt::GHPSyncTask.new
|
71
|
+
|
72
|
+
sync_task = YardGhurt::GHPSyncTask.new do |task|
|
85
73
|
task.ghp_dir = ghp_dir
|
86
|
-
task.sync_args.push(*sync_args) unless sync_args.nil?
|
74
|
+
task.sync_args.push(*sync_args) unless sync_args.nil?
|
87
75
|
end
|
88
|
-
|
76
|
+
|
89
77
|
sync_task = Rake::Task[sync_task.name]
|
90
|
-
|
91
|
-
sync_task.reenable
|
78
|
+
|
79
|
+
sync_task.reenable
|
92
80
|
sync_task.invoke(deploy)
|
93
|
-
|
81
|
+
|
94
82
|
app.ran_cmd = true
|
95
83
|
end
|
96
84
|
end
|
@@ -1,23 +1,11 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
1
|
# encoding: UTF-8
|
3
2
|
# frozen_string_literal: true
|
4
3
|
|
5
4
|
#--
|
6
5
|
# This file is part of Raketary.
|
7
|
-
# Copyright (c) 2020 Jonathan Bradley Whited
|
8
|
-
#
|
9
|
-
#
|
10
|
-
# it under the terms of the GNU Lesser General Public License as published by
|
11
|
-
# the Free Software Foundation, either version 3 of the License, or
|
12
|
-
# (at your option) any later version.
|
13
|
-
#
|
14
|
-
# Raketary is distributed in the hope that it will be useful,
|
15
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
16
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
17
|
-
# GNU Lesser General Public License for more details.
|
18
|
-
#
|
19
|
-
# You should have received a copy of the GNU Lesser General Public License
|
20
|
-
# along with Raketary. If not, see <https://www.gnu.org/licenses/>.
|
6
|
+
# Copyright (c) 2020-2021 Jonathan Bradley Whited
|
7
|
+
#
|
8
|
+
# SPDX-License-Identifier: LGPL-3.0-or-later
|
21
9
|
#++
|
22
10
|
|
23
11
|
|
@@ -29,32 +17,32 @@ require 'raketeer/github_pkg_task'
|
|
29
17
|
|
30
18
|
module Raketary
|
31
19
|
###
|
32
|
-
# @author Jonathan Bradley Whited
|
20
|
+
# @author Jonathan Bradley Whited
|
33
21
|
# @since 0.1.2
|
34
22
|
###
|
35
23
|
class GitHubPkgCmd < Cmd
|
36
24
|
def initialize(*)
|
37
25
|
super
|
38
|
-
|
39
|
-
parse!
|
26
|
+
|
27
|
+
parse! do |op|
|
40
28
|
op.on('-u','--user STR','set the GitHub username')
|
41
|
-
|
29
|
+
|
42
30
|
op.separator op.summary_indent
|
43
31
|
end
|
44
32
|
end
|
45
|
-
|
46
|
-
def run
|
33
|
+
|
34
|
+
def run
|
47
35
|
super()
|
48
|
-
|
49
|
-
ghpkg_task = Raketeer::GitHubPkgTask.new
|
36
|
+
|
37
|
+
ghpkg_task = Raketeer::GitHubPkgTask.new do |task|
|
50
38
|
task.username = app.options[:user]
|
51
39
|
end
|
52
|
-
|
40
|
+
|
53
41
|
ghpkg_task = Rake::Task[ghpkg_task.name]
|
54
|
-
|
55
|
-
ghpkg_task.reenable
|
56
|
-
ghpkg_task.invoke
|
57
|
-
|
42
|
+
|
43
|
+
ghpkg_task.reenable
|
44
|
+
ghpkg_task.invoke
|
45
|
+
|
58
46
|
app.ran_cmd = true
|
59
47
|
end
|
60
48
|
end
|
data/lib/raketary/irb_cmd.rb
CHANGED
@@ -1,23 +1,11 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
1
|
# encoding: UTF-8
|
3
2
|
# frozen_string_literal: true
|
4
3
|
|
5
4
|
#--
|
6
5
|
# This file is part of Raketary.
|
7
|
-
# Copyright (c) 2019-
|
8
|
-
#
|
9
|
-
#
|
10
|
-
# it under the terms of the GNU Lesser General Public License as published by
|
11
|
-
# the Free Software Foundation, either version 3 of the License, or
|
12
|
-
# (at your option) any later version.
|
13
|
-
#
|
14
|
-
# Raketary is distributed in the hope that it will be useful,
|
15
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
16
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
17
|
-
# GNU Lesser General Public License for more details.
|
18
|
-
#
|
19
|
-
# You should have received a copy of the GNU Lesser General Public License
|
20
|
-
# along with Raketary. If not, see <https://www.gnu.org/licenses/>.
|
6
|
+
# Copyright (c) 2019-2021 Jonathan Bradley Whited
|
7
|
+
#
|
8
|
+
# SPDX-License-Identifier: LGPL-3.0-or-later
|
21
9
|
#++
|
22
10
|
|
23
11
|
|
@@ -28,27 +16,27 @@ require 'raketeer/irb_task'
|
|
28
16
|
|
29
17
|
module Raketary
|
30
18
|
###
|
31
|
-
# @author Jonathan Bradley Whited
|
19
|
+
# @author Jonathan Bradley Whited
|
32
20
|
# @since 0.1.0
|
33
21
|
###
|
34
22
|
class IRBCmd < Cmd
|
35
23
|
def initialize(*)
|
36
24
|
super
|
37
|
-
|
38
|
-
parse!
|
25
|
+
|
26
|
+
parse! do |op|
|
39
27
|
#op.separator op.summary_indent
|
40
28
|
end
|
41
29
|
end
|
42
|
-
|
43
|
-
def run
|
30
|
+
|
31
|
+
def run
|
44
32
|
super()
|
45
|
-
|
46
|
-
irb_task = Raketeer::IRBTask.new
|
33
|
+
|
34
|
+
irb_task = Raketeer::IRBTask.new
|
47
35
|
irb_task = Rake::Task[irb_task.name]
|
48
|
-
|
49
|
-
irb_task.reenable
|
50
|
-
irb_task.invoke
|
51
|
-
|
36
|
+
|
37
|
+
irb_task.reenable
|
38
|
+
irb_task.invoke
|
39
|
+
|
52
40
|
app.ran_cmd = true
|
53
41
|
end
|
54
42
|
end
|
@@ -1,23 +1,11 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
1
|
# encoding: UTF-8
|
3
2
|
# frozen_string_literal: true
|
4
3
|
|
5
4
|
#--
|
6
5
|
# This file is part of Raketary.
|
7
|
-
# Copyright (c) 2019-
|
8
|
-
#
|
9
|
-
#
|
10
|
-
# it under the terms of the GNU Lesser General Public License as published by
|
11
|
-
# the Free Software Foundation, either version 3 of the License, or
|
12
|
-
# (at your option) any later version.
|
13
|
-
#
|
14
|
-
# Raketary is distributed in the hope that it will be useful,
|
15
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
16
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
17
|
-
# GNU Lesser General Public License for more details.
|
18
|
-
#
|
19
|
-
# You should have received a copy of the GNU Lesser General Public License
|
20
|
-
# along with Raketary. If not, see <https://www.gnu.org/licenses/>.
|
6
|
+
# Copyright (c) 2019-2021 Jonathan Bradley Whited
|
7
|
+
#
|
8
|
+
# SPDX-License-Identifier: LGPL-3.0-or-later
|
21
9
|
#++
|
22
10
|
|
23
11
|
|
@@ -28,16 +16,16 @@ require 'raketeer/nokogiri_install_tasks'
|
|
28
16
|
|
29
17
|
module Raketary
|
30
18
|
###
|
31
|
-
# @author Jonathan Bradley Whited
|
19
|
+
# @author Jonathan Bradley Whited
|
32
20
|
# @since 0.1.0
|
33
21
|
###
|
34
22
|
class NokogiriCmd < Cmd
|
35
23
|
def initialize(*)
|
36
24
|
super
|
37
|
-
|
25
|
+
|
38
26
|
@main_opts = 0
|
39
|
-
|
40
|
-
parse!
|
27
|
+
|
28
|
+
parse! do |op|
|
41
29
|
op.on('-a','--apt','install Nokogiri libs for Ubuntu/Debian') do
|
42
30
|
@main_opts += 1
|
43
31
|
true
|
@@ -53,28 +41,28 @@ module Raketary
|
|
53
41
|
op.separator op.summary_indent
|
54
42
|
end
|
55
43
|
end
|
56
|
-
|
57
|
-
def run
|
44
|
+
|
45
|
+
def run
|
58
46
|
super()
|
59
47
|
return if @main_opts <= 0
|
60
|
-
|
48
|
+
|
61
49
|
if @main_opts >= 2
|
62
50
|
raise DoNotRunCmdError,'Please choose only one platform to install the libs for.'
|
63
51
|
end
|
64
|
-
|
52
|
+
|
65
53
|
install_task = nil
|
66
|
-
|
54
|
+
|
67
55
|
if app.options[:apt]
|
68
|
-
install_task = Raketeer::NokogiriAPTTask.new
|
56
|
+
install_task = Raketeer::NokogiriAPTTask.new
|
69
57
|
elsif app.options[:dnf]
|
70
|
-
install_task = Raketeer::NokogiriDNFTask.new
|
58
|
+
install_task = Raketeer::NokogiriDNFTask.new
|
71
59
|
elsif app.options[:other]
|
72
|
-
install_task = Raketeer::NokogiriOtherTask.new
|
60
|
+
install_task = Raketeer::NokogiriOtherTask.new
|
73
61
|
end
|
74
|
-
|
75
|
-
if !install_task.nil?
|
62
|
+
|
63
|
+
if !install_task.nil?
|
76
64
|
install_task.run(install_task,nil)
|
77
|
-
|
65
|
+
|
78
66
|
app.ran_cmd = true
|
79
67
|
end
|
80
68
|
end
|