code: func getInstallationSite(siteRoot, defaultServiceURL string) (*installationSite, error) {
  	siteRoot, err := optionalSiteRoot(siteRoot)
  	if err != nil {
  		return nil, err
  	}
  	cfg, err := readConfig(siteRoot)
  	if err != nil {
  		return nil, err
  	}
  	if cfg.ServiceURL == "" {
  		cfg.ServiceURL = defaultServiceURL
  	}
  	return &installationSite{siteRoot, defaultServiceURL, &cfg, nil}, nil
  }
docs: // getInstallationSite finds site root directory, reads config and constructs
  // installationSite object.
  //
  // If siteRoot is "", will find a site root based on the current directory,
  // otherwise will use siteRoot. Doesn't create any new files or directories,
  // just reads what's on disk.