65 lines
1.2 KiB
Markdown
65 lines
1.2 KiB
Markdown
# CodeWalker Module
|
|
|
|
The CodeWalker module provides functionality to walk through directories and create a map of files with their content. It's particularly useful for processing code directories while respecting gitignore patterns.
|
|
|
|
## Features
|
|
|
|
- Walk through directories recursively
|
|
- Respect gitignore patterns to exclude files
|
|
- Store file content in memory
|
|
- Export files back to a directory structure
|
|
|
|
## Usage
|
|
|
|
```v
|
|
import incubaid.herolib.lib.lang.codewalker
|
|
|
|
mut cw := codewalker.new('/tmp/adir')!
|
|
|
|
// Get content of a specific file
|
|
content := cw.filemap.get('path/to/file.txt')!
|
|
|
|
// return output again
|
|
cw.filemap.content()
|
|
|
|
// Export all files to a destination directory
|
|
cw.filemap.export('/tmp/exported_files')!
|
|
|
|
```
|
|
|
|
### format of filemap
|
|
|
|
## full files
|
|
|
|
```
|
|
|
|
text before will be ignored
|
|
|
|
===FILE:filename===
|
|
code
|
|
===FILE:filename===
|
|
code
|
|
===END===
|
|
|
|
text behind will be ignored
|
|
|
|
```
|
|
|
|
## files with changes
|
|
|
|
```
|
|
|
|
text before will be ignored
|
|
|
|
===FILECHANGE:filename===
|
|
code
|
|
===FILECHANGE:filename===
|
|
code
|
|
===END===
|
|
|
|
text behind will be ignored
|
|
|
|
```
|
|
|
|
FILECHANGE and FILE can be mixed, in FILE it means we have full content otherwise only changed content e.g. a method or s struct and then we need to use morph to change it
|