package main

import (
	"fmt"
	"github.com/dotcloud/docker/devmapper"
	"os"
)

func usage() {
	fmt.Printf("Usage: %s [snap new-id base-id] | [remove id] | [mount id mountpoint]\n", os.Args[0])
	os.Exit(1)
}

func main() {
	devices := devmapper.NewDeviceSet("/var/lib/docker")

	if len(os.Args) < 2 {
		usage()
	}

	cmd := os.Args[1]
	if cmd == "snap" {
		if len(os.Args) < 4 {
			usage()
		}

		err := devices.AddDevice(os.Args[2], os.Args[3])
		if err != nil {
			fmt.Println("Can't create snap device: ", err)
			os.Exit(1)
		}
	} else if cmd == "remove" {
		if len(os.Args) < 3 {
			usage()
		}

		err := devices.RemoveDevice(os.Args[2])
		if err != nil {
			fmt.Println("Can't remove device: ", err)
			os.Exit(1)
		}
	} else if cmd == "mount" {
		if len(os.Args) < 4 {
			usage()
		}

		err := devices.MountDevice(os.Args[2], os.Args[3])
		if err != nil {
			fmt.Println("Can't create snap device: ", err)
			os.Exit(1)
		}
	} else {
		fmt.Printf("Unknown command %s\n", cmd)
		if len(os.Args) < 4 {
			usage()
		}

		os.Exit(1)
	}

	return
}