file

package
v0.1.0-dev.20260222090703 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 22, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Register

func Register(reg *execution.ActionRegistry)

Register registers all file actions with the given registry.

Types

type Backup

type Backup struct{ Impl *Provider }

Backup — Backup moves the file at path to a timestamped backup location. Returns the backup path and compensation state.

func (*Backup) Do

func (*Backup) Name

func (o *Backup) Name() string

func (*Backup) Undo

func (o *Backup) Undo(state execution.UndoState) error

type Copy

type Copy struct{ Impl *Provider }

Copy — Copy writes content to path with the given mode. Returns the SHA256 checksum of the written content and compensation state.

func (*Copy) Do

func (o *Copy) Do(ctx *execution.Context, slots map[string]any) (execution.Result, execution.UndoState, error)

func (*Copy) Name

func (o *Copy) Name() string

func (*Copy) Undo

func (o *Copy) Undo(state execution.UndoState) error

type Exists

type Exists struct{ Impl *Provider }

Exists — Exists returns true if path exists on the filesystem.

func (*Exists) Do

func (*Exists) Name

func (o *Exists) Name() string

type IsDir

type IsDir struct{ Impl *Provider }

IsDir — IsDir returns true if path exists and is a directory.

func (*IsDir) Do

func (*IsDir) Name

func (o *IsDir) Name() string
type Link struct{ Impl *Provider }

Link — Link creates a symlink at path pointing to source. Idempotent: if the symlink already points correctly, it's a no-op (returns nil state).

func (*Link) Do

func (o *Link) Do(ctx *execution.Context, slots map[string]any) (execution.Result, execution.UndoState, error)

func (*Link) Name

func (o *Link) Name() string

func (*Link) Undo

func (o *Link) Undo(state execution.UndoState) error

type Mkdir

type Mkdir struct{ Impl *Provider }

Mkdir — Mkdir creates a directory (and parents) with the given mode.

func (*Mkdir) Do

func (*Mkdir) Name

func (o *Mkdir) Name() string

type Move

type Move struct{ Impl *Provider }

Move — Move moves a file from source to path. Uses gitMv if provided (preserves git history), falling back to os.Rename. Returns compensation state with paths for reverse move.

func (*Move) Do

func (o *Move) Do(ctx *execution.Context, slots map[string]any) (execution.Result, execution.UndoState, error)

func (*Move) Name

func (o *Move) Name() string

func (*Move) Undo

func (o *Move) Undo(state execution.UndoState) error

type Provider

type Provider struct{}

Provider provides file system actions. Each method receives all inputs as parameters — no execution context, no node access.

Compensable Forward methods return (string, map[string]any, error): the resource path, the compensation receipt, and an error. The map is opaque to the executor, meaningful only to the corresponding Compensate* Backward method.

func (*Provider) Backup

func (p *Provider) Backup(path, backupSuffix string) (string, map[string]any, error)

Backup moves the file at path to a timestamped backup location. Returns the backup path and compensation state.

Slots:

  • path: Absolute path to the file to back up
  • backup_suffix: Suffix appended before the timestamp (default: .writ-backup)

func (*Provider) CompensateBackup

func (p *Provider) CompensateBackup(state any) error

CompensateBackup undoes a Backup by moving the backup back to the original path.

func (*Provider) CompensateCopy

func (p *Provider) CompensateCopy(state any) error

CompensateCopy undoes a Copy action using the captured state.

func (p *Provider) CompensateLink(state any) error

CompensateLink undoes a Link action using the captured state.

func (*Provider) CompensateMove

func (p *Provider) CompensateMove(state any) error

CompensateMove undoes a Move by moving the file back from path to source.

func (*Provider) CompensateRemove

func (p *Provider) CompensateRemove(state any) error

CompensateRemove undoes a Remove by re-creating the file with saved content and mode.

func (p *Provider) CompensateUnlink(state any) error

CompensateUnlink undoes an Unlink by re-creating the symlink.

func (*Provider) CompensateWrite

func (p *Provider) CompensateWrite(state any) error

CompensateWrite undoes a Write action using the captured state.

func (*Provider) Copy

