rufio 0.61.0 → 0.62.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +48 -18
- data/README.md +191 -150
- data/README_ja.md +331 -0
- data/examples/bookmarks.yml +14 -0
- data/examples/config.rb +68 -0
- data/examples/script_paths.yml +11 -0
- data/lib/rufio/application.rb +1 -1
- data/lib/rufio/bookmark_manager.rb +3 -3
- data/lib/rufio/bookmark_storage.rb +61 -60
- data/lib/rufio/config.rb +214 -0
- data/lib/rufio/config_loader.rb +144 -37
- data/lib/rufio/keybind_handler.rb +14 -9
- data/lib/rufio/script_config_loader.rb +27 -12
- data/lib/rufio/script_path_manager.rb +50 -89
- data/lib/rufio/version.rb +1 -1
- metadata +6 -14
- data/README_EN.md +0 -610
- data/config_example.rb +0 -88
- data/examples/config.yml +0 -8
- data/scripts/test_jobs/build_simulation.sh +0 -29
- data/scripts/test_jobs/deploy_simulation.sh +0 -37
- data/scripts/test_jobs/quick.sh +0 -11
- data/scripts/test_jobs/random_result.sh +0 -23
- data/scripts/test_jobs/slow_fail.sh +0 -10
- data/scripts/test_jobs/slow_success.sh +0 -10
- data/scripts/test_jobs/very_slow.sh +0 -19
- data/test_delete/test1.txt +0 -1
- data/test_delete/test2.txt +0 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2db20061e61dc6e74d9a106ca35f66e2f20f0d3dfd5394664823a03ddc8b029d
|
|
4
|
+
data.tar.gz: caaf0e05574780ca8dc4c86afae1c617e584ae8b56f3654e1744541127172a66
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 21484e20e462d20f1cd4a547e3516bd80ad986fe810724c0c2f9300504ebc3c04ac512fdee457a7f839c9f8d04bf375df337896399fdfff047cd48faa7eaf6f2
|
|
7
|
+
data.tar.gz: 7845c80320bcd88d0540ee2aa38603ad1f9b45ee88f533586d9a5e7fe53b51bff919ff9359fb725873fc430938c49b143498ae7a55fb4f9dd832a99c2a93febe
|
data/CHANGELOG.md
CHANGED
|
@@ -7,31 +7,61 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.62.0] - 2026-01-31
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- **Configuration File Structure Overhaul**: Separated configuration into multiple files
|
|
14
|
+
- `~/.config/rufio/config.rb` - DSL-style main configuration (colors, keybinds, language)
|
|
15
|
+
- `~/.config/rufio/script_paths.yml` - Script directories (list format)
|
|
16
|
+
- `~/.config/rufio/bookmarks.yml` - Bookmarks (list format)
|
|
17
|
+
- Old `config.yml` format still supported for backward compatibility
|
|
18
|
+
- **Config Class Refactoring**: Centralized YAML configuration management
|
|
19
|
+
- All YAML read/write operations now go through `Config` class
|
|
20
|
+
- Added `load_script_paths`, `save_script_paths`, `add_script_path`, `remove_script_path`
|
|
21
|
+
- Added `load_bookmarks_from_yml`, `save_bookmarks_to_yml`, `add_bookmark`, `remove_bookmark`
|
|
22
|
+
- Added `load_config_rb` for DSL configuration loading
|
|
23
|
+
- Added `migrate_from_config_yml` for migration from old format
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
- **Bookmark Menu**: Fixed "View bookmarks" option (key `4`) not working in bookmark menu (`B` key)
|
|
27
|
+
|
|
28
|
+
### Deprecated
|
|
29
|
+
- **bookmark.json**: JSON bookmark format is deprecated, use `bookmarks.yml` instead
|
|
30
|
+
- **config.yml**: Single config file format is deprecated, use separate files instead
|
|
31
|
+
|
|
32
|
+
### Technical Details
|
|
33
|
+
- **New Constants in Config**:
|
|
34
|
+
- `CONFIG_DIR`, `CONFIG_RB_PATH`, `SCRIPT_PATHS_YML`, `BOOKMARKS_YML`
|
|
35
|
+
- **Backward Compatibility**:
|
|
36
|
+
- `YamlBookmarkStorage` supports both new (list format) and old (section format)
|
|
37
|
+
- `ScriptPathManager` supports both `script_paths.yml` and legacy `config.yml`
|
|
38
|
+
- **New Example Files**: Added `examples/config.rb`, `examples/script_paths.yml`, `examples/bookmarks.yml`
|
|
39
|
+
|
|
10
40
|
## [0.61.0] - 2026-01-25
|
|
11
41
|
|
|
12
42
|
### Changed
|
|
13
|
-
- **🎯
|
|
14
|
-
-
|
|
15
|
-
- gemspec
|
|
16
|
-
- **📖 README.md
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
- **🌐 UI
|
|
21
|
-
-
|
|
22
|
-
-
|
|
43
|
+
- **🎯 Rebranding**: Redefined rufio as "Runtime Unified Flow I/O Operator"
|
|
44
|
+
- Emphasized the concept as a "tool runtime environment" rather than just a file manager
|
|
45
|
+
- Updated gemspec summary and description to reflect new concept
|
|
46
|
+
- **📖 README.md Overhaul**: Restructured for clarity with the new concept
|
|
47
|
+
- Organized features around tool runtime and file manager axes
|
|
48
|
+
- Simplified keybinding tables by category
|
|
49
|
+
- Added Quick Start section
|
|
50
|
+
- **🌐 Unified English UI Messages**: Standardized all UI messages to English
|
|
51
|
+
- Converted command mode, result display, and completion candidate messages to English
|
|
52
|
+
- Japanese setting now displays English messages (internal language setting preserved)
|
|
23
53
|
|
|
24
54
|
### Added
|
|
25
|
-
- **💾
|
|
26
|
-
- `JsonBookmarkStorage`:
|
|
27
|
-
- `YamlBookmarkStorage`:
|
|
28
|
-
- `BookmarkMigrator`: JSON
|
|
29
|
-
-
|
|
55
|
+
- **💾 Bookmark Storage Abstraction**: Introduced `BookmarkStorage` interface
|
|
56
|
+
- `JsonBookmarkStorage`: Legacy JSON file format
|
|
57
|
+
- `YamlBookmarkStorage`: New YAML file format (integrated into config.yml)
|
|
58
|
+
- `BookmarkMigrator`: Automatic migration from JSON to YAML
|
|
59
|
+
- Support for storage dependency injection (improved testability)
|
|
30
60
|
|
|
31
61
|
### Technical Details
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
62
|
+
- **New Files**: `lib/rufio/bookmark_storage.rb`, `test/test_bookmark_storage.rb`
|
|
63
|
+
- **Affected Files**: `bookmark.rb`, `bookmark_manager.rb`, `config_loader.rb`, `command_mode.rb`, `command_mode_ui.rb`, `terminal_ui.rb`, `config.rb`
|
|
64
|
+
- **Test Updates**: Modified test cases to match English messages
|
|
35
65
|
|
|
36
66
|
## [0.60.0] - 2026-01-24
|
|
37
67
|
|
data/README.md
CHANGED
|
@@ -2,16 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
**Runtime Unified Flow I/O Operator**
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
Ruby/Python/PowerShell
|
|
5
|
+
A TUI file manager that executes and coordinates tools and scripts from files.
|
|
6
|
+
Supports Ruby/Python/PowerShell and integrates your development workflow in one place.
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
[日本語](./README_ja.md) | **English**
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
## Concept
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
rufioは単なるファイルマネージャーではありません。**ツールランタイム実行環境**です。
|
|
12
|
+
rufio is not just a file manager. It's a **tool runtime execution environment**.
|
|
15
13
|
|
|
16
14
|
```
|
|
17
15
|
┌─────────────────────────────────────────────────────────┐
|
|
@@ -24,225 +22,268 @@ rufioは単なるファイルマネージャーではありません。**ツー
|
|
|
24
22
|
└─────────────────────────────────────────────────────────┘
|
|
25
23
|
```
|
|
26
24
|
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
25
|
+
- **File Operations**: Traditional file manager functionality
|
|
26
|
+
- **Script Execution**: Run Ruby/Python/PowerShell scripts in file context
|
|
27
|
+
- **Tool Integration**: Seamless integration with external tools (git, fzf, rga, etc.)
|
|
28
|
+
- **Unified I/O**: Manage all input/output in a single flow
|
|
31
29
|
|
|
32
|
-
##
|
|
30
|
+
## Features
|
|
33
31
|
|
|
34
|
-
###
|
|
32
|
+
### As a Tool Runtime
|
|
35
33
|
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
34
|
+
- **Multi-language Script Support**: Ruby, Python, PowerShell
|
|
35
|
+
- **Script Path Management**: Register and manage multiple script directories
|
|
36
|
+
- **Command Completion**: Tab completion for scripts with `@` prefix
|
|
37
|
+
- **Job Management**: Run scripts/commands in the background
|
|
38
|
+
- **Execution Logs**: Automatically record all execution results
|
|
41
39
|
|
|
42
|
-
###
|
|
40
|
+
### As a File Manager
|
|
43
41
|
|
|
44
|
-
- **Vim
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
- **zoxide
|
|
42
|
+
- **Vim-like Key Bindings**: Intuitive navigation
|
|
43
|
+
- **Real-time Preview**: Instantly display file contents
|
|
44
|
+
- **Fast Search**: Integration with fzf/rga
|
|
45
|
+
- **Bookmarks**: Quick access to frequently used directories
|
|
46
|
+
- **zoxide Integration**: Smart directory history
|
|
49
47
|
|
|
50
|
-
###
|
|
48
|
+
### Cross-platform
|
|
51
49
|
|
|
52
|
-
- **macOS**:
|
|
53
|
-
- **Linux**:
|
|
54
|
-
- **Windows**: PowerShell
|
|
50
|
+
- **macOS**: Native support
|
|
51
|
+
- **Linux**: Native support
|
|
52
|
+
- **Windows**: PowerShell script support
|
|
55
53
|
|
|
56
|
-
##
|
|
54
|
+
## Installation
|
|
57
55
|
|
|
58
56
|
```bash
|
|
59
57
|
gem install rufio
|
|
60
58
|
```
|
|
61
59
|
|
|
62
|
-
|
|
60
|
+
Or add to your Gemfile:
|
|
63
61
|
|
|
64
62
|
```ruby
|
|
65
63
|
gem 'rufio'
|
|
66
64
|
```
|
|
67
65
|
|
|
68
|
-
##
|
|
66
|
+
## Quick Start
|
|
69
67
|
|
|
70
|
-
### 1.
|
|
68
|
+
### 1. Launch
|
|
71
69
|
|
|
72
70
|
```bash
|
|
73
|
-
rufio #
|
|
74
|
-
rufio /path/to #
|
|
71
|
+
rufio # Launch in current directory
|
|
72
|
+
rufio /path/to # Launch in specified directory
|
|
75
73
|
```
|
|
76
74
|
|
|
77
|
-
### 2.
|
|
75
|
+
### 2. Register Script Path
|
|
78
76
|
|
|
79
|
-
1.
|
|
80
|
-
2. `B` → `2`
|
|
77
|
+
1. Navigate to the directory where you want to place scripts
|
|
78
|
+
2. `B` → `2` to add to script path
|
|
81
79
|
|
|
82
|
-
### 3.
|
|
80
|
+
### 3. Execute Script
|
|
83
81
|
|
|
84
|
-
1. `:`
|
|
85
|
-
2. `@` +
|
|
86
|
-
3. `Tab`
|
|
87
|
-
4. `Enter`
|
|
82
|
+
1. Press `:` to enter command mode
|
|
83
|
+
2. Type `@` + part of the script name
|
|
84
|
+
3. Press `Tab` to complete
|
|
85
|
+
4. Press `Enter` to execute
|
|
88
86
|
|
|
89
|
-
##
|
|
87
|
+
## Key Bindings
|
|
90
88
|
|
|
91
|
-
###
|
|
89
|
+
### Basic Operations
|
|
92
90
|
|
|
93
|
-
|
|
|
94
|
-
|
|
95
|
-
| `j/k` |
|
|
96
|
-
| `h/l` |
|
|
97
|
-
| `g/G` |
|
|
98
|
-
| `Enter` |
|
|
99
|
-
| `q` |
|
|
91
|
+
| Key | Function |
|
|
92
|
+
|-----|----------|
|
|
93
|
+
| `j/k` | Move up/down |
|
|
94
|
+
| `h/l` | Parent/child directory |
|
|
95
|
+
| `g/G` | Top/bottom |
|
|
96
|
+
| `Enter` | Enter directory/open file |
|
|
97
|
+
| `q` | Quit |
|
|
100
98
|
|
|
101
|
-
###
|
|
99
|
+
### File Operations
|
|
102
100
|
|
|
103
|
-
|
|
|
104
|
-
|
|
105
|
-
| `Space` |
|
|
106
|
-
| `o` |
|
|
107
|
-
| `a/A` |
|
|
108
|
-
| `r` |
|
|
109
|
-
| `d` |
|
|
110
|
-
| `m/c/x` |
|
|
101
|
+
| Key | Function |
|
|
102
|
+
|-----|----------|
|
|
103
|
+
| `Space` | Select/deselect |
|
|
104
|
+
| `o` | Open with external editor |
|
|
105
|
+
| `a/A` | Create file/directory |
|
|
106
|
+
| `r` | Rename |
|
|
107
|
+
| `d` | Delete |
|
|
108
|
+
| `m/c/x` | Move/copy/delete (selected) |
|
|
111
109
|
|
|
112
|
-
###
|
|
110
|
+
### Search & Filter
|
|
113
111
|
|
|
114
|
-
|
|
|
115
|
-
|
|
116
|
-
| `f` |
|
|
117
|
-
| `s` | fzf
|
|
118
|
-
| `F` | rga
|
|
112
|
+
| Key | Function |
|
|
113
|
+
|-----|----------|
|
|
114
|
+
| `f` | Filter mode |
|
|
115
|
+
| `s` | Search files with fzf |
|
|
116
|
+
| `F` | Search file contents with rga |
|
|
119
117
|
|
|
120
|
-
###
|
|
118
|
+
### Navigation
|
|
121
119
|
|
|
122
|
-
|
|
|
123
|
-
|
|
124
|
-
| `b` |
|
|
125
|
-
| `B` |
|
|
126
|
-
| `0` |
|
|
127
|
-
| `1-9` |
|
|
128
|
-
| `z` | zoxide
|
|
120
|
+
| Key | Function |
|
|
121
|
+
|-----|----------|
|
|
122
|
+
| `b` | Add bookmark |
|
|
123
|
+
| `B` | Bookmark menu |
|
|
124
|
+
| `0` | Return to startup directory |
|
|
125
|
+
| `1-9` | Jump to bookmark |
|
|
126
|
+
| `z` | zoxide history |
|
|
129
127
|
|
|
130
|
-
###
|
|
128
|
+
### Tool Runtime
|
|
131
129
|
|
|
132
|
-
|
|
|
133
|
-
|
|
134
|
-
| `:` |
|
|
135
|
-
| `J` |
|
|
136
|
-
| `L` |
|
|
137
|
-
| `?` |
|
|
130
|
+
| Key | Function |
|
|
131
|
+
|-----|----------|
|
|
132
|
+
| `:` | Command mode |
|
|
133
|
+
| `J` | Job mode |
|
|
134
|
+
| `L` | View execution logs |
|
|
135
|
+
| `?` | Help |
|
|
138
136
|
|
|
139
|
-
##
|
|
137
|
+
## Command Mode
|
|
140
138
|
|
|
141
|
-
`:`
|
|
139
|
+
Press `:` to enter command mode and execute various commands.
|
|
142
140
|
|
|
143
|
-
###
|
|
141
|
+
### Script Execution
|
|
144
142
|
|
|
145
143
|
```
|
|
146
|
-
:@build #
|
|
147
|
-
:@deploy.rb #
|
|
144
|
+
:@build # @ prefix triggers script completion
|
|
145
|
+
:@deploy.rb # Execute registered script
|
|
148
146
|
```
|
|
149
147
|
|
|
150
|
-
###
|
|
148
|
+
### Shell Commands
|
|
151
149
|
|
|
152
150
|
```
|
|
153
|
-
:!git status #
|
|
154
|
-
:!ls -la #
|
|
151
|
+
:!git status # ! prefix for shell commands
|
|
152
|
+
:!ls -la # Execute in background
|
|
155
153
|
```
|
|
156
154
|
|
|
157
|
-
###
|
|
155
|
+
### Built-in Commands
|
|
158
156
|
|
|
159
157
|
```
|
|
160
|
-
:hello #
|
|
161
|
-
:stop # rufio
|
|
158
|
+
:hello # Greeting message
|
|
159
|
+
:stop # Quit rufio
|
|
162
160
|
```
|
|
163
161
|
|
|
164
|
-
##
|
|
162
|
+
## Script Path
|
|
165
163
|
|
|
166
|
-
###
|
|
164
|
+
### What is Script Path?
|
|
167
165
|
|
|
168
|
-
|
|
166
|
+
A feature to register directories containing script files. Scripts in registered directories can be executed using the `@` prefix in command mode.
|
|
169
167
|
|
|
170
|
-
###
|
|
168
|
+
### Management
|
|
171
169
|
|
|
172
|
-
`B` → `3`
|
|
170
|
+
Press `B` → `3` to open the script path management menu:
|
|
173
171
|
|
|
174
|
-
-
|
|
175
|
-
- `d`:
|
|
176
|
-
- `Enter`:
|
|
177
|
-
- `ESC`:
|
|
172
|
+
- View registered paths
|
|
173
|
+
- `d`: Remove path
|
|
174
|
+
- `Enter`: Jump to directory
|
|
175
|
+
- `ESC`: Close menu
|
|
178
176
|
|
|
179
|
-
###
|
|
177
|
+
### Supported Scripts
|
|
180
178
|
|
|
181
|
-
|
|
|
182
|
-
|
|
179
|
+
| Extension | Language |
|
|
180
|
+
|-----------|----------|
|
|
183
181
|
| `.rb` | Ruby |
|
|
184
182
|
| `.py` | Python |
|
|
185
183
|
| `.ps1` | PowerShell |
|
|
186
184
|
| `.sh` | Shell (bash/zsh) |
|
|
187
185
|
|
|
188
|
-
## DSL
|
|
186
|
+
## DSL Commands
|
|
189
187
|
|
|
190
|
-
`~/.config/rufio/commands.rb
|
|
188
|
+
Define custom commands in `~/.config/rufio/commands.rb`:
|
|
191
189
|
|
|
192
190
|
```ruby
|
|
193
191
|
command "hello" do
|
|
194
192
|
ruby { "Hello from rufio!" }
|
|
195
|
-
description "
|
|
193
|
+
description "Greeting command"
|
|
196
194
|
end
|
|
197
195
|
|
|
198
196
|
command "status" do
|
|
199
197
|
shell "git status"
|
|
200
|
-
description "Git
|
|
198
|
+
description "Git status"
|
|
201
199
|
end
|
|
202
200
|
|
|
203
201
|
command "build" do
|
|
204
202
|
script "~/.config/rufio/scripts/build.rb"
|
|
205
|
-
description "
|
|
203
|
+
description "Run build"
|
|
206
204
|
end
|
|
207
205
|
```
|
|
208
206
|
|
|
209
|
-
##
|
|
207
|
+
## Configuration
|
|
210
208
|
|
|
211
|
-
###
|
|
209
|
+
### Configuration File Structure
|
|
212
210
|
|
|
213
211
|
```
|
|
214
212
|
~/.config/rufio/
|
|
215
|
-
├── config.rb
|
|
216
|
-
├──
|
|
217
|
-
├── bookmarks.
|
|
218
|
-
├──
|
|
219
|
-
|
|
213
|
+
├── config.rb # DSL-style main configuration
|
|
214
|
+
├── script_paths.yml # Script directories (list format)
|
|
215
|
+
├── bookmarks.yml # Bookmarks (list format)
|
|
216
|
+
├── commands.rb # DSL command definitions
|
|
217
|
+
├── scripts/ # Script files
|
|
218
|
+
└── logs/ # Execution logs
|
|
220
219
|
```
|
|
221
220
|
|
|
222
|
-
###
|
|
221
|
+
### config.rb (DSL Configuration)
|
|
223
222
|
|
|
224
223
|
```ruby
|
|
225
224
|
# ~/.config/rufio/config.rb
|
|
225
|
+
|
|
226
|
+
# Language setting: 'en' or 'ja'
|
|
227
|
+
LANGUAGE = 'ja'
|
|
228
|
+
|
|
229
|
+
# Color settings (HSL format)
|
|
226
230
|
COLORS = {
|
|
227
|
-
directory: {hsl: [220, 80, 60]},
|
|
228
|
-
file: {hsl: [0, 0, 90]},
|
|
229
|
-
executable: {hsl: [120, 70, 50]},
|
|
230
|
-
selected: {hsl: [50, 90, 70]},
|
|
231
|
-
preview: {hsl: [180, 60, 65]}
|
|
232
|
-
}
|
|
231
|
+
directory: { hsl: [220, 80, 60] },
|
|
232
|
+
file: { hsl: [0, 0, 90] },
|
|
233
|
+
executable: { hsl: [120, 70, 50] },
|
|
234
|
+
selected: { hsl: [50, 90, 70] },
|
|
235
|
+
preview: { hsl: [180, 60, 65] }
|
|
236
|
+
}.freeze
|
|
237
|
+
|
|
238
|
+
# Keybind settings
|
|
239
|
+
KEYBINDS = {
|
|
240
|
+
quit: %w[q ESC],
|
|
241
|
+
up: %w[k UP],
|
|
242
|
+
down: %w[j DOWN]
|
|
243
|
+
}.freeze
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### script_paths.yml
|
|
247
|
+
|
|
248
|
+
```yaml
|
|
249
|
+
# ~/.config/rufio/script_paths.yml
|
|
250
|
+
- ~/.config/rufio/scripts
|
|
251
|
+
- ~/bin
|
|
252
|
+
- ~/scripts
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### bookmarks.yml
|
|
256
|
+
|
|
257
|
+
```yaml
|
|
258
|
+
# ~/.config/rufio/bookmarks.yml
|
|
259
|
+
- path: ~/Documents
|
|
260
|
+
name: Documents
|
|
261
|
+
- path: ~/projects
|
|
262
|
+
name: Projects
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Local Configuration
|
|
266
|
+
|
|
267
|
+
Place `rufio.yml` in your project root for project-specific script paths:
|
|
268
|
+
|
|
269
|
+
```yaml
|
|
270
|
+
# ./rufio.yml (project root)
|
|
271
|
+
script_paths:
|
|
272
|
+
- ./scripts
|
|
273
|
+
- ./bin
|
|
233
274
|
```
|
|
234
275
|
|
|
235
|
-
##
|
|
276
|
+
## External Tool Integration
|
|
236
277
|
|
|
237
|
-
rufio
|
|
278
|
+
rufio integrates with the following external tools to extend functionality:
|
|
238
279
|
|
|
239
|
-
|
|
|
240
|
-
|
|
241
|
-
| fzf |
|
|
242
|
-
| rga |
|
|
243
|
-
| zoxide |
|
|
280
|
+
| Tool | Purpose | Key |
|
|
281
|
+
|------|---------|-----|
|
|
282
|
+
| fzf | File name search | `s` |
|
|
283
|
+
| rga | File content search | `F` |
|
|
284
|
+
| zoxide | Directory history | `z` |
|
|
244
285
|
|
|
245
|
-
###
|
|
286
|
+
### Installation
|
|
246
287
|
|
|
247
288
|
```bash
|
|
248
289
|
# macOS
|
|
@@ -250,42 +291,42 @@ brew install fzf rga zoxide
|
|
|
250
291
|
|
|
251
292
|
# Ubuntu/Debian
|
|
252
293
|
apt install fzf zoxide
|
|
253
|
-
# rga
|
|
294
|
+
# rga requires separate installation: https://github.com/phiresky/ripgrep-all
|
|
254
295
|
```
|
|
255
296
|
|
|
256
|
-
##
|
|
297
|
+
## Advanced Features
|
|
257
298
|
|
|
258
|
-
###
|
|
299
|
+
### Native Scanner (Experimental)
|
|
259
300
|
|
|
260
|
-
|
|
301
|
+
Support for native implementation for fast directory scanning:
|
|
261
302
|
|
|
262
303
|
```bash
|
|
263
|
-
rufio --native #
|
|
264
|
-
rufio --native=zig # Zig
|
|
304
|
+
rufio --native # Auto-detect
|
|
305
|
+
rufio --native=zig # Zig implementation
|
|
265
306
|
```
|
|
266
307
|
|
|
267
|
-
### JIT
|
|
308
|
+
### JIT Compiler
|
|
268
309
|
|
|
269
310
|
```bash
|
|
270
311
|
rufio --yjit # Ruby 3.1+ YJIT
|
|
271
312
|
rufio --zjit # Ruby 3.4+ ZJIT
|
|
272
313
|
```
|
|
273
314
|
|
|
274
|
-
###
|
|
315
|
+
### Health Check
|
|
275
316
|
|
|
276
317
|
```bash
|
|
277
|
-
rufio -c #
|
|
278
|
-
rufio --check-health #
|
|
318
|
+
rufio -c # Check system dependencies
|
|
319
|
+
rufio --check-health # Same as above
|
|
279
320
|
```
|
|
280
321
|
|
|
281
|
-
##
|
|
322
|
+
## Development
|
|
282
323
|
|
|
283
|
-
###
|
|
324
|
+
### Requirements
|
|
284
325
|
|
|
285
|
-
- Ruby 2.7.0
|
|
326
|
+
- Ruby 2.7.0 or later
|
|
286
327
|
- io-console, pastel, tty-cursor, tty-screen gems
|
|
287
328
|
|
|
288
|
-
###
|
|
329
|
+
### Running Development Version
|
|
289
330
|
|
|
290
331
|
```bash
|
|
291
332
|
git clone https://github.com/masisz/rufio
|
|
@@ -294,17 +335,17 @@ bundle install
|
|
|
294
335
|
./bin/rufio
|
|
295
336
|
```
|
|
296
337
|
|
|
297
|
-
###
|
|
338
|
+
### Testing
|
|
298
339
|
|
|
299
340
|
```bash
|
|
300
341
|
bundle exec rake test
|
|
301
342
|
```
|
|
302
343
|
|
|
303
|
-
##
|
|
344
|
+
## License
|
|
304
345
|
|
|
305
346
|
MIT License
|
|
306
347
|
|
|
307
|
-
##
|
|
348
|
+
## Contributing
|
|
308
349
|
|
|
309
|
-
|
|
310
|
-
|
|
350
|
+
Bug reports and feature requests are welcome at [GitHub Issues](https://github.com/masisz/rufio/issues).
|
|
351
|
+
Pull requests are also welcome!
|