Version: 1.0
Author: Brian Summerfield
Encode Queue is a command-line tool that manages a queue of shell commands, particularly useful for sequentially encoding files. The queue operates by reading and executing commands from the first line of a file, removing the line once the command is executed. This allows you to continue adding or editing commands even while the queue is processing. It runs as a single task, making it easy to suspend and resume as needed.
- Add Commands: Add shell commands to the queue.
- Start Queue Processing: Execute the commands in the queue sequentially.
- List Commands: View all commands currently in the queue.
- Edit Queue: Open the queue in your preferred text editor to manually modify the commands.
- Rust: You need to have Rust installed on your system to build and run this project.
- Fish Shell: The commands in the queue are executed using the Fish shell.
-
Clone the repository:
git clone https://github.com/BJSummerfield/encode_queue.git cd encode_queue
-
Build the project:
cargo build --release
-
Run the executable:
./target/release/encode_queue
After building the project, you can use the encode_queue
command with the following options:
encode_queue add "your_command_here"
Example:
encode_queue add "ffmpeg -i input.mp4 -c:v libx264 output.mp4"
encode_queue start
This will execute all commands in the queue sequentially, removing each command from the file after it is executed.
encode_queue ls
This will display all commands currently in the queue.
encode_queue edit
This will open the queue file in your default editor (as specified by the EDITOR
environment variable).
The queue of commands is stored in a text file located at:
~/.config/encode_queue/commands.txt
You can change the default editor by setting the EDITOR
environment variable:
export EDITOR=nvim
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
This project is licensed under the MIT License. See the LICENSE file for details.
If you have any questions, feel free to reach out to me at [email protected].