Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gozeloglu/bm.sh
BookMark CLI tool for UNIX /Linux terminals.
https://github.com/gozeloglu/bm.sh
bookmark bookmarks cli linux shell-script unix unix-shell
Last synced: 29 days ago
JSON representation
BookMark CLI tool for UNIX /Linux terminals.
- Host: GitHub
- URL: https://github.com/gozeloglu/bm.sh
- Owner: gozeloglu
- License: mit
- Created: 2021-02-12T20:16:26.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-12-04T19:01:59.000Z (about 1 month ago)
- Last Synced: 2024-12-04T20:19:10.028Z (about 1 month ago)
- Topics: bookmark, bookmarks, cli, linux, shell-script, unix, unix-shell
- Language: Shell
- Homepage:
- Size: 202 KB
- Stars: 11
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# bm
![LICENSE](https://img.shields.io/badge/license-MIT-green)
![Proudly written in Shell](https://img.shields.io/badge/written%20in-shell-pink)
![VERSION](https://img.shields.io/badge/version-0.1.0-blue)![](./img/logo.jpg)
**bm** comes from **Bookmark** as a short name. bm is a CLI tool for saving links on terminal easily. It has different features like adding new link, listing them, creating and saving under categories, deleting links or categories.
## Motivation
I always use terminal while making development. It stays open everytime. I compile, run, test the code or commiting the changes on GitHub on the terminal. In short, I try to do all my jobs while coding on the terminal. Again, due to my personal characteristics, I want to control my jobs from one place if it is possible. I mean I do not like to work with lots of different tools. I try to manage all stuff from one or two applications/tools. I know there are different tools or ways to manage bookmarks, but I do not like using any other tools/applications except the necessary ones like IDE, terminal. That's why I wanted to build a CLI tool that manages the bookmarks. Also, the minor motivation was applying the **Bash** knowledge to real-world project.
## Run
```shell
$ git clone https://github.com/gozeloglu/bm.sh.git # Clone the repository
$ cd bm/ # Change the directory
$ ./bm --help # Make sure that script is executable
```If you get an error when you run the script, change the mode as follow:
```shell
$ chmod +x bm
```
First, you need to run `setup` command. It creates the directory under your `~` directory and default category file.## Example
```shell
$ ./bm setup # prepares the environment
$ ./bm --help # shows the usage
$ ./bm add www.github.com Software CS # Saves the link on "Software" and "CS" categories
$ ./bm add --category Software CS Reading Videos # Adds new categories
$ ./bm list --category # lists all categories
$ ./bm list --category CS # lists all bookmarks under given category
$ ./bm list -c CS Reading Videos # lists all bookmarks under given categories
$ ./bm remove Reading Videos # Remove the given categories
$ ./bm remove --force Reading Videos # Remove the given categories even if they are not empty
$ ./bm delete 1 3 4 # Delete the given bookmark ids in default category, bm
$ ./bm delete -c Reading 1 4 5 # Delete the given bookmark ids by given category
```## Usage
If you want to see usage of the command, just add `--help` or `-h` flag as follow.
```shell
$ ./bm --help # CLI usage
$ ./bm add --help # add usage
$ ./bm list --help # list usage
$ ./bm delete --help # delete usage
$ ./bm remove --help # remove usage
```You can enter multiple category or id in commands. **bm** handles all of them. There is an exception for it when you want to delete bookmarks by category. You need to type just one category. Otherwise, **bm** understands them as a bookmark id.
## Demo
![bm demo](img/demo.gif)
## Contribution
Contributions are welcome. But, the project is still under development by me. That's why I may not accept the pull requests from you, but we can discuss in issues if you open issue.
## What is next?
- [ ] Migrate to database or cloud.
- [ ] Code refactoring for each file.
- [ ] Enable to use in system-wide.# LICENSE
[MIT](./LICENSE)