gdrive-search

Crates.iogdrive-search
lib.rsgdrive-search
version0.1.0
sourcesrc
created_at2021-10-27 21:03:54.990438
updated_at2021-10-27 21:03:54.990438
descriptionA TUI to quickly find files in your Google Drive
homepagehttps://github.com/jalada/gdrive-search
repositoryhttps://github.com/jalada/gdrive-search
max_upload_size
id473262
size95,744
David Somers (jalada)

documentation

README

gdrive-search

Warning: I used this to learn Rust. It might be the worst Rust ever.

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.

What does it look like?

demo

Hitting enter would then open in your browser

What works?

  • 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.

Google Drive API setup notes.

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
    Windows {FOLDERID_RoamingAppData}\gdrive-search\clientsecret.json C:\Users\Alice\AppData\Roaming\gdrive-search\clientsecret.json

Roadmap

  • 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.
Commit count: 30

cargo fmt