forked from juju/juju
/
diskmanager.go
36 lines (27 loc) · 900 Bytes
/
diskmanager.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Copyright 2013 Canonical Ltd.
// Licensed under the AGPLv3, see LICENCE file for details.
package tools
import (
"io"
"github.com/juju/version/v2"
"github.com/DavinZhang/juju/tools"
)
// DiskManager keeps track of a collections of Juju agent tools in a directory
// structure on disk.
type DiskManager struct {
dataDir string
}
// NewDiskManager returns a DiskManager handling a given directory.
// *DiskManager conforms to the ToolsManager interface
func NewDiskManager(dataDir string) *DiskManager {
return &DiskManager{dataDir: dataDir}
}
func (d *DiskManager) ReadTools(vers version.Binary) (*tools.Tools, error) {
return ReadTools(d.dataDir, vers)
}
func (d *DiskManager) UnpackTools(tools *tools.Tools, r io.Reader) error {
return UnpackTools(d.dataDir, tools, r)
}
func (d *DiskManager) SharedToolsDir(vers version.Binary) string {
return SharedToolsDir(d.dataDir, vers)
}