func (p *Provider) Copy(path string, mode os.FileMode, content []byte) (string, map[string]any, error)

Copy writes content to path with the given mode. Returns the SHA256 checksum of the written content and compensation state.

Slots:

  • path: Absolute path where the file will be written
  • mode: File permission bits (e.g., 0o644)

func (*Provider) Exists

func (p *Provider) Exists(path string) (bool, error)

Exists returns true if path exists on the filesystem.

Slots:

  • path: Absolute path to check

func (*Provider) IsDir

func (p *Provider) IsDir(path string) (bool, error)

IsDir returns true if path exists and is a directory.

Slots:

  • path: Absolute path to check
func (p *Provider) Link(source, path string) (string, map[string]any, error)

Link creates a symlink at path pointing to source. Idempotent: if the symlink already points correctly, it's a no-op (returns nil state).

Slots:

  • source: Absolute path to the symlink target
  • path: Absolute path where the symlink will be created

func (*Provider) Mkdir

func (p *Provider) Mkdir(path string, mode os.FileMode) (string, error)

Mkdir creates a directory (and parents) with the given mode.

Slots:

  • path: Absolute path of the directory to create
  • mode: Directory permission bits (e.g., 0o755)

func (*Provider) Move

func (p *Provider) Move(gitMv func(src, dst string) error, source, path string) (string, map[string]any, error)

Move moves a file from source to path. Uses gitMv if provided (preserves git history), falling back to os.Rename. Returns compensation state with paths for reverse move.

Slots:

  • source: Absolute path to the file to move
  • path: Absolute destination path

func (*Provider) Remove

func (p *Provider) Remove(path string, prune bool, pruneBoundary string) (string, map[string]any, error)

Remove deletes the file at path. If prune is true and pruneBoundary is set, empty parent directories are removed up to the boundary. Returns compensation state with file content for re-creation.

Slots:

  • path: Absolute path to the file to delete
  • prune: If true, remove empty parent directories after deletion
  • prune_boundary: Stop pruning at this directory (prevents removing too much)

func (*Provider) Source

func (p *Provider) Source(path string) ([]byte, error)

Source reads a file and returns its contents.

Slots:

  • path: Absolute path to the file to read
func (p *Provider) Unlink(path string, prune bool, pruneBoundary string) (string, map[string]any, error)

Unlink removes a symlink at path. If prune is true and pruneBoundary is set, empty parent directories are removed up to the boundary. Returns compensation state with the symlink target for re-creation.

Slots:

  • path: Absolute path to the symlink to remove
  • prune: If true, remove empty parent directories after unlinking
  • prune_boundary: Stop pruning at this directory (prevents removing too much)

func (*Provider) Write

func (p *Provider) Write(content, path string, mode os.FileMode) (string, map[string]any, error)

Write writes inline content to path with the given mode. Returns compensation state for undo.

Slots:

  • content: String content to write to the file
  • path: Absolute path where the file will be written
  • mode: File permission bits (e.g., 0o644)

type Remove

type Remove struct{ Impl *Provider }

Remove — Remove deletes the file at path. If prune is true and pruneBoundary is set, empty parent directories are removed up to the boundary. Returns compensation state with file content for re-creation.

func (*Remove) Do

func (*Remove) Name

func (o *Remove) Name() string

func (*Remove) Undo

func (o *Remove) Undo(state execution.UndoState) error

type Source

type Source struct{ Impl *Provider }

Source — Source reads a file and returns its contents.

func (*Source) Do

func (*Source) Name

func (o *Source) Name() string
type Unlink struct{ Impl *Provider }

Unlink — Unlink removes a symlink at path. If prune is true and pruneBoundary is set, empty parent directories are removed up to the boundary. Returns compensation state with the symlink target for re-creation.

func (*Unlink) Do

func (*Unlink) Name

func (o *Unlink) Name() string

func (*Unlink) Undo

func (o *Unlink) Undo(state execution.UndoState) error

type Write

type Write struct{ Impl *Provider }

Write — Write writes inline content to path with the given mode. Returns compensation state for undo.

func (*Write) Do

func (*Write) Name

func (o *Write) Name() string

func (*Write) Undo

func (o *Write) Undo(state execution.UndoState) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL