You can check ggsrun at https://github.com/tanaikech/ggsrun.
Gists
This is a simple method for using ggsrun. ggsrun is a CLI tool to execute Google Apps Script (GAS) on a terminal. Also this CLI tool can be used for managing files in Google Drive for OAuth2 and Service Account.
When you use ggsrun, it is required to retrieve the client ID and client secret and/or the service account at Cloud Platform Project. But, there is the case that you want to simply test or you want to just upload and download the files for Google Drive. In this post, I would like to introduce how to simply use ggsrun.
-
v1.7.4 (March 11, 2020)
-
Recently, I noticed that new Google Apps Script project of the standalone script type cannot be created by the create method of Drive API. From now, in order to create the standalone Google Apps Script project, only Google Apps Script API is required to be used. Ref By this, I updated ggsrun. So the command for creating new GAS project is not changed.
$ ggsrun u -p ###folderId### -f sample.gs -pn sampleGASProjectName
You can check ggsrun at https://github.com/tanaikech/ggsrun.
Gists
ggsrun is also a CLI application for using Google Drive.
Here, I would like to introduce a sample command. This is a sample command for uploading a file to a shared folder using ggsrun.
This situation supposes that the shared folder is https://drive.google.com/drive/folders/abcdefg?usp=sharing and the folder has the edit permission.
Sample command:
$ ggsrun u -f "sample.txt" -p "abcdefg" --serviceaccount "###JSON file of Service Account###"
- If you have already used OAuth2, you can upload the file by
ggsrun u -f "sample.txt" -p "###folderId###".
ggsrun was updated to v.1.7.1
- v1.7.1 (December 30, 2018)
- A bug was removed.
- When a project is downloaded and zipped, there was a case that “createdTime” and “modifiedTime” of the project cannot be retrieved by Apps Script API. This was modified.
You can check ggsrun at https://github.com/tanaikech/ggsrun.
ggsrun was updated to v.1.7.0
You can check ggsrun at https://github.com/tanaikech/ggsrun.
ggsrun was updated to v.1.6.0
- v1.6.0 (November 30, 2018)
- Although at ggsrun, files can be searched by filename and file ID, searching files using search query and regex couldn’t be done. From version 1.6.0, files got to be able to be searched using the search query and regex.
$ ggsrun sf -q "### search query ###" -f "### fields ###" -r "### regex ###"
- Some modifications.
You can check ggsrun at https://github.com/tanaikech/ggsrun.
ggsrun was updated to v.1.5.2
- v1.5.2 (November 4, 2018)
- About downloading folders, when files are downloaded from a folder, you can download Google Docs files with the mimeType you want. For example, when you download files from the folder, if
-e txt is used, Google Docs are downloaded as the text file. When -e pdf is used, they are downloaded as the PDF file. Of course, there are mimeType which cannot be converted.
$ ggsrun d -f [folderName] -e txt -j
- About uploading files, when files are uploaded from your local PC, the files got to be able to be converted to Google Docs. For this, new option of
--convertto, -c is added. For example, when a text file is uploaded, if you use -c doc, the text file is uploaded as Google Document.
$ ggsrun u -f [fileName] -c doc -j
You can check ggsrun at https://github.com/tanaikech/ggsrun.
ggsrun was updated to v.1.5.1
- v1.5.1 (November 2, 2018)
- Removed a bug.
- When a file information was retrieved, createdTime and modifiedTime couldn’t be seen and the information was incomplete.
You can check ggsrun at https://github.com/tanaikech/ggsrun.
ggsrun was updated to v.1.5.0
- v1.5.0 (October 27, 2018)
- From this version, ggsrun got to be able to download all files and folders in the specific folder in Google Drive. When all files are downloaded from a folder, the same folder structure of Google Drive is created to the local PC.
$ ggsrun d -f folderName or folderId
- When the project file is downloaded, it is downloaded as a zip file. All scripts in the project is put in the zip file.
- Also when you download a single project, you can use an option
--zip or -z. By this, the downloaded project is saved as a zip file.
- This new function can be also used for the shared folders. When you want to download the files from the shared folder, please use the folder ID of the shared folder.
- The file list with the folder tree in the specific folder got to be able to be retrieved.
- When the files are downloaded, the progression got to be able to be seen. When you want to see the progression, please use
-j when you download files and folders.
- Files with large size got to be able to be used. In order to download files with large size (several gigabytes), files are saved by chunks.
- Some modifications.
You can check ggsrun at https://github.com/tanaikech/ggsrun.
ggsrun was updated to v.1.4.1
- v1.4.1 (February 9, 2018)
- For uploading, the resumable-upload method was added.
- The resumable-upload method is automatically used by the size of file.
- “multipart/form-data” can upload files with the size less than 5 MB.
- “resumable-upload” can upload files with the size more than 5 MB.
- The chunk for resumable-upload is 100 MB as the default.
- Users can also give this chunk size using an option.
$ ggsrun u -f filename -chunk 10
- This means that a file with filename is uploaded by each chunk of 10 MB.
You can read “How to install” at here.
ggsrun was updated to v.1.4.0
-
v1.4.0 (January 25, 2018)
Google Apps Script API was finally released. From this version, ggsrun uses this API. So ggsrun got to be able to use not only projects of standalone script type, but also projects of container-bound script type. I hope this updated ggsrun will be useful for you.
- To users which are using ggsrun with v1.3.4 and/or less.
- For retrieving, downloading, creating and updating projects, Apps Script API is used.
- About retrieving information of projects, the information from Drive API is more than that from Apps Script API. So I used Drive API in this situation.
- Please read how to enable APIs.
- ggsrun got to be able to use both standalone scripts and container-bound scripts by Apps Script API.
- Create projects
- Update projects
- There are some issues for creating projects.
- After Manifests was added to GAS, the time zone can be set by it. But when a new project is created by API, I noticed that the time zone is different from own local time zone. When a new project is manually created by browser, the time zone is the same to own local time zone. I think that this may be a bug. So I added an option for setting time zone when a new project is created. And also I reported about this to Google Issue Tracker.
- If you want to create a bound script in Slide, an error occurs. When a bound script can be created to Spreadsheet, Document and Form using Apps Script API. Furthermore, when the bound script in Slide is updated, it works fine. So I think that this may be also a bug. I reported about this to Google Issue Tracker.
- About this, when you create a bound script in Slides, if ggsrun returns no errors, it means that this issue was solved.
- Both standalone scripts and container-bound scripts can be rearranged.
- The file of
appsscript for Manifests is always displayed to the top of files on the script editor, while the array of files can be changed. I think that this is the specification.
- For the option
exe1 for executing GAS, it can use for both standalone scripts and container-bound scripts.
- Delete files using file ID on Google Drive.
- Delete files in the project.
- ggsrun can create new container-bound script in the new Google Docs.
- For example, ggsrun creates a new Spreadsheet and uploads the script files to the Spreadsheet as a container-bound script.
- Retrieve and create versions of projects.
- Unified the order of directories for searching
client_secret.json and ggsrun.cfg.
- Some modifications.
You can read “How to install” at here.
ggsrun was updated to v.1.3.4
-
v1.3.4 (January 2, 2018)
- Added new option for downloading ‘bound-scripts’ of Google Sheets, Docs, or Forms file.
- When the bound-scripts are downloaded, the project name cannot be retrieved because Drive API cannot be used for the bound-scripts. So when the bound-scripts are downloaded, the project ID had been used previously. Such filename is not easily to be seen. By this additional option, users can give the filename when it downloads the bound-scripts.
- The usage is here
- Removed a bug.
- When a project is downloaded, script ID in the project is added to the top of each downloaded script as a comment. There was a problem at the character using for the comment out. This was modified.
You can check this and download ggsrun at https://github.com/tanaikech/ggsrun.
It was found that you can also create new project with your original Manifests using ggsrun. By using this, for example, when you created new project, the project can have libraries, Advanced Google Services and so on at the initial stage. I think that this can be used as a template for Project.
$ ggsrun u -pn [Project name] -f appsscript.json
https://github.com/tanaikech/ggsrun/blob/master/help/README.md#ModifyManifests

