Skip to content

Instantly share code, notes, and snippets.

@andrewroberts
Created August 10, 2016 22:10
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save andrewroberts/147d499725b28078b857c3d652c20df0 to your computer and use it in GitHub Desktop.
Save andrewroberts/147d499725b28078b857c3d652c20df0 to your computer and use it in GitHub Desktop.
Log and clear the contents of Apps Script properties, triggers, etc
/**
* Clear all of the config
*/
function clearConfig() {
Logger.log('Delete Local Script Properties:')
if (PropertiesService.getScriptProperties() !== null) {
Logger.log(PropertiesService.getScriptProperties().deleteAllProperties())
Logger.log(' Deleted')
} else {
Logger.log(' None')
}
Logger.log('Delete Local NPT Doc Properties:')
if (PropertiesService.getDocumentProperties() !== null) {
Logger.log(PropertiesService.getDocumentProperties().deleteAllProperties())
Logger.log(' Deleted')
} else {
Logger.log(' None')
}
Logger.log('Delete Local NPT User Properties:')
if (PropertiesService.getUserProperties() !== null) {
Logger.log(PropertiesService.getUserProperties().deleteAllProperties())
Logger.log(' Deleted')
} else {
Logger.log(' None')
}
var triggers = ScriptApp.getProjectTriggers()
Logger.log('Current project has ' + triggers.length + ' project triggers.')
deleteTriggers(triggers)
var document = DocumentApp.getActiveDocument()
if (document) {
triggers = ScriptApp.getUserTriggers(document)
Logger.log('Current project has ' + triggers.length + ' user document triggers.')
deleteTriggers(triggers)
} else {
Logger.log(' There is no documents associated with this script, so no triggers')
}
var form = FormApp.getActiveForm();
if (form) {
triggers = ScriptApp.getUserTriggers(form)
Logger.log('Current project has ' + triggers.length + ' user form triggers.')
deleteTriggers(triggers)
} else {
Logger.log(' There is no forms associated with this script, so no triggers')
}
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
if (spreadsheet) {
triggers = ScriptApp.getUserTriggers(spreadsheet)
Logger.log('Current project has ' + triggers.length + ' user spreadsheet triggers.')
deleteTriggers(triggers)
} else {
Logger.log(' There is no spreadsheets associated with this script, so no triggers')
}
// Private Functions
// -----------------
function deleteTriggers(triggers) {
triggers.forEach(function(trigger) {
Logger.log(' Deleting trigger: ' + trigger.getUniqueId())
ScriptApp.deleteTrigger(trigger)
})
}
} // clearConfig()
/**
* Dump all of the local config
*/
function dumpConfig() {
var values
Logger.log('Local Script Properties:')
var properties = PropertiesService.getScriptProperties()
if (properties !== null) {
values = properties.getProperties()
for (var key in values) {
Logger.log(' ' + key + ' : ' + values[key])
}
} else {
Logger.log(' None')
}
Logger.log('Local Doc Properties:')
var properties = PropertiesService.getDocumentProperties()
if (properties !== null) {
values = properties.getProperties()
for (var key in values) {
Logger.log(' ' + key + ' : ' + values[key])
}
} else {
Logger.log(' None')
}
Logger.log('Local User Properties:')
var properties = PropertiesService.getUserProperties()
if (PropertiesService.getUserProperties() !== null) {
values = properties.getProperties()
for (var key in values) {
Logger.log(' ' + key + ' : ' + values[key])
}
} else {
Logger.log(' None')
}
var triggers = ScriptApp.getProjectTriggers()
Logger.log('Current project has ' + triggers.length + ' project triggers.')
dumpTriggers(triggers)
var document = DocumentApp.getActiveDocument()
if (document) {
triggers = ScriptApp.getUserTriggers(document)
Logger.log('Current project has ' + triggers.length + ' user document triggers.')
dumpTriggers(triggers)
} else {
Logger.log(' There is no documents associated with this script, so no triggers')
}
var form = FormApp.getActiveForm();
if (form) {
triggers = ScriptApp.getUserTriggers(form)
Logger.log('Current project has ' + triggers.length + ' user form triggers.')
dumpTriggers(triggers)
} else {
Logger.log(' There is no forms associated with this script, so no triggers')
}
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
if (spreadsheet) {
triggers = ScriptApp.getUserTriggers(spreadsheet)
Logger.log('Current project has ' + triggers.length + ' user spreadsheet triggers.')
dumpTriggers(triggers)
} else {
Logger.log(' There is no spreadsheets associated with this script, so no triggers')
}
return
// Private Functions
function dumpTriggers(triggers) {
triggers.forEach(function(trigger) {
Logger.log(' ID: ' + trigger.getUniqueId())
Logger.log(' Source ID: ' + trigger.getTriggerSourceId())
Logger.log(' Source: ' + trigger.getTriggerSource())
Logger.log(' Handler Function: ' + trigger.getHandlerFunction())
Logger.log(' Event Type: ' + trigger.getEventType())
})
} // dumpConfig.dumpTriggers()
} // dumpConfig()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment