Warning: I used this to learn Rust. It might be the worst Rust ever. Feedback to help me learn is very welcome!
Fifty percent learning Rust, fifty percent building a CLI to very quickly search & access files in your Google Drive.
On my Mac I had the Google Drive desktop app, and an Alfred workflow to use that synchronised filesystem to quickly search & open Drive files. But I haven't found an equivalent super-fast autocompleting search & open for Linux so I decided to build one.
Hitting enter would then open in your browser
- Sign in with Google Drive (if you follow setup below).
- Sync files & folders (currently fetches incrementally, every 5 minutes) and save to file.
- Interface for searching for file/folders.
- Open chosen file/folder in your web browser.
Download a release from GitHub if there is one for your platform.
gdrive-search can be built from source via the AUR.
If you have Rust installed you can download and compile gdrive-search from Cargo:
$ cargo install gdrive-search
Windows is currently not supported because gdrive-search depends on skim which depends on tuikit which doesn't support Windows.
Alfred workflow
In the docs folder there is an Alfred workflow which you can install
if you have the Alfred powerpack. It runs gdrive-search
in a terminal when
you press the hotkey (cmd+D) and then closes the terminal.
This dance will be familiar if you've used any other open source tools that use the Google Drive API.
-
Create a new project
-
Enable the Google Drive API for your project
-
Setup oauth consent screen
-
Create a new oauth client ID
-
Download the JSON provided and put it in the configuration directory. This varies depending on operating system:
Platform Value Example Linux $XDG_CONFIG_HOME or $HOME/.config/gdrive-search/clientsecret.json /home/alice/.config/gdrive-search/clientsecret.json macOS $HOME/Library/Preferences/gdrive-search/clientsecret.json /Users/Alice/Library/Preferences/gdrive-search/clientsecret.json
- Tag the release on Github.
- Wait for Github Actions to cross compile everything.
- Update the release notes.
- Update the AUR repository PKGBUILD.
- Test the PKGBUILD (ideally in a clean
archlinux:base-devel
docker container). - Follow the AUR release instructions.
- Some indication of what type of file/folder each entry is.
- Can we fetch in the background whilst skim loads to make it even faster?
- A way of resetting the configuration.
- Better error handling if config files are in an invalid state.
- Multi-account support.
- A way to force a fetch from scratch.