You can check this and download ggsrun at https://github.com/tanaikech/ggsrun.
ggsrun was updated to v.1.3.3
Awesome points of Manifests :
Awesome points of Manifests that I think are below.
ggsrun was updated to v.1.3.2

ggsrun was updated to v.1.3.1
- Recently, when scripts on local PC is uploaded to Google Drive as a new project, the time to create on Google became a bit long. (I think that this is due to Google Update.) Under this situation, when the script is uploaded, the timeout error occurs while the new project is created using the script. So the time until timeout of fetch was modified from 10 seconds to 30 seconds. By this, when the script is uploaded, no error occurs and the information of the created project is shown.
- You can create a new project on Google Drive using scripts on local PC. The sample command is
ggsrun u -f sample.gs1,sample2.gs,sample3.html -pn newprojectname
You can check this and download ggsrun at https://github.com/tanaikech/ggsrun.
ggsrun was updated to v.1.3.0
- From this version, container-bound scripts can be downloaded. The container-bound script is the script created at the script editor on Google Sheets, Docs, or Forms file.
- In order to download container-bound scripts, the project ID of container-bound scripts is required. The project ID can be retrieved as follows.
- Open the project. And please operate follows using click.
- -> File
- -> Project properties
- -> Get Script ID (This is the project ID.)
- When a project is downloaded, the filename of HTML file had become
.gs. This bug was modified.
The usage is here.
ggsrun was updated to v.1.2.2
- For Google Docs (spreadsheet, document, slide and drawing), since I noticed that the revision files would not be able to be retrieved using Drive API v3, I modified this using new workaround.
- The new workaround is to use Drive API v2.
drive.revisions.get of Drive API v2 can retrieve not only the revision list, but also the export links. I thought of the use of the export links. This became the new workaround.
- For the files except for Google Docs, the revision files can be retrieved using Drive API v3.
- The usage is here.
I don’t know when this workaround will not be able to be used. But if this could not be used, I would like to investigate of other method.
ggsrun was updated to v.1.2.1
- Configuration file (
ggsrun.cfg) became to be able to be read using the environment variable.
You can check this at here.
ggsrun was updated to v.1.2.0
- Added a command for retrieving revision files on Google Drive.
- Some modifications.
You can check this at here.
Updated ggsrun to v.1.1.0
Added a command for updating existing project on Google Drive. One of scripts in the project can be also updated.
https://github.com/tanaikech/ggsrun
Overview
This is a CLI tool to execute Google Apps Script (GAS) on a terminal.
Motivation
Will you want to develop GAS using CoffeeScript on your local PC? Generally, when we develop GAS, we have to login to Google using own browser and develop it using Javascript on the Script Editor. Recently, I have wanted to have more convenient local-environment for developing GAS. So I created this “ggsrun”.

The detail information and how to get this are https://github.com/tanaikech/ggsrun.