{"id":13910962,"url":"https://github.com/fezcode/bm","last_synced_at":"2026-04-04T20:07:52.911Z","repository":{"id":139212593,"uuid":"403749921","full_name":"fezcode/bm","owner":"fezcode","description":"Bookmark Manager","archived":false,"fork":false,"pushed_at":"2022-08-02T17:35:40.000Z","size":48,"stargazers_count":9,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-25T20:39:20.413Z","etag":null,"topics":["bookmark","bookmark-manager","bookmarks","pretty-print","rust","shell","terminal","terminal-app"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fezcode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-06T20:23:56.000Z","updated_at":"2024-11-04T19:02:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"512c2a95-58ed-40b2-800f-a4eb2cc22e44","html_url":"https://github.com/fezcode/bm","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/fezcode/bm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fezcode%2Fbm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fezcode%2Fbm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fezcode%2Fbm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fezcode%2Fbm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fezcode","download_url":"https://codeload.github.com/fezcode/bm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fezcode%2Fbm/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265742304,"owners_count":23820824,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bookmark","bookmark-manager","bookmarks","pretty-print","rust","shell","terminal","terminal-app"],"created_at":"2024-08-07T00:01:51.963Z","updated_at":"2026-04-04T20:07:52.864Z","avatar_url":"https://github.com/fezcode.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# BM - Bookmark Manager\n## A Simple Bookmark Manager for Your Shell.\n\nCreates `~/.bm` directory to store `store.toml` file which contains your bookmarks in\n`toml` format.\n\n## Commands\n| Command                                | Description                                                               |\n|:---------------------------------------|:--------------------------------------------------------------------------|\n| `bm a/add \u003cname\u003e                     ` | Adds current directory to bookmarks.                                      |\n| `bm a/add \u003cname\u003e \u003cdirectory\u003e [option]` | Adds given directory to bookmarks.                                        |\n| `bm s/show                           ` | Show all bookmarks.                                                       |\n| `bm s/show \u003cname\u003e                    ` | Show bookmark associated with given name.                                 |\n| `bm d/delete \u003cname\u003e                  ` | Delete bookmark with given name.                                          |\n| `bm h/help                           ` | Prints help text.                                                         |\n| `bm -h/--help                        ` | Prints help text.                                                         |\n| `bm v/version/-v/--version           ` | Prints version information.                                               |\n| `bm debug \u003cany full command\u003e         ` | For any command, activates debug mode, if any debug prints are available. |\n\n### Add Options\n```\n   -a, --add-anyway\n       Adds path to bookmarks even if it does not exist\n   \n   -o, --overwrite\n       Overwrites bookmark with new given value if a bookmark with\n       same name exists.\n       \n   -d, --directory-only\n       Add bookmark if it is directory only. If -f is provided last, -f will be used.\n       \n   -f, --file-only \n       Add bookmark if it is file only. If -d is provided last, -d will be used.\n```\n\n### Show Options\n```\n   -p, --pretty\n       When priting all files, via `bm show`, giving this option prints output\n       in table format.\n```\n\n## Examples\n\n### 1. Add directory to bookmarks\n```bash\n# Add directory \n$ bm a HOME_DIR ~ \n# Add current directory\n$ bm a HOME_DIR \n```\n\n### 2. Change directory to `HOME_DIR`\n**Linux**\n```bash\n$ cd `bm s HOME_DIR`\n# or\n$ cd $(bm s HOME_DIR)\n```\n\n**Windows**\n```bash\n$ cd $(.\\bm s HOME_DIR)\n# or\n$ bm s HOME_DIR | cd\n```\n\n### 3. Show all bookmarks\n```bash\n$ bm s\n# or pretty print\n$ bm s -p\n```\n\n### 4. Delete bookmark\n```bash\n$ bm d HOME_DIR \n```\n\n### 5. Add path to bookmarks if given path is path of a file\n```bash\n$ bm d FILE_PATH file.txt -f\n```\n\n### 6. Add path to bookmarks if given path is path of a directory\n```bash\n$ bm d DIR_PATH /path/to/dir -d\n```\n\n### 7. Print additional information via Debug command\n```bash\n$ bm debug add PATH /path\n```\n\n## Building Project\nIn order to build project, run\n\n```bash\n$ cargo build\n```\n\nTo run project,\n\n```bash\n$ cargo run --package bm --bin bm\n```\n\n## Creating Debian Package\n1. First install cargo-deb package\n```bash\n   cargo install cargo-deb \n```\n\n2. Add metadata to Cargo.toml\n```toml\n[package.metadata.deb]\nmaintainer = \"Username \u003cusername@example.com\u003e\"\ncopyright = \"Copyright (c) 2022 Username \u003cusername@example.com\u003e\"\n```\n\n3. Run `cargo deb`\n```\ncargo deb\n```\n\n## Creating RPM Package\n\n### Install\n\n```cargo install cargo-generate-rpm```\n\n### Usage\n\n```rust\ncargo build --release\nstrip -s target/release/XXX\ncargo generate-rpm\n```\n\n### Configuration\n\n``` toml\n[package.metadata.generate-rpm]\n    name: the package name. If not present, package.name is used.\n    version: the package version. If not present, package.version is used.\n    license: the package license. If not present, package.license is used.\n    summary: the package summary/description. If not present, package.description is used.\n    assets: (mandatory) the array of the files to be included in the package\n        source: the location of that asset in the Rust project. (e.g. target/release/XXX) Wildcard character * is allowed.\n        dest: the install-destination. (e.g. /usr/bin/XXX) If source contains wildcard character *, it must be a directory, not a file path.\n        mode: the permissions as octal string. (e.g. 755 to indicate -rwxr-xr-x)\n        config: set true if it is a configuration file.\n        doc: set true if it is a document file.\n    release: optional string of release.\n    epoch: optional number of epoch.\n    pre_install_script: optional string of pre_install_script.\n    pre_uninstall_script: optional string of pre_uninstall_script.\n    post_install_script: optional string of post_install_script.\n    post_uninstall_script: optional string of post_uninstall_script.\n    requires: optional list of Requires\n    auto-req: optional string \"no\" to disable the automatic dependency process\n    obsoletes: optional list of Obsoletes\n    conflicts: optional list of Conflicts\n    provides: optional list of Provides\n```\n\n### Location\n```target/generate-rpm/XXX.rpm```\n\n**_[Source](https://blog.karmacomputing.co.uk/how-to-create-deb-package-from-rust/)_**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffezcode%2Fbm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffezcode%2Fbm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffezcode%2Fbm/lists"}