Commit Graph

62 Commits

Author SHA1 Message Date
William Melody ab9a08d954 Enhance `remove` to accept an IP and hostname pair.
This provides a mechanism for removing exact IP and hostname pairs.
The existing search string functionality should continue to function as
it did previously.
2015-09-12 15:41:28 -07:00
William Melody 1d1fa7ce9f Match IP at start of line in `disable`
The `disable` regular expressions avoid matching against commented lines
by excluding '#' characters at the beginning of the line. However, the
IP portion of the record is at the beginning of non-commented lines, so
in order to match these IPs the `target_regex_ip` needs to have the
search term checked against the beginning of the line. Therefore, the
`[^#]` at the beginning of `target_regex_ip` must be removed to make
`search_term` properly match these IPs.
2015-09-12 15:03:09 -07:00
William Melody b8811d42ba Bump version to 2.0.0 2015-09-12 14:16:43 -07:00
William Melody 84d77b8aec Export space and tab regular expression variables.
These variables are used within regular expressions, but as the program
evolves they are not always in constant use. Exporting these variables
silences ShellCheck warnings and makes them available to subshells.
2015-09-12 14:13:00 -07:00
William Melody a33b38b204 Make `sed` ops in `enable`/`disable` only match exact columns.
This is an application of the approach to `sed` calls that was included
in 94ca8bf

In order to make editing more precise, `sed` regular expressions only
match exact occurrences of the search string within each entry column.
2015-09-12 14:08:48 -07:00
William Melody 9cb7576bb5 Merge branch 'master' into exact-matches
* master:
  Exit with "Not found" message on failed search in `enable`/`disable`
  Bump version to 1.5.0
  Print confirmation feedback in `add` on success.
  Declare and assign separately to avoid masking return values.
  Add `brew tap` command to `brew install` in Readme.
2015-09-12 13:28:31 -07:00
William Melody 8465c2bdf8 Exit with "Not found" message on failed search in `enable`/`disable`
When the search string in `enable` or `disable` is not found, exit the
program and provide feedback rather than silently failing.
2015-09-12 13:19:17 -07:00
William Melody 62f200574d Bump version to 1.5.0 2015-09-11 19:51:02 -07:00
William Melody 590d75096f Print confirmation feedback in `add` on success. 2015-09-11 19:47:52 -07:00
William Melody 12d11c2dc3 Declare and assign separately to avoid masking return values.
ShellCheck SC2155
2015-09-11 19:43:56 -07:00
William Melody 94ca8bfb57 Make `sed` operations in `remove` only match exact column matches.
In order to make editing more precise, sed regular expressions only
match exact occurrences of the search string within each entry column.

In order to properly handle tab and space separators in a portable
manner, a set of global variables are included that provide strings
of those characters.
2015-06-28 22:09:46 -07:00
William Melody 46dcff947c Bump version to 1.4.3 2015-06-28 22:08:29 -07:00
William Melody 41a84bd0ed Uppercase `$_USE_DEBUG` reference in `_debug`
This variable was uppercased in a09d0fc but this occurrence was missed.
2015-06-28 17:32:42 -07:00
William Melody c80287f2bf Bump version to 1.4.2 2015-06-27 20:49:06 -07:00
William Melody fa920b0a97 Use `local` keyword more consistently. 2015-06-27 20:47:36 -07:00
William Melody a09d0fc893 Update boilerplate to reflect latest updates from source. 2015-06-27 20:43:19 -07:00
William Melody 8b0fc0fcfe Quote command names passed as arguments to `desc` 2015-06-27 20:33:11 -07:00
William Melody d2b92aec5a Prefer newlines instead of semicolons. 2015-06-27 20:31:26 -07:00
William Melody 66edbfd03c Update `_debug` and `_die` comments. 2015-06-27 20:21:58 -07:00
William Melody 3cfa2c8cf9 Use simpler `$IFS` setting. 2015-06-27 20:17:41 -07:00
William Melody 2693c62693 Bump version to 1.4.1 2015-06-25 17:19:23 -07:00
William Melody 02a87b0938 Add optional extension argument to `sed -i` calls
BSD sed requires the optional exention argument for the -i option, while
in GNU sed it's optional. Including a blank extension for portability.
2015-06-25 17:17:12 -07:00
William Melody d5b6456766 Bump version to 1.4.0 2015-05-20 16:49:46 -07:00
William Melody 08d899fee5 Fix inert indentation typo. 2015-04-28 16:54:25 -07:00
William Melody 9a395fd017 Bump version to 1.3.0 2015-04-18 21:23:45 -07:00
William Melody 26ad499fee Spelling correction: formmatted_comment -> formatted_comment 2015-04-18 21:21:46 -07:00
William Melody 2c83de9dff Declare and assign separately to avoid masking return values.
ShellCheck SC2155

