- When executing multiple scripts at once, they need to be separated by "," as of now
- Previously you could have run
npx launch foo:bar foo:baz
- Now you have to run
npx launch foo:bar,foo:baz
- Previously you could have run
- Options have to be set with leading "--" now: e.g.
npx launch foo:bar confirm=false
need to benpx launch foo:bar --confirm=false
or--confirm
now (true can be left out, but--confirm=true
does also work) - Preventing collision with internal NPM loglevel: Changed the option
--logLevel
to be of type string and hold values according to NPM docs
- Fixed broken delivery of script params
- Fixed internal scripts (version, help, migrate, ...)
- Fix for broken compatibility of npm versions under v15
- Updated dependencies and dev dependencies
- Bug fix for parameter compatibility for node version 16: issues-151 thanks to @julianess
First contribution from @julianess in #148
- Updated dependencies and dev dependencies
- Added the dry run option
- Updated dependencies and dev dependencies
First contribution from @snickbit in #148
- Added default script test
- Reinstalled husky
- Updated dependencies and dev dependencies
- Added support for default start script that can replace the default menu.
- Updated dependencies and dev dependencies
- Updated Installation steps in the
README.md
- Added Repository is clean check for
launch migrate
- Updated tests for supporting
win32
- Added support for using
require
in a javascriptcondition
- Updated test for supporting
npm
version 7.6.0+
- The environment variable
launch_time_elapsed
now represents the elapsed time scoped to a function and not the total elapsed time.
{
"scripts": {
"build:$step": [
"sleep 2",
"echo Build:$step $launch_time_elapsed"
],
"build": [
"build:Step1",
"build:Step2",
"",
"echo Total Elapsed: $launch_time_elapsed"
]
}
}
Build:Step1 2s 13ms
Build:Step2 4s 26ms
Total Elapsed: 4s 26ms
Build:Step1 2s 13ms
Build:Step2 2s 13ms
Total Elapsed: 4s 26ms
- Updated dev dependencies
- Refactored prettier setup
- Refactored
REAMDE.md
badges - Updated
script-launcher
templates, to be prettier compliant - Updated test scripts
- Updated Implementation examples
README.md
- Added more output examples to
README.md
- Updated dev dependencies
- Added output examples to
README.md
- Added test support for
README.md
output examples - Updated dev dependencies
- Added Environment String Manipulation and Expanding Variables support
- Updated dev dependencies
- Updated dependencies and dev dependencies
- Updated dependencies and dev dependencies
- Updated dependencies and dev dependencies
- Added prettier
- Updated tslint settings
- Added the
limit
argument and option to limit the number of commands to execute in parallel - Updated dev dependencies
- Minor documentation updates
- Added the default selection menu option
- Updated dependencies
- Added a default selection menu argument
npm start menu build:development
- Changed
npx launch list completion
tonpx launch list complete
- Changed the default for
npx launch list
this command will now output the same asnpx launch list complete
- Updated list argument so output will be sorted and only contains unique values.
- Updated dev dependencies
- Updated readme dependency documentation
- Added menu option for enabling and disabling the menu confirmation prompt.
- Changed
? Save selection › (y/N)
prompt, to? Are you sure › (Y/n)
prompt. Use the Menu save default script for saving your menu selection.
- Debug logging fix related to change 1.26.2
- Removed
string-argv
dependency - Optimize integration test for better maintainability
- Updated dev dependencies
Changed quoted argument processing related to removal of string-argv
{
"scripts": {
"assignment:$value1:$value2:$value3:$value4:$value5": [
"echo value1: '$value1'",
"echo value2: '$value2'",
"echo value3: '$value3'",
"echo value4: '$value4'",
"echo value5: '$value5'"
]
}
}
Run: npm start assignment:*:'*':"*":"'\"*\"'":"\"\'*\'\""
value1: *
value2: *
value3: *
value4: *
value5: "*"
Run: npm start assignment:*:'*':"*":"'\"*\"'":"\"\'*\'\""
value1: *
value2: *
value3: *
value4: "*"
value5: launch.ts launcher-config.json launcher-menu.json launcher-settings.json node_modules package-lock.json package.json
- Updated dev dependencies
Windows only: All arguments on constraints containing spaces are now surrounded by double quotes. Single quoted arguments containing spaces are convert to double quotes.
- Added list command options
- Added documentation for enabling tab completion support in your current terminal
- Updated dev dependencies
- Added list command
- Added extra command line unit tests
- Updated some error handling
- Updated def dependencies
- Added --confirm support for the migrate action
- Removed the '--script=' argument, script can now be started directly
npx launch --script=myScript
npx launch myScript
- Added support for starting multiple script from the command line, sequential or concurrent.
npx launch myScript1 myScript2 build:* -- myArg1 myArg2 myArg3
npx launch --concurrent myScript1 myScript2 build:* -- myArg1 myArg2 myArg3
- Added test when using wildcard and arguments
- Fix related to circular script detection
- Fix related to passing parameters when using wildcard
- Empty action will no longer result in a error
- Added support for using wildcard characters when referring to script
- Updated circular script detection
- Updated def dependencies
- Bug fix for command split with quotes and spaced
- Implemented workaround for issue #63 by removing glob escaping for Windows example:
./node_modules//*/*//*.md
- Implemented workaround for issue #63 by adding
?()
to the pattern on windows:./node_modules/typescript/\\*.md
- Updated unit tests for Windows
- Updated dev dependencies
- Added unit tests for testing created files
- Added unit tests for parameter migration
- Added parameter migration support
- Added params argument
- Updated the error message when launcher script not found.
- Updated readme file.
- Fix integration tests on Windows
- Added message when no menu available.
- When using the migrate option example description
...
is generated for the first menu level
- Updated dependencies
- Migrate now supports semicolon.
- Migrate now supports the
cd
command.
{
"scripts": {
"serve:dev:uva": "echo serve && cd node_modules && echo dev && echo uva",
"serve:acc:uva": "echo serve ; cd node_modules ; echo acc ; echo uva"
}
}
{
"scripts": {
"serve:dev:uva": [
"echo serve",
"node_modules",
"echo dev",
"echo uva"
],
"serve:acc:uva": [
"echo serve || true",
"node_modules",
"echo acc || true",
"echo uva"
]
}
}
- Updated starter templates
- test fix for daylight saving
- Dependencies updated
- Updated REAME.md
- Added a confirm argument for auto confirming the confirm condition
- Changed menu help syntax
{
"menu": {
"description": "action",
"build:help": "Build node package.",
"build": [
"build"
],
"test:help": "Test node package.",
"test": {
"run": "test",
"watch": "test --watchAll"
}
}
}
{
"menu": {
"description": "action",
"build:Build node package.": [
"build"
],
"test:Test node package.": {
"run": "test",
"watch": "test --watchAll"
}
}
}
- Replaced the confirm argument for a confirm condition
{
"scripts": {
"build-stuff": {
"confirm": "Are you sure you want to continue",
"sequential-then": "echo You are sure!",
"sequential-else": "echo You are not sure!"
}
}
}
- Removed the confirm argument
- Added an argument for a Basic
Basic yes/no prompt.
npx launch --confirm 'Are you sure'
- Added support for help texts in menus.
- Menu ui update bug fix
- Switched form inquirer to prompts
- Removed pageSize options
- Removed support for the seperator in a menu
- Added support for using environment value aliases. More examples at Environment and command line argument values and Launcher settings
{
"scripts": {
"build-stuff": [
"node=$npm_config_node",
"echo Node version: $node_version"
]
}
}
- Fix for migrate menu name conflict
- For compatibility reasons: when using a script name that is equal to the command being executed, all arguments are appended automatically.
- Fix for the "Circular script reference detected.' error
- Added the migrate argument to migrate your package.json to launcher-config.json
launch init
now updates the package.json filelaunch init
now supports templates- Added integration tests
- Added integration tests
- Added Escaping example
- Add support for build the package on windows
- Fix for
Circular script reference detected.
- Added integration tests
- Removed lib entries from tsconfig.json
"lib": [
"dom",
"es2017",
"esnext.asynciterable"
]
- Added a build in script menu, to force an interactive menu. This will ignoring the options value of defaultScript
- Replaced the --interactive argument for a build in script that can be overloaded.
- Removed the --menu launch argument.
- Save selection bug fix
- Dev dependencies updated
- Added menu integration test
- Added init integration test
- Added menuTimeout argument
- Added menu timeout option
{
"options": {
"menu": {
"timeout": 6
}
}
}
- Added integration tests
- Added directory argument to specify the configuration files load location
- Added script argument to specify a script to start form the command line
- Argument bug fix when using
npm run script
- Dev dependencies updated
- Added support for using default function parameter values
{
"scripts": {
"serve:$config=dev": [
"ng serve -c=$config"
]
}
}
npm start serve
npm start serve:acc
- Added extra parameter debug logging
Script expanded : {
"parameters": {
"config": "acc"
},
"sequential": [
"ng serve -c=acc"
]
}
- Windows only: Bug fix related to change 1.15.1
- Windows only: When using quoted lines on an echo commands, the quotes will be trimmed.
- Dev dependencies updated
- Added the pageSize menu option.
- Updated dependencies
- Bug fix for #65: When parsing a config like this example, an error is returned.
Windows only: All arguments containing spaces are now surrounded by double quotes. Single quoted arguments containing spaces are convert to double quotes.
Added removal of environment and argument escaping. Now the first escape is for script-launcher, the second escape is for the shell. example:
{
"scripts": {
"build-stuff": [
"echo Exmaple 1: '\\$2'",
"echo Exmaple 2: '\\$PATH'",
"echo Exmaple 3: '\\${2}'",
"echo Exmaple 4: '\\${PATH}'"
]
}
}
Exmaple 1: $2
Exmaple 2: $PATH
Exmaple 3: ${2}
Exmaple 4: ${PATH}
Exmaple 1: \$2
Exmaple 2: \$PATH
Exmaple 3: \${2}
Exmaple 4: \${PATH}
- Added support for using separators in the launcher menu.
{
"menu": {
"description": "organization",
"build": {
"description": "environment",
"development": "build:acc",
"acceptance": "build:prd"
},
"separator": "",
"serve": {
"description": "environment",
"development": "serve:acc",
"acceptance": "serve:prd"
}
}
}
- Added support for setting environment values to exclusion conditions as well.
- Added support for setting environment values in conditions
{
"scripts": {
"build-stuff": [
{
"condition": [
"myData=example",
"'$myData'==='example'"
],
"sequential-then": [
"echo sequential-then"
],
"sequential-else": [
"echo sequential-else"
]
}
]
},
"options": {
"logLevel": 2
}
}
- Removed the throw exception when using a nested settings array
- Updated the conditions parser
- Changed the repeater statements assessor variable name to $_
- Minor changes to the init examples
- Updated Script expanded log output
- The sequential and concurrent statements no longer work in conjunction with the condition and exclusion statements. Use the sequential-then, sequential-else, concurrent-then and concurrent-else when working with conditions and or exclusions. Open the Condition and exclusion constraints topic for examples.
- The sequential-then and concurrent-then statements will only be processed when there is a constraint specified that evaluates to a success value.
- When working with repeaters the repeated value in no longer accessible via the repeater variable name. The repeated values are now accessible by using the $_ prefix. Open the Repeaters topic for examples.
{
"scripts": {
"ping": [
{
"repeater": "$launch_setting_servers",
"sequential": [
"echo $_name",
"--",
"echo Action: $launch_setting_command $_host",
""
]
}
]
},
"settings": {
"command": "ping",
"servers": [
{
"name": "Google",
"host": "www.google.com"
},
{
"name": "DuckDuckGo",
"host": "duckduckgo.com"
},
{
"name": "Bing",
"host": "bing.com"
}
]
}
}
- Updated the Script expanded log output
- Added support for an else statements:
{
"scripts": {
"example": [
{
"condition": "exit 1",
"sequential-then": [
"echo Sequential then: condition action."
],
"sequential-else": [
"echo Sequential else: condition action."
]
},
{
"exclusion": "exit 1",
"sequential-then": [
"echo Sequential then: exclusion action."
],
"sequential-else": [
"echo Sequential else: exclusion action."
]
}
]
}
}
- Script scoping fix so current directory and environment variables are no longer shared between script blocks.
- Updated to deepmerge 3.3.0
- Updated to inquirer 6.4.1
- Moved setting value expansion to the preprocessing phase of script launcher.
- Added support for settings arrays in conjunction with the repeater statement
{
"scripts": {
"ping": [
{
"repeater": "$launch_setting_servers",
"sequential": [
"echo $launch_setting_servers_name",
"--",
"echo Action: $launch_setting_command $launch_setting_servers_host",
""
]
}
]
},
"settings": {
"command": "ping",
"servers": [
{
"name": "Google",
"host": "www.google.com"
},
{
"name": "DuckDuckGo",
"host": "duckduckgo.com"
},
{
"name": "Bing",
"host": "bing.com"
}
]
}
}
- Update dependencies to ~ matches the most recent patch version, to fix issue with inquirer@6.4.0
- Refactored environment value pre-processing.
- Environment value can no longer be used for function resolving. Environment values will only be resolved on the execution part of script launcher.
- Recently assigned environment values can now be used as a function parameters.
{
"scripts": {
"download:$env": [
"echo Download:$env"
],
"build": [
"environment=$1",
"echo Build:$environment",
"download:$environment"
]
}
}
- Refactoring related to the environment value processing.
- In some edge cases $launch_time_current or $launch_time_elapsed could have the wrong value.
- When using $launch_time_current or $launch_time_elapsed in the first script, they were empty.
- Added the possibility to set globing options
{
"options": {
"glob": {
"nonull": false
}
}
}
- Added log output for settings environment values.
- Changed log output so all strings are now formatted using single quotes.
- When setting environment values that were using previous set values, it was failing to do so. Now environment variable expansion is done before setting environment values to fix the problem. example of the problem:
{
"scripts": {
"environment": [
"value1='My Data'",
"value2=$value1",
"echo Success value1='$value1'",
"echo Was failing value2='$value2'"
]
}
}
- Added support for brace expansion on command line arguments. example:
{
"scripts": {
"build-stuff": [
"echo Argument 1: ${1}",
"echo Argument 2: ${2}",
"echo Argument 3: ${3}"
]
}
}
- Added support for offset expansion on command line arguments. example:
{
"scripts": {
"build-stuff": [
"echo Argument 1: ${2*}",
"echo Argument 2: $2*"
]
}
}
- Added support for expansion character escaping example:
{
"scripts": {
"build-stuff": [
"echo Exmaple 1: \\$2",
"echo Exmaple 2: \\$PATH",
"echo Exmaple 3: \\${2}",
"echo Exmaple 4: \\${PATH}"
]
}
}
- Added environment variable expansion for Grep pattern
- Bug fix for environment variable expansion on constraints
- Updated README.md
- Updated dependencies
- Updated README.md
- Updated dependencies
- Added support for a build in grep like functionality
- Updated README.md
- Renamed LAUNCH_PLATFORM => launch_platform
- Renamed LAUNCH_START => launch_time_start
- Renamed LAUNCH_CURRENT => launch_time_current
- Renamed LAUNCH_ELAPSED => launch_time_elapsed
- Renamed LAUNCH_BLUE => launch_style_blue
- Renamed LAUNCH_BOLD => launch_style_bold
- Renamed LAUNCH_CYAN => launch_style_cyan
- Renamed LAUNCH_DIM => launch_style_dim
- Renamed LAUNCH_GREEN => launch_style_green
- Renamed LAUNCH_NORMAL => launch_style_normal
- Renamed LAUNCH_RED => launch_style_red
- Renamed LAUNCH_YELLOW => launch_style_yellow
- Renamed LAUNCH_VERSION => launch_version
- Add support for using settings
- Updated
launch init
example - Updated README.md example
- Implemented the
pretty-time
packages for better time formatting
- Bug fix so script parameters in an inline script block are now working. example:
{
"scripts": {
"build:$config": [
[
"echo Config: $config"
],
{
"sequential": [
"echo Config: $config"
]
}
]
}
}
- Bug fix so Condition and Exclusion on the first script level are now working. example:
{
"scripts": {
"build-stuff": {
"exclusion": "node_modules",
"sequential": [
"echo npm install"
]
}
}
}