{"id":13397550,"url":"https://github.com/prasmussen/gdrive","last_synced_at":"2025-12-12T00:46:16.521Z","repository":{"id":6168549,"uuid":"7398306","full_name":"prasmussen/gdrive","owner":"prasmussen","description":"Google Drive CLI Client","archived":true,"fork":false,"pushed_at":"2023-04-19T18:46:51.000Z","size":491,"stargazers_count":8985,"open_issues_count":433,"forks_count":1180,"subscribers_count":219,"default_branch":"master","last_synced_at":"2025-09-29T00:32:31.153Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/prasmussen.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}},"created_at":"2013-01-01T19:34:16.000Z","updated_at":"2025-09-27T23:40:49.000Z","dependencies_parsed_at":"2023-07-13T20:44:48.340Z","dependency_job_id":"fda952a4-e69e-4a85-b05b-071512771caf","html_url":"https://github.com/prasmussen/gdrive","commit_stats":{"total_commits":267,"total_committers":29,"mean_commits":9.206896551724139,"dds":"0.16479400749063666","last_synced_commit":"c12170d37eeb86ac30626e38a109f63ecb2dbd85"},"previous_names":["gdrive-org/gdrive"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/prasmussen/gdrive","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prasmussen%2Fgdrive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prasmussen%2Fgdrive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prasmussen%2Fgdrive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prasmussen%2Fgdrive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prasmussen","download_url":"https://codeload.github.com/prasmussen/gdrive/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prasmussen%2Fgdrive/sbom","scorecard":{"id":421087,"data":{"date":"2025-08-11","repo":{"name":"github.com/prasmussen/gdrive","commit":"ab270856c83aa5d8be5e537f71505f4bd27e99f5"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.5,"checks":[{"name":"Code-Review","score":4,"reason":"Found 11/23 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/release.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yaml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/prasmussen/gdrive/release.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/prasmussen/gdrive/release.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yaml:82: update your workflow using https://app.stepsecurity.io/secureworkflow/prasmussen/gdrive/release.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:84: update your workflow using https://app.stepsecurity.io/secureworkflow/prasmussen/gdrive/release.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yaml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/prasmussen/gdrive/release.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/prasmussen/gdrive/release.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yaml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/prasmussen/gdrive/release.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/prasmussen/gdrive/release.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yaml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/prasmussen/gdrive/release.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/prasmussen/gdrive/release.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yaml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/prasmussen/gdrive/release.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/prasmussen/gdrive/release.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yaml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/prasmussen/gdrive/release.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/prasmussen/gdrive/release.yaml/master?enable=pin","Warn: goCommand not pinned by hash: vendor/github.com/soniakeys/graph/travis.sh:7","Warn: goCommand not pinned by hash: vendor/github.com/soniakeys/graph/travis.sh:8","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   7 third-party GitHubAction dependencies pinned","Info:   0 out of   2 goCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 2.1.1 not signed: https://api.github.com/repos/prasmussen/gdrive/releases/43790824","Warn: release artifact 2.1.1 does not have provenance: https://api.github.com/repos/prasmussen/gdrive/releases/43790824"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 18 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-19T01:13:09.234Z","repository_id":6168549,"created_at":"2025-08-19T01:13:09.234Z","updated_at":"2025-08-19T01:13:09.234Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280200872,"owners_count":26289477,"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","status":"online","status_checked_at":"2025-10-21T02:00:06.614Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-07-30T18:01:30.409Z","updated_at":"2025-10-21T04:03:48.294Z","avatar_url":"https://github.com/prasmussen.png","language":"Go","funding_links":[],"categories":["Go","Go (531)","HarmonyOS","Development"],"sub_categories":["Windows Manager","Lists \u0026 collections"],"readme":"## IMPORTANT\nThis repository is not maintained anymore. [Gdrive 3](https://github.com/glotlabs/gdrive) is its successor.\n\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n```\n\n## Prerequisites\nNone, binaries are statically linked.\nIf you want to compile from source you need the [go toolchain](http://golang.org/doc/install).\nVersion 1.5 or higher.\n\n## Installation\n### With [Homebrew](http://brew.sh) on Mac\n```\nbrew install gdrive\n```\n### Other\nDownload `gdrive` from one of the [links in the latest release](https://github.com/prasmussen/gdrive/releases).\nThe first time gdrive is launched (i.e. run `gdrive about` in your\nterminal not just `gdrive`), you will be prompted for a verification code.\nThe code is obtained by following the printed url and authenticating with the\ngoogle account for the drive you want access to. This will create a token file\ninside the .gdrive folder in your home directory. Note that anyone with access\nto this file will also have access to your google drive.\nIf you want to manage multiple drives you can use the global `--config` flag\nor set the environment variable `GDRIVE_CONFIG_DIR`.\nExample: `GDRIVE_CONFIG_DIR=\"/home/user/.gdrive-secondary\" gdrive list`\nYou will be prompted for a new verification code if the folder does not exist.\n\n## Compile from source\n```bash\ngo get github.com/prasmussen/gdrive\n```\nThe gdrive binary should now be available at `$GOPATH/bin/gdrive`\n\n\n### Syncing\nGdrive supports basic syncing. It only syncs one way at the time and works\nmore like rsync than e.g. dropbox. Files that are synced to google drive\nare tagged with an appProperty so that the files on drive can be traversed\nfaster. This means that you can't upload files with `gdrive upload` into\na sync directory as the files would be missing the sync tag, and would be\nignored by the sync commands.\nThe current implementation is slow and uses a lot of memory if you are\nsyncing many files. Currently only one file is uploaded at the time,\nthe speed can be improved in the future by uploading several files concurrently.\nTo learn more see usage and the examples below.\n\n### Service Account\nFor server to server communication, where user interaction is not a viable option, \nis it possible to use a service account, as described in this [Google document](https://developers.google.com/identity/protocols/OAuth2ServiceAccount).\nIf you want to use a service account, instead of being interactively prompted for\nauthentication, you need to use the `--service-account \u003cserviceAccountCredentials\u003e` \nglobal option, where `serviceAccountCredentials` is a file in JSON format obtained\nthrough the Google API Console, and its location is relative to the config dir. \n\n#### .gdriveignore\nPlacing a .gdriveignore in the root of your sync directory can be used to\nskip certain files from being synced. .gdriveignore follows the same\nrules as [.gitignore](https://git-scm.com/docs/gitignore), except that gdrive only reads the .gdriveignore file in the root of the sync directory, not ones in any subdirectories.\n\n\n## Usage\n```\ngdrive [global] list [options]                                 List files\ngdrive [global] download [options] \u003cfileId\u003e                    Download file or directory\ngdrive [global] download query [options] \u003cquery\u003e               Download all files and directories matching query\ngdrive [global] upload [options] \u003cpath\u003e                        Upload file or directory\ngdrive [global] upload - [options] \u003cname\u003e                      Upload file from stdin\ngdrive [global] update [options] \u003cfileId\u003e \u003cpath\u003e               Update file, this creates a new revision of the file\ngdrive [global] info [options] \u003cfileId\u003e                        Show file info\ngdrive [global] mkdir [options] \u003cname\u003e                         Create directory\ngdrive [global] share [options] \u003cfileId\u003e                       Share file or directory\ngdrive [global] share list \u003cfileId\u003e                            List files permissions\ngdrive [global] share revoke \u003cfileId\u003e \u003cpermissionId\u003e           Revoke permission\ngdrive [global] delete [options] \u003cfileId\u003e                      Delete file or directory\ngdrive [global] sync list [options]                            List all syncable directories on drive\ngdrive [global] sync content [options] \u003cfileId\u003e                List content of syncable directory\ngdrive [global] sync download [options] \u003cfileId\u003e \u003cpath\u003e        Sync drive directory to local directory\ngdrive [global] sync upload [options] \u003cpath\u003e \u003cfileId\u003e          Sync local directory to drive\ngdrive [global] changes [options]                              List file changes\ngdrive [global] revision list [options] \u003cfileId\u003e               List file revisions\ngdrive [global] revision download [options] \u003cfileId\u003e \u003crevId\u003e   Download revision\ngdrive [global] revision delete \u003cfileId\u003e \u003crevId\u003e               Delete file revision\ngdrive [global] import [options] \u003cpath\u003e                        Upload and convert file to a google document, see 'about import' for available conversions\ngdrive [global] export [options] \u003cfileId\u003e                      Export a google document\ngdrive [global] about [options]                                Google drive metadata, quota usage\ngdrive [global] about import                                   Show supported import formats\ngdrive [global] about export                                   Show supported export formats\ngdrive version                                                 Print application version\ngdrive help                                                    Print help\ngdrive help \u003ccommand\u003e                                          Print command help\ngdrive help \u003ccommand\u003e \u003csubcommand\u003e                             Print subcommand help\n```\n\n#### List files\n```\ngdrive [global] list [options]\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n\noptions:\n  -m, --max \u003cmaxFiles\u003e       Max files to list, default: 30\n  -q, --query \u003cquery\u003e        Default query: \"trashed = false and 'me' in owners\". See https://developers.google.com/drive/search-parameters\n  --order \u003csortOrder\u003e        Sort order. See https://godoc.org/google.golang.org/api/drive/v3#FilesListCall.OrderBy\n  --name-width \u003cnameWidth\u003e   Width of name column, default: 40, minimum: 9, use 0 for full width\n  --absolute                 Show absolute path to file (will only show path from first parent)\n  --no-header                Dont print the header\n  --bytes                    Size in bytes\n```\n\nList file in subdirectory\n\n\n```\n./gdrive list --query \" 'IdOfTheParentFolder' in parents\"\n```\n\n#### Download file or directory\n```\ngdrive [global] download [options] \u003cfileId\u003e\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n  \noptions:\n  -f, --force           Overwrite existing file\n  -r, --recursive       Download directory recursively, documents will be skipped\n  --path \u003cpath\u003e         Download path\n  --delete              Delete remote file when download is successful\n  --no-progress         Hide progress\n  --stdout              Write file content to stdout\n  --timeout \u003ctimeout\u003e   Set timeout in seconds, use 0 for no timeout. Timeout is reached when no data is transferred in set amount of seconds, default: 300\n```\n\n#### Download all files and directories matching query\n```\ngdrive [global] download query [options] \u003cquery\u003e\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n  \noptions:\n  -f, --force       Overwrite existing file\n  -r, --recursive   Download directories recursively, documents will be skipped\n  --path \u003cpath\u003e     Download path\n  --no-progress     Hide progress\n```\n\n#### Upload file or directory\n```\ngdrive [global] upload [options] \u003cpath\u003e\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n  \noptions:\n  -r, --recursive               Upload directory recursively\n  -p, --parent \u003cparent\u003e         Parent id, used to upload file to a specific directory, can be specified multiple times to give many parents\n  --name \u003cname\u003e                 Filename\n  --description \u003cdescription\u003e   File description\n  --no-progress                 Hide progress\n  --mime \u003cmime\u003e                 Force mime type\n  --share                       Share file\n  --delete                      Delete local file when upload is successful\n  --timeout \u003ctimeout\u003e           Set timeout in seconds, use 0 for no timeout. Timeout is reached when no data is transferred in set amount of seconds, default: 300\n  --chunksize \u003cchunksize\u003e       Set chunk size in bytes, default: 8388608\n```\n\n#### Upload file from stdin\n```\ngdrive [global] upload - [options] \u003cname\u003e\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n  \noptions:\n  -p, --parent \u003cparent\u003e         Parent id, used to upload file to a specific directory, can be specified multiple times to give many parents\n  --chunksize \u003cchunksize\u003e       Set chunk size in bytes, default: 8388608\n  --description \u003cdescription\u003e   File description\n  --mime \u003cmime\u003e                 Force mime type\n  --share                       Share file\n  --timeout \u003ctimeout\u003e           Set timeout in seconds, use 0 for no timeout. Timeout is reached when no data is transferred in set amount of seconds, default: 300\n  --no-progress                 Hide progress\n```\n\n#### Update file, this creates a new revision of the file\n```\ngdrive [global] update [options] \u003cfileId\u003e \u003cpath\u003e\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n  \noptions:\n  -p, --parent \u003cparent\u003e         Parent id, used to upload file to a specific directory, can be specified multiple times to give many parents\n  --name \u003cname\u003e                 Filename\n  --description \u003cdescription\u003e   File description\n  --no-progress                 Hide progress\n  --mime \u003cmime\u003e                 Force mime type\n  --timeout \u003ctimeout\u003e           Set timeout in seconds, use 0 for no timeout. Timeout is reached when no data is transferred in set amount of seconds, default: 300\n  --chunksize \u003cchunksize\u003e       Set chunk size in bytes, default: 8388608\n```\n\n#### Show file info\n```\ngdrive [global] info [options] \u003cfileId\u003e\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n  \noptions:\n  --bytes   Show size in bytes\n```\n\n#### Create directory\n```\ngdrive [global] mkdir [options] \u003cname\u003e\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n  \noptions:\n  -p, --parent \u003cparent\u003e         Parent id of created directory, can be specified multiple times to give many parents\n  --description \u003cdescription\u003e   Directory description\n```\n\n#### Share file or directory\n```\ngdrive [global] share [options] \u003cfileId\u003e\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n  \noptions:\n  --role \u003crole\u003e     Share role: owner/writer/commenter/reader, default: reader\n  --type \u003ctype\u003e     Share type: user/group/domain/anyone, default: anyone\n  --email \u003cemail\u003e   The email address of the user or group to share the file with. Requires 'user' or 'group' as type\n  --discoverable    Make file discoverable by search engines\n  --revoke          Delete all sharing permissions (owner roles will be skipped)\n```\n\n#### List files permissions\n```\ngdrive [global] share list \u003cfileId\u003e\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n```\n\n#### Revoke permission\n```\ngdrive [global] share revoke \u003cfileId\u003e \u003cpermissionId\u003e\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n```\n\n#### Delete file or directory\n```\ngdrive [global] delete [options] \u003cfileId\u003e\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n  \noptions:\n  -r, --recursive   Delete directory and all it's content\n```\n\n#### List all syncable directories on drive\n```\ngdrive [global] sync list [options]\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n  \noptions:\n  --no-header   Dont print the header\n```\n\n#### List content of syncable directory\n```\ngdrive [global] sync content [options] \u003cfileId\u003e\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n  \noptions:\n  --order \u003csortOrder\u003e        Sort order. See https://godoc.org/google.golang.org/api/drive/v3#FilesListCall.OrderBy\n  --path-width \u003cpathWidth\u003e   Width of path column, default: 60, minimum: 9, use 0 for full width\n  --no-header                Dont print the header\n  --bytes                    Size in bytes\n```\n\n#### Sync drive directory to local directory\n```\ngdrive [global] sync download [options] \u003cfileId\u003e \u003cpath\u003e\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n  \noptions:\n  --keep-remote         Keep remote file when a conflict is encountered\n  --keep-local          Keep local file when a conflict is encountered\n  --keep-largest        Keep largest file when a conflict is encountered\n  --delete-extraneous   Delete extraneous local files\n  --dry-run             Show what would have been transferred\n  --no-progress         Hide progress\n  --timeout \u003ctimeout\u003e   Set timeout in seconds, use 0 for no timeout. Timeout is reached when no data is transferred in set amount of seconds, default: 300\n```\n\n#### Sync local directory to drive\n```\ngdrive [global] sync upload [options] \u003cpath\u003e \u003cfileId\u003e\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n  \noptions:\n  --keep-remote             Keep remote file when a conflict is encountered\n  --keep-local              Keep local file when a conflict is encountered\n  --keep-largest            Keep largest file when a conflict is encountered\n  --delete-extraneous       Delete extraneous remote files\n  --dry-run                 Show what would have been transferred\n  --no-progress             Hide progress\n  --timeout \u003ctimeout\u003e       Set timeout in seconds, use 0 for no timeout. Timeout is reached when no data is transferred in set amount of seconds, default: 300\n  --chunksize \u003cchunksize\u003e   Set chunk size in bytes, default: 8388608\n```\n\n#### List file changes\n```\ngdrive [global] changes [options]\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n  \noptions:\n  -m, --max \u003cmaxChanges\u003e     Max changes to list, default: 100\n  --since \u003cpageToken\u003e        Page token to start listing changes from\n  --now                      Get latest page token\n  --name-width \u003cnameWidth\u003e   Width of name column, default: 40, minimum: 9, use 0 for full width\n  --no-header                Dont print the header\n```\n\n#### List file revisions\n```\ngdrive [global] revision list [options] \u003cfileId\u003e\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n  \noptions:\n  --name-width \u003cnameWidth\u003e   Width of name column, default: 40, minimum: 9, use 0 for full width\n  --no-header                Dont print the header\n  --bytes                    Size in bytes\n```\n\n#### Download revision\n```\ngdrive [global] revision download [options] \u003cfileId\u003e \u003crevId\u003e\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n  \noptions:\n  -f, --force           Overwrite existing file\n  --no-progress         Hide progress\n  --stdout              Write file content to stdout\n  --path \u003cpath\u003e         Download path\n  --timeout \u003ctimeout\u003e   Set timeout in seconds, use 0 for no timeout. Timeout is reached when no data is transferred in set amount of seconds, default: 300\n```\n\n#### Delete file revision\n```\ngdrive [global] revision delete \u003cfileId\u003e \u003crevId\u003e\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n```\n\n#### Upload and convert file to a google document, see 'about import' for available conversions\n```\ngdrive [global] import [options] \u003cpath\u003e\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n  \noptions:\n  -p, --parent \u003cparent\u003e   Parent id, used to upload file to a specific directory, can be specified multiple times to give many parents\n  --no-progress           Hide progress\n```\n\n#### Export a google document\n```\ngdrive [global] export [options] \u003cfileId\u003e\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n  \noptions:\n  -f, --force     Overwrite existing file\n  --mime \u003cmime\u003e   Mime type of exported file\n  --print-mimes   Print available mime types for given file\n```\n\n#### Google drive metadata, quota usage\n```\ngdrive [global] about [options]\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n  \noptions:\n  --bytes   Show size in bytes\n```\n\n#### Show supported import formats\n```\ngdrive [global] about import\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n```\n\n#### Show supported export formats\n```\ngdrive [global] about export\n\nglobal:\n  -c, --config \u003cconfigDir\u003e         Application path, default: /Users/\u003cuser\u003e/.gdrive\n  --refresh-token \u003crefreshToken\u003e   Oauth refresh token used to get access token (for advanced users)\n  --access-token \u003caccessToken\u003e     Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)\n  --service-account \u003caccountFile\u003e  Oauth service account filename, used for server to server communication without user interaction (file is relative to config dir)\n```\n\n\n## Examples\n#### List files\n```\n$ gdrive list\nId                             Name                    Type   Size     Created\n0B3X9GlR6EmbnZ3gyeGw4d3ozbUk   drive-windows-x64.exe   bin    6.6 MB   2015-07-18 16:43:58\n0B3X9GlR6EmbnTXlSc1FqV1dvSTQ   drive-windows-386.exe   bin    5.2 MB   2015-07-18 16:43:53\n0B3X9GlR6EmbnVjIzMDRqck1aekE   drive-osx-x64           bin    6.5 MB   2015-07-18 16:43:50\n0B3X9GlR6EmbnbEpXdlhza25zT1U   drive-osx-386           bin    5.2 MB   2015-07-18 16:43:41\n0B3X9GlR6Embnb095MGxEYmJhY2c   drive-linux-x64         bin    6.5 MB   2015-07-18 16:43:38\n```\n\n#### List largest files\n```\n$ gdrive list --query \"name contains 'gdrive'\" --order \"quotaBytesUsed desc\" -m 3\nId                             Name                     Type   Size     Created\n0B3X9GlR6EmbnZXpDRG1xblM2LTg   gdrive-linux-mips64      bin    8.5 MB   2016-02-22 21:07:04\n0B3X9GlR6EmbnNW5CTV8xdFkxTjg   gdrive-linux-mips64le    bin    8.5 MB   2016-02-22 21:07:07\n0B3X9GlR6EmbnZ1NGS25FdEVlWEk   gdrive-osx-x64           bin    8.3 MB   2016-02-21 20:22:13\n```\n\n#### Upload file\n```\n$ gdrive upload gdrive-osx-x64\nUploading gdrive-osx-x64\nUploaded 0B3X9GlR6EmbnZ1NGS25FdEVlWEk at 3.8 MB/s, total 8.3 MB\n```\n\n#### Make directory\n```\n$ gdrive mkdir gdrive-bin\nDirectory 0B3X9GlR6EmbnY1RLVTk5VUtOVkk created\n```\n\n#### Upload file to directory\n```\n$ gdrive upload --parent 0B3X9GlR6EmbnY1RLVTk5VUtOVkk gdrive-osx-x64\nUploading gdrive-osx-x64\nUploaded 0B3X9GlR6EmbnNTk0SkV0bm5Hd0E at 2.5 MB/s, total 8.3 MB\n```\n\n#### Download file\n```\n$ gdrive download 0B3X9GlR6EmbnZ1NGS25FdEVlWEk\nDownloading gdrive-osx-x64 -\u003e gdrive-osx-x64\nDownloaded 0B3X9GlR6EmbnZ1NGS25FdEVlWEk at 8.3 MB/s, total 8.3 MB\n```\n\n#### Share a file\n```\n$ gdrive share 0B3X9GlR6EmbnNTk0SkV0bm5Hd0E\nGranted reader permission to anyone\n```\n\n#### Pipe content directly to google drive\n```\n$ echo \"Hello World\" | gdrive upload - hello.txt\nUploading hello.txt\nUploaded 0B3X9GlR6EmbnaXVrOUpIcWlUS0E at 8.0 B/s, total 12.0 B\n```\n\n#### Print file to stdout\n```\n$ gdrive download --stdout 0B3X9GlR6EmbnaXVrOUpIcWlUS0E\nHello World\n```\n\n#### Get file info\n```\n$ gdrive info 0B3X9GlR6EmbnNTk0SkV0bm5Hd0E\nId: 0B3X9GlR6EmbnNTk0SkV0bm5Hd0E\nName: gdrive-osx-x64\nPath: gdrive-bin/gdrive-osx-x64\nMime: application/octet-stream\nSize: 8.3 MB\nCreated: 2016-02-21 20:47:04\nModified: 2016-02-21 20:47:04\nMd5sum: b607f29231a3b2d16098c4212516470f\nShared: True\nParents: 0B3X9GlR6EmbnY1RLVTk5VUtOVkk\nViewUrl: https://drive.google.com/file/d/0B3X9GlR6EmbnNTk0SkV0bm5Hd0E/view?usp=drivesdk\nDownloadUrl: https://docs.google.com/uc?id=0B3X9GlR6EmbnNTk0SkV0bm5Hd0E\u0026export=download\n```\n\n#### Update file (create new revision)\n```\n$ gdrive update 0B3X9GlR6EmbnNTk0SkV0bm5Hd0E gdrive-osx-x64\nUploading gdrive-osx-x64\nUpdated 0B3X9GlR6EmbnNTk0SkV0bm5Hd0E at 2.0 MB/s, total 8.3 MB\n```\n\n#### List file revisions\n```\n$ gdrive revision list 0B3X9GlR6EmbnNTk0SkV0bm5Hd0E\nId                                                    Name             Size     Modified              KeepForever\n0B3X9GlR6EmbnOFlHSTZQNWJWMGN2ckZucC9VaEUwczV1cUNrPQ   gdrive-osx-x64   8.3 MB   2016-02-21 20:47:04   False\n0B3X9GlR6EmbndVEwMlZCUldGWUlPb2lTS25rOFo1L2t6c2ZVPQ   gdrive-osx-x64   8.3 MB   2016-02-21 21:12:09   False\n```\n\n#### Download revision\n```\n$ gdrive revision download 0B3X9GlR6EmbnNTk0SkV0bm5Hd0E 0B3X9GlR6EmbnOFlHSTZQNWJWMGN2ckZucC9VaEUwczV1cUNrPQ\nDownloading gdrive-osx-x64 -\u003e gdrive-osx-x64\nDownload complete, rate: 8.3 MB/s, total size: 8.3 MB\n```\n\n#### Export google doc as docx\n```\n$ gdrive export --mime application/vnd.openxmlformats-officedocument.wordprocessingml.document 1Kt5A8X7X2RQrEi5t6Y9W1LayRc4hyrFiG63y2dIJEvk\nExported 'foo.docx' with mime type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\n```\n\n#### Import csv as google spreadsheet\n```\n$ gdrive import foo.csv\nImported 1mTl3DjIvap4tpTX_oMkDcbDT8ShtiGJRlozTfkXpeko with mime type: 'application/vnd.google-apps.spreadsheet'\n```\n\n#### Syncing directory to drive\n```\n# Create directory on drive\n$ gdrive mkdir drive-bin\nDirectory 0B3X9GlR6EmbnOEd6cEh6bU9XZWM created\n\n# Sync to drive\n$ gdrive sync upload _release/bin 0B3X9GlR6EmbnOEd6cEh6bU9XZWM\nStarting sync...\nCollecting local and remote file information...\nFound 32 local files and 0 remote files\n\n6 remote directories are missing\n[0001/0006] Creating directory drive-bin/bsd\n[0002/0006] Creating directory drive-bin/linux\n[0003/0006] Creating directory drive-bin/osx\n[0004/0006] Creating directory drive-bin/plan9\n[0005/0006] Creating directory drive-bin/solaris\n[0006/0006] Creating directory drive-bin/windows\n\n26 remote files are missing\n[0001/0026] Uploading bsd/gdrive-dragonfly-x64 -\u003e drive-bin/bsd/gdrive-dragonfly-x64\n[0002/0026] Uploading bsd/gdrive-freebsd-386 -\u003e drive-bin/bsd/gdrive-freebsd-386\n[0003/0026] Uploading bsd/gdrive-freebsd-arm -\u003e drive-bin/bsd/gdrive-freebsd-arm\n[0004/0026] Uploading bsd/gdrive-freebsd-x64 -\u003e drive-bin/bsd/gdrive-freebsd-x64\n[0005/0026] Uploading bsd/gdrive-netbsd-386 -\u003e drive-bin/bsd/gdrive-netbsd-386\n[0006/0026] Uploading bsd/gdrive-netbsd-arm -\u003e drive-bin/bsd/gdrive-netbsd-arm\n[0007/0026] Uploading bsd/gdrive-netbsd-x64 -\u003e drive-bin/bsd/gdrive-netbsd-x64\n[0008/0026] Uploading bsd/gdrive-openbsd-386 -\u003e drive-bin/bsd/gdrive-openbsd-386\n[0009/0026] Uploading bsd/gdrive-openbsd-arm -\u003e drive-bin/bsd/gdrive-openbsd-arm\n[0010/0026] Uploading bsd/gdrive-openbsd-x64 -\u003e drive-bin/bsd/gdrive-openbsd-x64\n[0011/0026] Uploading linux/gdrive-linux-386 -\u003e drive-bin/linux/gdrive-linux-386\n[0012/0026] Uploading linux/gdrive-linux-arm -\u003e drive-bin/linux/gdrive-linux-arm\n[0013/0026] Uploading linux/gdrive-linux-arm64 -\u003e drive-bin/linux/gdrive-linux-arm64\n[0014/0026] Uploading linux/gdrive-linux-mips64 -\u003e drive-bin/linux/gdrive-linux-mips64\n[0015/0026] Uploading linux/gdrive-linux-mips64le -\u003e drive-bin/linux/gdrive-linux-mips64le\n[0016/0026] Uploading linux/gdrive-linux-ppc64 -\u003e drive-bin/linux/gdrive-linux-ppc64\n[0017/0026] Uploading linux/gdrive-linux-ppc64le -\u003e drive-bin/linux/gdrive-linux-ppc64le\n[0018/0026] Uploading linux/gdrive-linux-x64 -\u003e drive-bin/linux/gdrive-linux-x64\n[0019/0026] Uploading osx/gdrive-osx-386 -\u003e drive-bin/osx/gdrive-osx-386\n[0020/0026] Uploading osx/gdrive-osx-arm -\u003e drive-bin/osx/gdrive-osx-arm\n[0021/0026] Uploading osx/gdrive-osx-x64 -\u003e drive-bin/osx/gdrive-osx-x64\n[0022/0026] Uploading plan9/gdrive-plan9-386 -\u003e drive-bin/plan9/gdrive-plan9-386\n[0023/0026] Uploading plan9/gdrive-plan9-x64 -\u003e drive-bin/plan9/gdrive-plan9-x64\n[0024/0026] Uploading solaris/gdrive-solaris-x64 -\u003e drive-bin/solaris/gdrive-solaris-x64\n[0025/0026] Uploading windows/gdrive-windows-386.exe -\u003e drive-bin/windows/gdrive-windows-386.exe\n[0026/0026] Uploading windows/gdrive-windows-x64.exe -\u003e drive-bin/windows/gdrive-windows-x64.exe\nSync finished in 1m18.891946279s\n\n# Add new local file\n$ echo \"google drive binaries\" \u003e _release/bin/readme.txt\n\n# Sync again\n$ gdrive sync upload _release/bin 0B3X9GlR6EmbnOEd6cEh6bU9XZWM\nStarting sync...\nCollecting local and remote file information...\nFound 33 local files and 32 remote files\n\n1 remote files are missing\n[0001/0001] Uploading readme.txt -\u003e drive-bin/readme.txt\nSync finished in 2.201339535s\n\n# Modify local file\n$ echo \"for all platforms\" \u003e\u003e _release/bin/readme.txt\n\n# Sync again\n$ gdrive sync upload _release/bin 0B3X9GlR6EmbnOEd6cEh6bU9XZWM\nStarting sync...\nCollecting local and remote file information...\nFound 33 local files and 33 remote files\n\n1 local files has changed\n[0001/0001] Updating readme.txt -\u003e drive-bin/readme.txt\nSync finished in 1.890244258s\n```\n\n#### List content of sync directory\n```\n$ gdrive sync content 0B3X9GlR6EmbnOEd6cEh6bU9XZWM\nId                             Path                             Type   Size     Modified\n0B3X9GlR6EmbnMldxMFV1UGVMTlE   bsd                              dir             2016-02-21 22:54:00\n0B3X9GlR6EmbnM05sQ3hVUnJnOXc   bsd/gdrive-dragonfly-x64         bin    7.8 MB   2016-02-21 22:54:14\n0B3X9GlR6EmbnVy1KXzA4dlU5RVE   bsd/gdrive-freebsd-386           bin    6.1 MB   2016-02-21 22:54:18\n0B3X9GlR6Embnb29QQkFtSlRiZnc   bsd/gdrive-freebsd-arm           bin    6.1 MB   2016-02-21 22:54:20\n0B3X9GlR6EmbnMkFQYVpSaHhHTXM   bsd/gdrive-freebsd-x64           bin    7.8 MB   2016-02-21 22:54:23\n0B3X9GlR6EmbnVmJRMl9hUDloVU0   bsd/gdrive-netbsd-386            bin    6.1 MB   2016-02-21 22:54:25\n0B3X9GlR6EmbnLVlTZWpxOEF4Q2s   bsd/gdrive-netbsd-arm            bin    6.1 MB   2016-02-21 22:54:28\n0B3X9GlR6EmbnOENUZmh3anJmNG8   bsd/gdrive-netbsd-x64            bin    7.8 MB   2016-02-21 22:54:30\n0B3X9GlR6EmbnWTRoQ2ZVQXRfQlU   bsd/gdrive-openbsd-386           bin    6.1 MB   2016-02-21 22:54:32\n0B3X9GlR6EmbncEtlN3ZuQ0VUWms   bsd/gdrive-openbsd-arm           bin    6.1 MB   2016-02-21 22:54:35\n0B3X9GlR6EmbnMlFLY1ptNEFyZWc   bsd/gdrive-openbsd-x64           bin    7.8 MB   2016-02-21 22:54:38\n0B3X9GlR6EmbncGtSajQyNzloVEE   linux                            dir             2016-02-21 22:54:01\n0B3X9GlR6EmbnMWVudkJmb1NZdmM   linux/gdrive-linux-386           bin    6.1 MB   2016-02-21 22:54:40\n0B3X9GlR6Embnbnpla1R2VHV5T2M   linux/gdrive-linux-arm           bin    6.1 MB   2016-02-21 22:54:42\n0B3X9GlR6EmbnM0s2cU1YWkNJSjA   linux/gdrive-linux-arm64         bin    7.7 MB   2016-02-21 22:54:45\n0B3X9GlR6EmbnNU9NNi1TdDc4S2c   linux/gdrive-linux-mips64        bin    8.5 MB   2016-02-21 22:54:47\n0B3X9GlR6EmbnSmdQNjRKZ2dWV1U   linux/gdrive-linux-mips64le      bin    8.5 MB   2016-02-21 22:54:50\n0B3X9GlR6EmbnS0g0OVgxMHY5Z3c   linux/gdrive-linux-ppc64         bin    7.8 MB   2016-02-21 22:54:52\n0B3X9GlR6EmbneVp6ZXRpR3FhWlU   linux/gdrive-linux-ppc64le       bin    7.8 MB   2016-02-21 22:54:54\n0B3X9GlR6EmbnczdJT195dFVxdU0   linux/gdrive-linux-x64           bin    7.8 MB   2016-02-21 22:54:57\n0B3X9GlR6EmbnTXZXeDRnSDdVS1E   osx                              dir             2016-02-21 22:54:02\n0B3X9GlR6EmbnWnRheXJNR0pUMU0   osx/gdrive-osx-386               bin    6.6 MB   2016-02-21 22:54:59\n0B3X9GlR6EmbnRzNqMWFXdDR1Rms   osx/gdrive-osx-arm               bin    6.6 MB   2016-02-21 22:55:01\n0B3X9GlR6EmbnaDlVWTZDd0JIeEU   osx/gdrive-osx-x64               bin    8.3 MB   2016-02-21 22:55:04\n0B3X9GlR6EmbnWW84UFBvbHlURXM   plan9                            dir             2016-02-21 22:54:02\n0B3X9GlR6EmbnTmc0a2RNdDZDRUU   plan9/gdrive-plan9-386           bin    5.8 MB   2016-02-21 22:55:07\n0B3X9GlR6EmbnT1pYZ2p4Sk9FVFk   plan9/gdrive-plan9-x64           bin    7.4 MB   2016-02-21 22:55:10\n0B3X9GlR6EmbnbnZnXzlYVHoxdk0   readme.txt                       bin    40.0 B   2016-02-21 22:59:56\n0B3X9GlR6EmbnSWF1QUlta3RnaGc   solaris                          dir             2016-02-21 22:54:03\n0B3X9GlR6EmbnaWFOV0YxSGs5Znc   solaris/gdrive-solaris-x64       bin    7.7 MB   2016-02-21 22:55:13\n0B3X9GlR6EmbnNE5ySkEzbWQ4Qms   windows                          dir             2016-02-21 22:54:03\n0B3X9GlR6EmbnX1RIT2w1TWZYWFU   windows/gdrive-windows-386.exe   bin    6.1 MB   2016-02-21 22:55:15\n0B3X9GlR6EmbndmVMU05POGRPS3c   windows/gdrive-windows-x64.exe   bin    7.8 MB   2016-02-21 22:55:18\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprasmussen%2Fgdrive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprasmussen%2Fgdrive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprasmussen%2Fgdrive/lists"}