1
// Copyright 2013 Canonical Ltd.
2
// Licensed under the AGPLv3, see LICENCE file for details.
9
"launchpad.net/juju-core/state"
10
"launchpad.net/juju-core/version"
13
// DiskManager keeps track of a collections of Juju agent tools in a directory
15
type DiskManager struct {
19
// NewDiskManager returns a DiskManager handling a given directory.
20
// *DiskManager conforms to the ToolsManager interface
21
func NewDiskManager(dataDir string) *DiskManager {
22
return &DiskManager{dataDir: dataDir}
25
func (d *DiskManager) ReadTools(vers version.Binary) (*Tools, error) {
26
stTools, err := ReadTools(d.dataDir, vers)
27
return (*Tools)(stTools), err
30
func (d *DiskManager) UnpackTools(tools *Tools, r io.Reader) error {
31
return UnpackTools(d.dataDir, (*state.Tools)(tools), r)
34
func (d *DiskManager) SharedToolsDir(vers version.Binary) string {
35
return SharedToolsDir(d.dataDir, vers)