{"id":13619707,"url":"https://github.com/slai11/goto","last_synced_at":"2025-04-14T16:32:30.446Z","repository":{"id":62439689,"uuid":"256779270","full_name":"slai11/goto","owner":"slai11","description":"gt your desired path with minimal keystrokes","archived":false,"fork":false,"pushed_at":"2024-05-04T10:20:05.000Z","size":149,"stargazers_count":27,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-31T11:34:57.689Z","etag":null,"topics":["cli","command-line-tool","goto","jump","rust"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/goto-rs","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/slai11.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2020-04-18T14:52:28.000Z","updated_at":"2024-05-04T10:08:42.000Z","dependencies_parsed_at":"2024-08-01T21:53:51.306Z","dependency_job_id":null,"html_url":"https://github.com/slai11/goto","commit_stats":{"total_commits":39,"total_committers":3,"mean_commits":13.0,"dds":"0.17948717948717952","last_synced_commit":"7bdcf7559b23b9bf69ff33daf154309d86795a55"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slai11%2Fgoto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slai11%2Fgoto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slai11%2Fgoto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slai11%2Fgoto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/slai11","download_url":"https://codeload.github.com/slai11/goto/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223638147,"owners_count":17177747,"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":["cli","command-line-tool","goto","jump","rust"],"created_at":"2024-08-01T21:00:47.306Z","updated_at":"2024-11-08T05:31:52.132Z","avatar_url":"https://github.com/slai11.png","language":"Rust","funding_links":[],"categories":["Applications"],"sub_categories":["System tools"],"readme":"# goto (gt)\n\n[![CI Status](https://img.shields.io/github/workflow/status/slai11/goto/ci/master?label=ci\u0026logo=github\u0026style=for-the-badge)](https://github.com/slai11/goto/actions)\n[![Crates.io](https://img.shields.io/crates/v/goto?style=for-the-badge)](https://crates.io/crates/goto-rs)\n[![License: MIT](https://img.shields.io/github/license/slai11/goto?style=for-the-badge)](https://opensource.org/licenses/MIT)\n\n\n*gt* is a simple and user-friendly way to jump to your indexed directories.\n\n*gt* is short for \"goto\", which is basically what you want to do with minimal\nkeystrokes.\n\n## Features\n\n* Convenient syntax `gt XXX` to jump to XXX's path\n* Easy indexing of sub-directories by using `gt add -a`\n* Pretty tree-like index listing using `gt ls`\n\n## Demo\n\n![Demo](doc/demo.png)\n\n\n## Installation \n\nStep 1. Getting the binary\n```\nwget https://github.com/slai11/goto/releases/download/v0.3.0/goto-rs-v0.3.0-x86_64-apple-darwin.tar.gz\ntar -xvf goto-rs-v0.3.0-x86_64-apple-darwin.tar.gz\ncp goto-rs-v0.3.0-x86_64-apple-darwin/goto-rs /usr/local/bin\n```\n\nOr you could clone the project and build from source. You will need rust (`brew\ninstall rust`) to do so.\n```\ngit clone https://github.com/slai11/goto.git\ncd goto \ncargo build --release\ncp target/release/goto-rs /path/to/modules/\n```\n\nStep 2. Setting up your bash/zsh\nPaste `eval \"$(goto-rs init)\"` in your bashrc or zshrc.\n\nThe binary's name is `goto-rs` while the command you should be using is `gt`.\n\nA shell-based workaround inspired by https://github.com/ajeetdsouza/zoxide and\nhttps://github.com/gsamokovarov/jump is used as it is not possible to change the\nworking directory of your shell programmatically. The awkward naming of the\nbinary is due to lack of namespace.\n\nComing Soon: Brew install!\n\n## Command-Line Options\n\n```\n❯ gt help\ngt\n\nUSAGE:\n    goto-rs [name]... [SUBCOMMAND]\n\nFLAGS:\n    -h, --help       Prints help information\n    -V, --version    Prints version information\n\nARGS:\n    \u003cname\u003e...    Refers to name of index. Must be specific for now.\n\nSUBCOMMANDS:\n    add      Add directories and sub-directories to index.\n    help     Prints this message or the help of the given subcommand(s)\n    init     Initialises bash-script and database.\n    ls       List all indexed directories.\n    prune    Removes invalid indexes in the database.\n    rm       Remove directories and sub-directories to index.\n\n```\n\n\n## Guide \n\n#### Jumping to an indexed directory\nUse `gt \u003cPATH\u003e` to jump to your desired folder. The `\u003cPATH\u003e` is the folder name.\nFor example to jump to `Users/xxx/project/personal`, the command `gt personal`\nwill change your shell directory to the desired path.\n\n#### Indexing a directory\nTo add the current working directory into your indexs:\n```\ngt add\n```\n\nTo add the current directory with its subdirectories (`-a` for all subdirectories):\n\n```\ngt add -a\n```\n\nTo add multiple levels of subdirectory, use the following command, where `n` is\nthe levels of subdirectories to add.\n```\ngt add -r n\n```\n\n#### List indexed directories\nIf you wish to list and inspect your current indexed directories. \n```\ngt ls\n```\n\n#### Cleaning up index to ensure all paths are valid\nUse `gt prune` to update and remove non-existent directories.\n\n\n#### Removing indexes\nRemoving indexes works the same way as `gt add` but in the reverse manner.\n\nTo remove the directory you are in from the indexes:\n```\ngt rm\n```\n\nTo remove the current directory with its subdirectories:\n```\ngt rm -a\n```\n\nTo add multiple levels of subdirectory, use the following command, where `n` is\nthe levels of subdirectories to add.\n```\ngt rm -r n\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslai11%2Fgoto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fslai11%2Fgoto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslai11%2Fgoto/lists"}