Oxio is a small snippet manager inspired by Zach Holman's boom. Quoting Zach's description of boom:
You can stash away text like URLs, canned responses, and important notes and then quickly copy them onto your clipboard, ready for pasting.
Install using cargo
:
cargo install oxio
▲ oxio gif magic http://i.imgur.com/n5xR79B.gif
oxio: Ok, magic (in gif) is http://i.imgur.com/n5xR79B.gif
▲ oxio magic
oxio: http://i.imgur.com/n5xR79B.gif (from gif->magic) is now in your clipboard!
▲ oxio rm-item gif magic
oxio: Removed magic from gif
To add items to your local cache, invoke oxio
passing three arguments;
A group
, the item name
and the item's value
. Those arguments are used
to write a new file in the local cache:
▲ oxio gif magic http://i.imgur.com/n5xR79B.gif
------^----^-----------------^----------------
| | |
| | Value
| Name
Group
To quickly copy an item to the clipboard, simply invoke oxio
passing the
item name in the first argument:
▲ oxio magoc
oxio: http://i.imgur.com/n5xR79B.gif (from gif->magic) is now in your clipboard!
It then copies the item to your clipboard. Notice that the command above asked
for magoc
instead of magic
. Oxio attempts automatically fix typos.
In case you need an exact item, from an exact group, invoke oxio
passing
the group, followed by the item's name:
▲ oxio gif magic
oxio: http://i.imgur.com/n5xR79B.gif (from gif->magic) is now in your clipboard!
To remove an item, use rm-item
, again, passing the group's and item's name:
▲ oxio rm-item gif magic
oxio: Removed magic from gif
To remove a group and all its items, use rm-group
:
▲ oxio rm-group gif magic
oxio: Removed group gif and all its items.
Then, to display all your items, use oxio all
:
▲ oxio all
gif:
magic: http://i.imgur.com/n5xR79B.gif
Alternatively, to edit large items using your default editor, use oxio edit
,
passing the group's and item's name:
▲ oxio edit gif magic
[opens your editor]
oxio: Ok, magic (in gif) is foobar
For those using multiple machines, Oxio is able to sync a repository with all local items. To start using sync, create a new remote repository, and use one of the following alternatives:
In case you already have a local cache (you already added items),
use oxio sync merge git-url
, where git-url
is a git repository:
▲ oxio sync merge [email protected]:yourusername/.oxio.git
oxio: Clonning [email protected]:yourusername/.oxio.git into /var/folders/l1/n7yv6s4d5350p7nxyn8bmtsc0000gn/T/zcl7bKG1cY0mvMcpG5Y9AGjpnICvVa
oxio: Copying items to new temporary repository...
oxio: Performing sync...
oxio: Merging changes...
oxio: Pushing changes...
oxio: Sync complete
oxio: Applying local changes...
oxio: Done! 220 item(s) in the local repository. Use oxio sync to sync changes.
Oxio will automatically update the repository and your installation.
In case you haven't added items into your local cache, or you already have
a repository with Oxio items and want to download to your machine, use
oxio sync init git-url
:
▲ oxio sync init [email protected]:yourusername/.oxio.git
oxio: Clonning [email protected]:yourusername/.oxio.git into /Users/yourusername/.oxio.cache
oxio: Done! 219 item(s) in the local repository. Use oxio sync to sync changes.
After adding, removing or editing items or groups, simply invoke oxio sync
.
Remote changes will be downloaded to the local repository, and local changes
will be sent to it.
▲ oxio sync
oxio: Performing sync...
oxio: Merging changes...
oxio: Pushing changes...
oxio: Sync complete
- Add Tests
MIT License
Copyright (c) 2021 Victor Gama
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.