code: func initInstallationSite(rootDir, defaultServiceURL string, force bool) (*installationSite, error) {
  	rootDir, err := filepath.Abs(rootDir)
  	if err != nil {
  		return nil, err
  	}
  
  	// rootDir is inside an existing site root?
  	existing := findSiteRoot(rootDir)
  	if existing != "" {
  		msg := fmt.Sprintf("directory %s is already inside a site root (%s)", rootDir, existing)
  		if !force {
  			return nil, errors.New(msg)
  		}
  		fmt.Fprintf(os.Stderr, "Warning: %s.\n", msg)
  	}
  
  	// Attempting to use in a non empty directory?
  	items, err := ioutil.ReadDir(rootDir)
  	if err != nil && !os.IsNotExist(err) {
  		return nil, err
  	}
  	if len(items) != 0 {
  		msg := fmt.Sprintf("directory %s is not empty", rootDir)
  		if !force {
  			return nil, errors.New(msg)
  		}
  		fmt.Fprintf(os.Stderr, "Warning: %s.\n", msg)
  	}
  
  	// Good to go.
  	if err = os.MkdirAll(filepath.Join(rootDir, fs.SiteServiceDir), 0777); err != nil {
  		return nil, err
  	}
  	site, err := getInstallationSite(rootDir, defaultServiceURL)
  	if err != nil {
  		return nil, err
  	}
  	fmt.Printf("Site root initialized at %s.\n", rootDir)
  	return site, nil
  }
docs: // initInstallationSite creates new site root directory on disk.
  //
  // It does a bunch of sanity checks (like whether rootDir is empty) that are
  // skipped if 'force' is set to true.