[header]dodot init-sh[/header] — Print the shell integration script.

[desc]Emits a shell snippet on stdout that, when sourced, sources every
[item]shell[/item]-handler file dodot has staged and prepends every [item]path[/item]-handler
directory to [item]$PATH[/item]. This is what wires shell aliases, login files,
and pack [item]bin/[/item] directories into your interactive shell.

You do not run this directly. You [item]eval[/item] it from your shell rc:

  [example]eval "$(dodot init-sh)"[/example]

Add that line to [item]~/.bashrc[/item] / [item]~/.zshrc[/item] [item]once[/item] per machine. The script
[item]init-sh[/item] emits is regenerated by every [item]dodot up[/item] and [item]dodot down[/item], so
you never need to touch this rc line again — adding a new pack
shows up in your next shell automatically.[/desc]

[header]USAGE[/header]
  [usage]eval "$(dodot init-sh)"[/usage]

[header]WHAT BELONGS ABOVE THIS LINE[/header]
  [desc]Anything that has to exist before [item]dodot[/item] itself can run:
    [dim]•[/dim] [item]eval "$(/opt/homebrew/bin/brew shellenv)"[/item] (puts dodot on [item]$PATH[/item])
    [dim]•[/dim] OS-level prereqs that block any pack from succeeding
  Everything else — aliases, exports, functions, completions —
  belongs in a pack.[/desc]

[header]EXAMPLES[/header]
  [example]eval "$(dodot init-sh)"        [dim]# the line you put in your shell rc[/dim]
  dodot init-sh                  [dim]# print the script (debug / inspection)[/dim]
  dodot init-sh | less           [dim]# read what dodot would source[/dim][/example]

[header]SEE ALSO[/header]
  [item]dodot probe shell-init[/item]      [desc]See per-source timings + errors from your last shell startup[/desc]
  [item]docs/user/getting-started.lex[/item]   [desc]Section 2 — Shell Integration[/desc]
