func()

in pitr/cli/internal/pkg/local-storage.go [73:107]


func (ls *localStorage) init() error {
	// root dir
	fi, err := os.Stat(ls.rootDir)
	if err != nil {
		if os.IsNotExist(err) {
			if err := os.Mkdir(ls.rootDir, 0777); err != nil {
				return fmt.Errorf("create root dir failure,dir=%s,err=%s", ls.rootDir, err)
			}
		} else if os.IsExist(err) {
			if !fi.IsDir() {
				return fmt.Errorf("file has already exist,name=%s", ls.rootDir)
			}
		} else {
			return fmt.Errorf("failed to get file info,root dir=%s,err=%s", ls.rootDir, err)
		}
	}

	// backup dir
	fi, err = os.Stat(ls.backupDir)
	if err != nil {
		if os.IsNotExist(err) {
			if err := os.Mkdir(ls.backupDir, 0777); err != nil {
				return fmt.Errorf("create backup dir failure,dir=%s,err=%s", ls.backupDir, err)
			}
		} else if os.IsExist(err) {
			if !fi.IsDir() {
				return fmt.Errorf("backup:file has already exist,name=%s", ls.backupDir)
			}
		} else {
			return fmt.Errorf("failed to get file info,backup dir=%s,err=%s", ls.backupDir, err)
		}
	}

	return nil
}