bbyars/mountebank

View on GitHub

Showing 386 of 386 total issues

Parsing error: Invalid ecmaVersion.
Open

'use strict';
Severity: Minor
Found in tasks/run.js by eslint

For more information visit Source: http://eslint.org/docs/rules/

Code block style
Open

    npm install -g mountebank
Severity: Info
Found in README.md by markdownlint

Parsing error: Invalid ecmaVersion.
Open

'use strict';
Severity: Minor
Found in src/cli/cli.js by eslint

For more information visit Source: http://eslint.org/docs/rules/

Parsing error: Invalid ecmaVersion.
Open

'use strict';
Severity: Minor
Found in src/models/dryRunValidator.js by eslint

For more information visit Source: http://eslint.org/docs/rules/

Parsing error: Invalid ecmaVersion.
Open

'use strict';
Severity: Minor
Found in src/models/predicates.js by eslint

For more information visit Source: http://eslint.org/docs/rules/

Parsing error: Invalid ecmaVersion.
Open

'use strict';
Severity: Minor
Found in src/util/errors.js by eslint

For more information visit Source: http://eslint.org/docs/rules/

Quote this to prevent word splitting.
Open

if [ `uname` = "Darwin" ]; then
Severity: Minor
Found in scripts/sonar by shellcheck

Quote this to prevent word splitting

Problematic code:

ls -l $(getfilename)

Correct code:

# getfilename outputs 1 file
ls -l "$(getfilename)"

# getfilename outputs multiple files, linefeed separated
getfilename | while IFS='' read -r line
do
  ls -l "$line"
done

Rationale:

When command expansions are unquoted, word splitting and globbing will occur. This often manifests itself by breaking when filenames contain spaces.

Trying to fix it by adding quotes or escapes to the data will not work. Instead, quote the command substitution itself.

If the command substitution outputs multiple pieces of data, use a loop instead.

Exceptions

In rare cases you actually want word splitting, such as in

gcc $(pkg-config --libs openssl) client.c

This is because pkg-config outputs -lssl -lcrypto, which you want to break up by spaces into -lssl and -lcrypto. An alternative is to put the variables to an array and expand it:

args=( $(pkg-config --libs openssl) )
gcc "${args[@]}" client.c

The power of using an array becomes evident when you want to combine, for example, the command result with user-provided arguments:

compile () {
    args=( $(pkg-config --libs openssl) "${@}" )
    gcc "${args[@]}" client.c
}
compile -DDEBUG
+ gcc -lssl -lcrypto -DDEBUG client.c

Notice

Original content from the ShellCheck https://github.com/koalaman/shellcheck/wiki.

Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
Open

cd dist/mountebank
Severity: Minor
Found in scripts/publishNpm by shellcheck

Use cd ... || exit in case cd fails.

Problematic code:

cd generated_files
rm -r *.c

func(){
  cd foo
  do_something
}

Correct code:

cd generated_files || exit
rm -r *.c

# For functions, you may want to use return:
func(){
  cd foo || return
  do_something
}

Rationale:

cd can fail for a variety of reasons: misspelled paths, missing directories, missing permissions, broken symlinks and more.

If/when it does, the script will keep going and do all its operations in the wrong directory. This can be messy, especially if the operations involve creating or deleting a lot of files.

To avoid this, make sure you handle the cases when cd fails. Ways to do this include

  • cd foo || exit as suggested to just abort immediately
  • if cd foo; then echo "Ok"; else echo "Fail"; fi for custom handling
  • <(cd foo && cmd) as an alternative to <(cd foo || exit; cmd) in <(..), $(..) or ( )

Exceptions:

ShellCheck does not give this warning when cd is on the left of a || or &&, or the condition of a if, while or until loop. Having a set -e command anywhere in the script will disable this message, even though it won't necessarily prevent the issue.

If you are accounting for cd failures in a way shellcheck doesn't realize, you can disable this message with a [[directive]].

Notice

Original content from the ShellCheck https://github.com/koalaman/shellcheck/wiki.

Parsing error: Invalid ecmaVersion.
Open

'use strict';
Severity: Minor
Found in src/models/tcp/tcpServer.js by eslint

For more information visit Source: http://eslint.org/docs/rules/

Expected (<filter-function-list> | none) but found 'Alpha(Opacity=30)'.</filter-function-list>
Open

    filter: Alpha(Opacity=30);

Parsing error: Invalid ecmaVersion.
Open

'use strict';
Severity: Minor
Found in src/controllers/configController.js by eslint

For more information visit Source: http://eslint.org/docs/rules/

Parsing error: Invalid ecmaVersion.
Open

'use strict';
Severity: Minor
Found in src/models/http/baseHttpServer.js by eslint

For more information visit Source: http://eslint.org/docs/rules/

Parsing error: Invalid ecmaVersion.
Open

'use strict';
Severity: Minor
Found in src/models/mbConnection.js by eslint

For more information visit Source: http://eslint.org/docs/rules/

Parsing error: Invalid ecmaVersion.
Open

'use strict';
Severity: Minor
Found in src/util/ip.js by eslint

For more information visit Source: http://eslint.org/docs/rules/

Parsing error: Invalid ecmaVersion.
Open

'use strict';
Severity: Minor
Found in tasks/lints/objectCheck.js by eslint

For more information visit Source: http://eslint.org/docs/rules/

Code block style
Open

    npm test
Severity: Info
Found in README.md by markdownlint

Useless cat. Consider 'cmd < file | ..' or 'cmd file | ..' instead.
Open

cat Dockerfile.old | sed -E -e 's/ENTRYPOINT \["mb"\]/CMD mb start --port $PORT/' > Dockerfile
Severity: Minor
Found in scripts/publishHeroku by shellcheck

Useless cat. Consider 'cmd < file | ..' or 'cmd file | ..' instead.

Problematic code:

cat file | tr ' ' _ | nl
cat file | while IFS= read -r i; do echo "${i%?}"; done

Correct code:

< file tr ' ' _ | nl  
while IFS= read -r i; do echo "${i%?}"; done < file

Rationale:

cat is a tool for con"cat"enating files. Reading a single file as input to a program is considered a Useless Use Of Cat (UUOC).

It's more efficient and less roundabout to simply use redirection. This is especially true for programs that can benefit from seekable input, like tail or tar.

Many tools also accept optional filenames, e.g. grep -q foo file instead of cat file | grep -q foo.

Exceptions

Pointing out UUOC is a long standing shell programming tradition, and removing them from a short-lived pipeline in a loop can speed it up by 2x. However, it's not necessarily a good use of time in practice, and rarely affects correctness. [[Ignore]] as you see fit.

Notice

Original content from the ShellCheck https://github.com/koalaman/shellcheck/wiki.

Parsing error: Invalid ecmaVersion.
Open

'use strict';
Severity: Minor
Found in src/cli/api.js by eslint

For more information visit Source: http://eslint.org/docs/rules/

Parsing error: Invalid ecmaVersion.
Open

'use strict';
Severity: Minor
Found in src/controllers/logsController.js by eslint

For more information visit Source: http://eslint.org/docs/rules/

Parsing error: Invalid ecmaVersion.
Open

'use strict';
Severity: Minor
Found in src/util/helpers.js by eslint

For more information visit Source: http://eslint.org/docs/rules/

Severity
Category
Status
Source
Language