github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/juju/home.go (about) 1 // Copyright 2012, 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package juju 5 6 import ( 7 "github.com/juju/errors" 8 "github.com/juju/utils/ssh" 9 "gopkg.in/juju/charmrepo.v2-unstable" 10 11 "github.com/juju/juju/juju/osenv" 12 ) 13 14 // InitJujuXDGDataHome initializes the charm cache, environs/config and utils/ssh packages 15 // to use default paths based on the $JUJU_DATA or $HOME environment variables. 16 // This function should be called before running a Juju CLI command. 17 func InitJujuXDGDataHome() error { 18 jujuXDGDataHome := osenv.JujuXDGDataHomeDir() 19 if jujuXDGDataHome == "" { 20 return errors.New("cannot determine juju data home, required environment variables are not set") 21 } 22 charmrepo.CacheDir = osenv.JujuXDGDataHomePath("charmcache") 23 if err := ssh.LoadClientKeys(osenv.JujuXDGDataHomePath("ssh")); err != nil { 24 return errors.Annotate(err, "cannot load ssh client keys") 25 } 26 return nil 27 }