https://github.com/koalaman/shellcheck/wiki/SC2155
2015-04-18 21:17:46 -07:00
William Melody cb9e20e554 Use capitalized form of $_ME variable.
The capitalized version of this variable makes it easier to override,
even though this is not technically part of the external API. There is
no known downside of using the capitalized version of the variable.
2015-04-18 21:06:26 -07:00
William Melody e62bede843 Bump version to 1.2.0 2015-03-20 18:11:42 -07:00
William Melody c2ca24b459 Verify that matching records have been found in `remove` before removing 2015-03-20 18:10:51 -07:00
William Melody 312f5909fa Add ability to add an option comment when adding a record
This addition requires a number of changes including:

- the addition of a new `_join` function
- reformatting of the `add` function to facilitate the longer lines
2015-03-20 18:06:00 -07:00
William Melody 023aa0503f Add `enabled` and `disabled` to command list in `--help` 2015-03-20 17:23:31 -07:00
William Melody f10be24da7 Bump version to 1.1.0 2015-03-20 16:49:24 -07:00
William Melody 7e32a799c2 Add `enabled` and `disabled` commands.
Both of these are just aliases for the `list ( enabled | disabled )`
commands, providing a shorter way to access the same functionality.
2015-03-20 16:49:08 -07:00
William Melody 52529dd029 Correct typo in `help` usage + add info about `--force` in Readme 2015-03-19 17:14:04 -07:00
William Melody 0830fa43b8 Simplify "strict mode" section in order to avoid too much noise
These comments can be found in the bash-boilerplate project and aren't
necessary here. Since the $DEFAULT_IFS doesn't appear to be used,
either, the $IFS setting can be reduced to a since simple assignment.
2015-03-19 14:30:51 -07:00
William Melody bcf308ffd3 Bump version to 1.0.0 2015-03-18 18:45:00 -07:00
William Melody db5cf5a97b Use more consistent spacing in usage statements. 2015-03-18 18:41:04 -07:00
William Melody b5a2b28884 Remove redundant command usage entry in `help` 2015-03-18 18:28:38 -07:00
William Melody 5844aa19a3 Use 'search string' consistently instead of mixing with 'search term' 2015-03-18 18:22:37 -07:00
William Melody 4d8c9a3385 Prompt user in `remove`
In order to avoid mistakes, prompt the user when removing records. Allow
skipping of the prompt using the --force option.
2015-03-18 18:20:24 -07:00
William Melody 00e94c8042 Verify write permissions before running write commands
When the user doesn't have write permissions, display a helpful error
message.
2015-03-18 18:02:09 -07:00
William Melody a330d17862 Add `$HOSTS_PATH` variable
This variable makes it possible to configure the hosts path to something
other than /etc/hosts.
2015-03-18 17:47:20 -07:00
William Melody bc36182773 Print disabled matches in `show` 2015-03-18 17:41:04 -07:00
William Melody 522d189f2e Update `help` with latest usage information. 2015-03-18 17:25:34 -07:00
William Melody 10704e2bd7 Use $DEFAULT_COMMAND pattern from bash-boilerplate
This is more verbose, but consistent with bash-boilerplate's approach.
2015-03-18 17:23:15 -07:00
William Melody 8889e26255 Run the `list` command by default when no command is provided 2015-03-18 17:13:25 -07:00
William Melody e9dec32c90 Display disabled records in `list` when present
When disabled records are present, include them in a new section in the
default output of `list`. If no disabled records are present, don't
include the section.
2015-03-18 17:10:21 -07:00
William Melody 7d8a94d4ca Add 'enabled' and 'disabled' options to `list`
These return records that have the status specified in the option.
2015-03-18 17:05:33 -07:00
William Melody 9de0edda07 Add `disable` and `enable` commands
These commands make it possible to disable records without fully
removing them. To 'disable' a record, it simply is commented out with
the following pattern `#disabled: ` prepended to the line.
2015-03-18 16:53:03 -07:00