github.com/mhilton/juju-juju@v0.0.0-20150901100907-a94dd2c73455/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 stderrors "errors" 8 "fmt" 9 10 "gopkg.in/juju/charm.v5/charmrepo" 11 12 "github.com/juju/juju/juju/osenv" 13 "github.com/juju/juju/utils/ssh" 14 ) 15 16 // InitJujuHome initializes the charm cache, environs/config and utils/ssh packages 17 // to use default paths based on the $JUJU_HOME or $HOME environment variables. 18 // This function should be called before running a Juju CLI command. 19 func InitJujuHome() error { 20 jujuHome := osenv.JujuHomeDir() 21 if jujuHome == "" { 22 return stderrors.New( 23 "cannot determine juju home, required environment variables are not set") 24 } 25 osenv.SetJujuHome(jujuHome) 26 charmrepo.CacheDir = osenv.JujuHomePath("charmcache") 27 if err := ssh.LoadClientKeys(osenv.JujuHomePath("ssh")); err != nil { 28 return fmt.Errorf("cannot load ssh client keys: %v", err) 29 } 30 return nil 31 }