Chezmoi wrapper for dotfile management in the dotty ecosystem.
npm install @dottyfiles/chezmoiChezmoi wrapper for dotfile management in the dotty ecosystem.
``bash`
npm install @dottyfiles/chezmoi
- chezmoi CLI installed
`typescript
import { ChezmoiService, createChezmoiService } from '@dottyfiles/chezmoi';
const chezmoi = createChezmoiService();
// Check installation
const installed = await chezmoi.isInstalled();
const version = await chezmoi.getVersion();
// Get status of pending changes
const { files, runScripts } = await chezmoi.getStatus();
console.log(${files.length} files, ${runScripts.length} scripts pending);
// Preview changes
await chezmoi.showDiff();
// Apply changes
const result = await chezmoi.apply({ spinner: 'Applying dotfiles...' });
if (result.success) {
console.log('Applied successfully');
}
// Pull and apply from remote
await chezmoi.update({ spinner: 'Syncing dotfiles...' });
// Manage files
await chezmoi.add('/path/to/file', { spinner: 'Adding file...' });
await chezmoi.edit('/path/to/file');
// Initialize with a repo
await chezmoi.init('github.com/user/dotfiles', {
apply: true,
spinner: 'Setting up dotfiles...'
});
// Get paths
const sourcePath = await chezmoi.getSourcePath();
const managedFiles = await chezmoi.getManagedFiles();
`
| Method | Returns | Description |
|--------|---------|-------------|
| isInstalled() | Promise | Check if chezmoi CLI is installed |getVersion()
| | Promise | Get chezmoi version |getManagedFiles()
| | Promise | List all managed file paths |getStatus()
| | Promise<{ files, runScripts }> | Get pending changes |showDiff()
| | Promise | Display diff of pending changes |apply(options?)
| | Promise<{ success, stderr? }> | Apply pending changes |update(options?)
| | Promise<{ success, stderr? }> | Pull and apply from remote |add(file, options?)
| | Promise<{ success, stderr? }> | Add file to management |edit(file)
| | Promise | Open file in editor |init(repo, options?)
| | Promise<{ success, stderr? }> | Initialize with a repo |getSourcePath()
| | Promise | Get chezmoi source directory |
`typescript
interface ApplyOptions {
spinner?: string; // Spinner text while running
}
interface InitOptions {
apply?: boolean; // Apply after init
spinner?: string;
}
`
`typescript``
// Create a service instance
const chezmoi = createChezmoiService();
MIT