#google-drive #drive #search #google #tui #cli

app gdrive-search

A TUI to quickly find files in your Google Drive

1 unstable release

0.1.0 Oct 27, 2021

#19 in #google-drive

GPL-3.0 license

30KB
247 lines

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.

Dependencies

~31–45MB
~825K SLoC