github.com/altoros/juju-vmware@v0.0.0-20150312064031-f19ae857ccca/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.v4"
    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  	charm.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  }