lib/roku_builder/plugins/loader.rb in roku_builder-4.16.1 vs lib/roku_builder/plugins/loader.rb in roku_builder-4.17.0

- old
+ new

@@ -8,11 +8,12 @@ def self.commands { sideload: {source: true, device: true, stage: true}, build: {source: true, stage: true, exclude: true}, - delete: {device: true} + delete: {device: true}, + squash: {device: true} } end def self.parse_options(parser:, options:) parser.separator "Commands:" @@ -23,10 +24,13 @@ options[:delete] = true end parser.on("-b", "--build", "Build a zip to be sideloaded") do options[:build] = true end + parser.on("--squash", "Convert currently sideloaded application to squashfs") do + options[:squash] = true + end parser.separator "Options:" parser.on("-x", "--exclude", "Apply exclude config to sideload") do options[:exclude] = true end end @@ -65,9 +69,18 @@ def delete(options:, ignoreFailure: false) payload = {mysubmit: "Delete", archive: ""} response = multipart_connection.post "/plugin_install", payload unless response.status == 200 and response.body =~ /Delete Succeeded/ or ignoreFailure raise ExecutionError, "Failed Unloading" + end + end + + # Convert sideloaded app to squashfs + def squash(options:, ignoreFailure: false) + payload = {mysubmit: "Convert to squashfs", archive: ""} + response = multipart_connection.post "/plugin_install", payload + unless response.status == 200 and response.body =~ /Conversion succeeded/ or ignoreFailure + raise ExecutionError, "Failed Converting to Squashfs" end end def copy(options:, path:) @options = options