code: func New(ctx context.Context, prefix string) (*File, error) {
  	td, err := ioutil.TempDir(tempdirBase(), prefix)
  	if err != nil {
  		return nil, err
  	}
  
  	tf := &File{
  		dir: td,
  		dbg: ctxutil.IsDebug(ctx),
  	}
  
  	if err := tf.mount(ctx); err != nil {
  		_ = os.RemoveAll(tf.dir)
  		return nil, err
  	}
  
  	fn := filepath.Join(tf.dir, "secret")
  	fh, err := os.OpenFile(fn, os.O_CREATE|os.O_EXCL|os.O_WRONLY, 0600)
  	if err != nil {
  		return nil, errors.Errorf("Failed to open file %s: %s", fn, err)
  	}
  	tf.fh = fh
  
  	return tf, nil
  }
docs: // New returns a new tempfile wrapper