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