#!/usr/bin/env perl
use warnings;
use strict;

my $subcmd = shift;

my %cmds = ("install" => \&install);


if (exists $cmds{$subcmd}) {
  $cmds{$subcmd}->();
} else {
  print "No such subcommand: '$subcmd'\n";
}

sub install {
  my ($installer, $host_device) = @ARGV;
  $host_device =~ s#^/dev/##;
  my $installer_hostname = "magic";
  my $guest_dev = $host_device;
  $guest_dev =~ tr#/#_#;

  run("xm", "block-attach", $installer, "phys:$host_device", "$guest_dev", "rw");
  run("remctl", $installer_hostname, "installer", "install", $guest_dev);
  run("xm", "block-detach", $installer, $guest_dev, "rw");
}

sub run {
  system("echo", @_);
}
