Przeglądaj źródła

Merge pull request #72 from chooper/master

Create /var/lib/docker so new installs don't fail
Solomon Hykes 12 lat temu
rodzic
commit
a1712ea6d3
2 zmienionych plików z 12 dodań i 6 usunięć
  1. 7 5
      docker.go
  2. 5 1
      future/future.go

+ 7 - 5
docker.go

@@ -109,6 +109,12 @@ func New() (*Docker, error) {
 }
 }
 
 
 func NewFromDirectory(root string) (*Docker, error) {
 func NewFromDirectory(root string) (*Docker, error) {
+	docker_repo := path.Join(root, "containers")
+
+	if err := os.MkdirAll(docker_repo, 0700); err != nil && !os.IsExist(err) {
+		return nil, err
+	}
+
 	store, err := fs.New(path.Join(root, "images"))
 	store, err := fs.New(path.Join(root, "images"))
 	if err != nil {
 	if err != nil {
 		return nil, err
 		return nil, err
@@ -120,16 +126,12 @@ func NewFromDirectory(root string) (*Docker, error) {
 
 
 	docker := &Docker{
 	docker := &Docker{
 		root:           root,
 		root:           root,
-		repository:     path.Join(root, "containers"),
+		repository:     docker_repo,
 		containers:     list.New(),
 		containers:     list.New(),
 		Store:          store,
 		Store:          store,
 		networkManager: netManager,
 		networkManager: netManager,
 	}
 	}
 
 
-	if err := os.MkdirAll(docker.repository, 0700); err != nil && !os.IsExist(err) {
-		return nil, err
-	}
-
 	if err := docker.restore(); err != nil {
 	if err := docker.restore(); err != nil {
 		return nil, err
 		return nil, err
 	}
 	}

+ 5 - 1
future/future.go

@@ -113,13 +113,17 @@ func (r *progressReader) Read(p []byte) (n int, err error) {
 
 
 	// Only update progress for every 1% read
 	// Only update progress for every 1% read
 	update_every := int(0.01 * float64(r.read_total))
 	update_every := int(0.01 * float64(r.read_total))
-    if r.read_progress - r.last_update > update_every {
+    if r.read_progress - r.last_update > update_every || r.read_progress == r.read_total {
 		fmt.Fprintf(r.output, "%d/%d (%.0f%%)\r", 
 		fmt.Fprintf(r.output, "%d/%d (%.0f%%)\r", 
 			r.read_progress,
 			r.read_progress,
 			r.read_total,
 			r.read_total,
 			float64(r.read_progress) / float64(r.read_total) * 100)
 			float64(r.read_progress) / float64(r.read_total) * 100)
 		r.last_update = r.read_progress
 		r.last_update = r.read_progress
 	}
 	}
+	// Send newline when complete
+	if err == io.EOF {
+		fmt.Fprintf(r.output, "\n")
+	}
 
 
 	return read, err
 	return read, err
 }
 }