device_tool.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/dotcloud/docker/devmapper"
  5. "os"
  6. )
  7. func usage() {
  8. fmt.Printf("Usage: %s [snap new-id base-id] | [remove id] | [mount id mountpoint]\n", os.Args[0])
  9. os.Exit(1)
  10. }
  11. func main() {
  12. devices := devmapper.NewDeviceSet("/var/lib/docker")
  13. if len(os.Args) < 2 {
  14. usage()
  15. }
  16. cmd := os.Args[1]
  17. if cmd == "snap" {
  18. if len(os.Args) < 4 {
  19. usage()
  20. }
  21. err := devices.AddDevice(os.Args[2], os.Args[3])
  22. if err != nil {
  23. fmt.Println("Can't create snap device: ", err)
  24. os.Exit(1)
  25. }
  26. } else if cmd == "remove" {
  27. if len(os.Args) < 3 {
  28. usage()
  29. }
  30. err := devices.RemoveDevice(os.Args[2])
  31. if err != nil {
  32. fmt.Println("Can't remove device: ", err)
  33. os.Exit(1)
  34. }
  35. } else if cmd == "mount" {
  36. if len(os.Args) < 4 {
  37. usage()
  38. }
  39. err := devices.MountDevice(os.Args[2], os.Args[3])
  40. if err != nil {
  41. fmt.Println("Can't create snap device: ", err)
  42. os.Exit(1)
  43. }
  44. } else {
  45. fmt.Printf("Unknown command %s\n", cmd)
  46. if len(os.Args) < 4 {
  47. usage()
  48. }
  49. os.Exit(1)
  50. }
  51. return
  52. }