Commit Graph

125 Commits

Author SHA1 Message Date
William Melody 850f210a4f Assign command parameters as quoted array.
Satisfies Shellcheck SC2206
https://github.com/koalaman/shellcheck/wiki/SC2206
2020-03-14 19:03:50 -07:00
William Melody fe48de86f1 Update version to 3.1.1 2019-11-21 19:28:51 -08:00
William Melody e10d116510 Handle platform-specific `sed -i` requirements.
`sed -i` on macOS requires an extension, but on Linux that extension can
cause errors. Use a platform check to only include the extension on
macOS.

resolves gh-5
2019-11-21 19:17:45 -08:00
William Melody 060306f28b Use { ..; } instead of (..) to avoid subshell overhead.
ShellCheck SC2235: https://github.com/koalaman/shellcheck/wiki/SC2235
2019-11-04 17:01:16 -08:00
William Melody 1ed6504bc2 Update version to 3.1.0 2018-08-14 11:31:02 -07:00
William Melody 789a0797c2 Improve search behavior.
Search comments in addition to IPs and hostnames.

Call grep twice, excluding commented lines first before searching.
2018-08-14 11:31:02 -07:00
William Melody af412412f2 Bump version to 3.0.1 2018-05-15 10:11:32 -07:00
William Melody 5ee732006d Add comments about option parsing. 2018-05-15 08:37:24 -07:00
William Melody 647c4329c9 Update version to 3.0.0 2018-05-14 21:27:39 -07:00
William Melody 1738ba9ad3 Use double square brackets for option parsing `while` test. 2018-05-14 21:22:26 -07:00
William Melody 0c11a1939e Simplify `help` argument handling. 2018-05-14 21:19:36 -07:00
William Melody dfcb37b3b6 Remove unused option normalization.
This program only really accepts one short argument, `-h`, so this
extra complexity isn't necessary.
2018-05-14 20:45:35 -07:00
William Melody 79a5aa95fc Update boilerplate to latest from bash-boilerplate.
Source: https://github.com/alphabetum/bash-boilerplate
2018-05-14 20:22:35 -07:00
William Melody 7f3f6a95ab Simplify regular expression variable handling.
- Remove '_target' prefixes.
- Declare and assign separately.
2018-05-14 20:12:19 -07:00
William Melody 6da4b7475f Update coding style.
- Quote variables throughout.
- Use underscore prefixes to denote script-local variables and avoid
  identifier conflicts.
- Add spacing for better statement grouping.
2018-05-14 20:03:32 -07:00
William Melody 661fa3b114 Use updated `_join()` implementation.
Source: https://github.com/alphabetum/bash-boilerplate
2018-05-14 18:46:52 -07:00
William Melody dd25af8c99 Use updated `_load_commands()` implementation.
Source: https://github.com/alphabetum/bash-boilerplate
2018-05-14 18:42:21 -07:00
William Melody 2a5a18cf85 Bump version to 2.4.3
Fix misalignment between version numbers in package.json and
`$_VERSION`.
2018-05-09 10:36:18 -07:00
William Melody 746780fbbe Use explicit escaping for backslashes in all contexts.
ShellCheck SC1117
https://github.com/koalaman/shellcheck/wiki/SC1117
2018-04-15 15:01:34 -07:00
William Melody 80edd464b6 Use explicit escaping for "\\n" newlines.
Backslash is literal, so explicitly escape it rather than rely on
fallback behavior.

ShellCheck SC1117
https://github.com/koalaman/shellcheck/wiki/SC1117
2018-04-15 14:55:26 -07:00
William Melody d02f46a99e Bump version to 2.4.1. 2017-03-01 20:55:06 -08:00
William Melody d700037f18 Simplify header comment. 2017-03-01 20:54:08 -08:00
William Melody 32c5be4dcc Revert "Prefix `_debug` strings with '•' to avoid highlighting bugs."
This reverts commit 921afd7155.

The reverted commit did not succeed in fixing highlighting bugs.
2017-03-01 20:51:36 -08:00
William Melody 921afd7155 Prefix `_debug` strings with '•' to avoid highlighting bugs.
GitHub's syntax highlighting doesn't work well when strings contain
function names with parentheses, so add character to the beginning of
the string to see whether this makes it better.
2017-03-01 20:46:49 -08:00
William Melody f5d0f827e0 Bump version to 2.4.0. 2017-03-01 20:24:12 -08:00
William Melody d94af2c25b Update comments in "Globals" section. 2017-03-01 20:22:41 -08:00
William Melody db7ac727f1 Rename `$DEFAULT_COMMAND` to `$HOSTS_DEFAULT_COMMAND`. 2017-03-01 20:21:06 -08:00
William Melody 6c0254895f Support full `list` operations in `hosts` with no subcommand. 2017-03-01 20:18:26 -08:00
William Melody 05ba7bdc03 Quote argument to `unset`.
ShellCheck SC2184: Quote arguments to unset so they're not glob expanded.

