diff options
Diffstat (limited to 'features/scripts/vm-execute')
-rwxr-xr-x | features/scripts/vm-execute | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/features/scripts/vm-execute b/features/scripts/vm-execute new file mode 100755 index 00000000..fc1bf459 --- /dev/null +++ b/features/scripts/vm-execute @@ -0,0 +1,52 @@ +#!/usr/bin/env ruby + +require 'optparse' +begin + require "#{`git rev-parse --show-toplevel`.chomp}/features/support/helpers/exec_helper.rb" +rescue LoadError => e + raise "This script must be run from within Tails' Git directory." +end +$config = Hash.new + +def debug_log(*args) ; end + +class FakeVM + def get_remote_shell_port + 1337 + end +end + +cmd_opts = { + :spawn => false, + :user => "root" +} + +opt_parser = OptionParser.new do |opts| + opts.banner = "Usage: features/scripts/vm-execute [opts] COMMAND" + opts.separator "" + opts.separator "Runs commands in the VM guest being tested. This script " \ + "must be run from within Tails' Git directory." + opts.separator "" + opts.separator "Options:" + + opts.on("-h", "--help", "Show this message") do + puts opts + exit + end + + opts.on("-u", "--user USER", "Run command as USER") do |user| + cmd_opts[:user] = user + end + + opts.on("-s", "--spawn", + "Run command in non-blocking mode") do |type| + cmd_opts[:spawn] = true + end +end +opt_parser.parse!(ARGV) +cmd = ARGV.join(" ") +c = VMCommand.new(FakeVM.new, cmd, cmd_opts) +puts "Return status: #{c.returncode}" +puts "STDOUT:\n#{c.stdout}" +puts "STDERR:\n#{c.stderr}" +exit c.returncode |