main.go 727 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package main
  2. import (
  3. "encoding/json"
  4. "github.com/dotcloud/docker/pkg/libcontainer"
  5. "log"
  6. "os"
  7. )
  8. func main() {
  9. container, err := loadContainer()
  10. if err != nil {
  11. log.Fatal(err)
  12. }
  13. switch os.Args[1] {
  14. case "exec":
  15. exitCode, err := execCommand(container)
  16. if err != nil {
  17. log.Fatal(err)
  18. }
  19. os.Exit(exitCode)
  20. case "init":
  21. if err := initCommand(container, os.Args[2]); err != nil {
  22. log.Fatal(err)
  23. }
  24. }
  25. }
  26. func loadContainer() (*libcontainer.Container, error) {
  27. f, err := os.Open("container.json")
  28. if err != nil {
  29. return nil, err
  30. }
  31. defer f.Close()
  32. var container *libcontainer.Container
  33. if err := json.NewDecoder(f).Decode(&container); err != nil {
  34. return nil, err
  35. }
  36. return container, nil
  37. }