file_snapshot.go
func NewFileSnapshotStoreWithLogger(base string, retain int, logger *log.Logger) (*FileSnapshotStore, error) {
	if retain < 1 {
		return nil, fmt.Errorf("must retain at least one snapshot")
	}
	if logger == nil {
		logger = log.New(os.Stderr, "", log.LstdFlags)
	}

	// Ensure our path exists
	path := filepath.Join(base, snapPath)
	if err := os.MkdirAll(path, 0755); err != nil && !os.IsExist(err) {
		return nil, fmt.Errorf("snapshot path not accessible: %v", err)
	}

	// Setup the store
	store := &FileSnapshotStore{
		path:   path,
		retain: retain,
		logger: logger,
	}

	// Do a permissions test
	if err := store.testPermissions(); err != nil {
		return nil, fmt.Errorf("permissions test failed: %v", err)
	}
	return store, nil
}
func NewFileSnapshotStoreWithLogger(base string, retain int, logger *log.Logger) (*FileSnapshotStore, error) {
	if retain < 1 {
		return nil, fmt.Errorf("must retain at least one snapshot")
	}
	if logger == nil {
		logger = log.New(os.Stderr, "", log.LstdFlags)
	}

	// Ensure our path exists
	path := filepath.Join(base, snapPath)
	if err := os.MkdirAll(path, 0755); err != nil && !os.IsExist(err) {
		return nil, fmt.Errorf("snapshot path not accessible: %v", err)
	}

	// Setup the store
	store := &FileSnapshotStore{
		path:   path,
		retain: retain,
		logger: logger,
	}

	// Do a permissions test
	if err := store.testPermissions(); err != nil {
		return nil, fmt.Errorf("permissions test failed: %v", err)
	}
	return store, nil
}
func NewFileSnapshotStoreWithLogger ( base string , retain int , logger * log . Logger ) ( * FileSnapshotStore , error ) { if retain < 1 { return nil , fmt . Errorf ( " " ) } if logger == nil { logger = log . New ( os . Stderr , " " , log . LstdFlags ) } // Ensure our path exists path := filepath . Join ( base , snapPath ) if err := os . MkdirAll ( path , 0755 ) ; err != nil && ! os . IsExist ( err ) { return nil , fmt . Errorf ( " " , err ) } // Setup the store store := & FileSnapshotStore { path : path , retain : retain , logger : logger , } // Do a permissions test if err := store . testPermissions ( ) ; err != nil { return nil , fmt . Errorf ( " " , err ) } return store , nil }
// NewFileSnapshotStoreWithLogger creates a new FileSnapshotStore based
// on a base directory. The `retain` parameter controls how many
// snapshots are retained. Must be at least 1.
NewFileSnapshotStoreWithLogger creates a new FileSnapshotStore based on a base directory . The retain parameter controls how many snapshots are retained . Must be at least 1 .