https://github.com/koalaman/shellcheck/wiki/SC2184
2017-03-01 19:59:01 -08:00
William Melody 404ee19742 Add `_verify_write_permissions()` checks to `block` and `unblock`. 2017-03-01 19:32:49 -08:00
William Melody 3237818607 Expand documentation comment for `_verify_write_permissions()`. 2017-03-01 18:28:21 -08:00
William Melody b7b186267d Bump version to 2.3.1. 2017-03-01 16:29:36 -08:00
William Melody e0790f6a4c Bump version to 2.3.0. 2017-03-01 16:25:03 -08:00
William Melody 99b175f134 Add `--auto-sudo` option and expand option documentation.
Using `sudo` within a script is generally considered poor practice, so
by default an error message is printed when the user attempts to perform
a write operation without sufficient permissions.

One way to deal avoid this error message is to alias `hosts` to `sudo
hosts`, but this then requires `sudo` for all operations and not just
write operations.

The new `--auto-sudo` option flag provides a way to automatically invoke
a write command with `sudo` when the user doesn't have write
permissions.

In order to provide cleaner documentation for this option, include more
option documentation in README.md.
2017-03-01 16:18:05 -08:00
William Melody 0925735153 Bump version to 2.2.0. 2017-03-01 14:29:04 -08:00
William Melody 347189c059 Add `search` usage to primary `help` output.
Update README.md to more accurately reflect `help` output.
2017-03-01 13:45:19 -08:00
William Melody 265a1c732e Add `block` and `unblock` functions.
`block` and `unblock` set the given <hostname> to the IPv4 and IPv6
loopback addresses.
2017-03-01 13:43:10 -08:00
William Melody 73ffcffb38 Add `hosts search` function.
`hosts search` wraps `hosts list`, providing a slightly more intuitive
interface.
2017-03-01 12:46:27 -08:00
William Melody 703d665a32 Use `read` with `-r` option.
ShellCheck SC2162: read without -r mangle backslashes

https://github.com/koalaman/shellcheck/wiki/SC2162
2017-03-01 12:05:59 -08:00
William Melody 4194b25459 Use `HEREDOC` rather than `EOM` to define heredocs. 2017-03-01 11:42:26 -08:00
William Melody f7675f360e Bump version to 2.1.6. 2016-03-24 17:32:26 -07:00
William Melody 149a51662e Handle blank arguments string when assigning to `$_RAW_OPTIONS`.
When `$*` is specified with quotes and braces as `"${*}"`, a blank
argument array results in an error in older versions of bash. Remove
the braces to avoid this error.
2016-03-24 17:30:30 -07:00
William Melody 187222614a Use braces in all variable references.
Braces are only required in certain cases, but the cognitive overhead in
keeping track of which cases require braces can be reduced by simply
always using them.

Example: `${NAME}`

Retain more widely-used braces `$NAME` convention in documentation.
2016-02-23 18:14:21 -08:00
William Melody 9782f78f22 Bump version to 2.1.5. 2016-01-26 20:42:26 -08:00
William Melody f7c7aef173 Update help/usage formatting. 2016-01-26 20:25:16 -08:00
William Melody eeab6e8ba1 Alphabetize subcommands in Usage.
It's easier to find a subcommand in an alphabetical list.
2016-01-15 16:52:41 -08:00
William Melody 80a8e48c10 Use `if..then` in `show` to avoid non-zero exits.
The `[[ ... ]] && ...` conditional style results in non-zero exits when
the test is false. Moving this to a traditional `if..then` style avoids
this behavior while also being more explicit about the objective of the
code. `|| return 0` or `|| exit 0` could have been added as an
alternative way to avoid the non-zero exit behavior, but is not used in
this case because the traditional `if..then` style is more common.
2015-11-29 18:09:35 -08:00
William Melody 4d1adbdf52 Bump version to 2.1.4. 2015-11-25 18:03:19 -08:00
William Melody 21069fb68d Add quotes around strings in `list` command argument tests.
Quoting these strings more clearly communicates that these are not
variable or function names, and that the string itself is what is
being tested for.
2015-11-23 11:16:03 -08:00
William Melody 59e404f865 Add newlines around prompt section of `remove`.
The convention used in this project is to include newlines around
longer, grouped conditionals in order to provide better visual
separation.
2015-11-23 11:07:45 -08:00