diff --git a/bin/clever.js b/bin/clever.js index 03a3eea..826773a 100755 --- a/bin/clever.js +++ b/bin/clever.js @@ -342,6 +342,7 @@ function run () { }), addonOptions: cliparse.option('option', { metavar: 'option', + parser: Parsers.addonOptions, description: 'Option to enable for the add-on. Multiple --option argument can be passed to enable multiple options', }), region: cliparse.option('region', { diff --git a/src/parsers.js b/src/parsers.js index 2ab97d5..e02d234 100644 --- a/src/parsers.js +++ b/src/parsers.js @@ -4,6 +4,17 @@ import * as Application from './models/application.js'; import ISO8601 from 'iso8601-duration'; import Duration from 'duration-js'; +const addonOptionsRegex = /^\w+=.+$/; + +export function addonOptions (options) { + for (const option of options) { + if (!option.match(addonOptionsRegex)) { + return cliparse.parsers.error('Invalid option: ' + option); + } + } + return cliparse.parsers.success(options.join(',')); +} + export function flavor (flavor) { const flavors = Application.listAvailableFlavors(); if (flavors.includes(flavor)) {