1
0
mirror of https://github.com/octoleo/hosts.git synced 2024-11-10 23:31:04 +00:00
Commit Graph

121 Commits

Author SHA1 Message Date
William Melody
0b955f41fa Bump version to 2.1.2. 2015-10-19 16:30:32 -07:00
William Melody
e9b78ee15f Include debug statements in add() to print positional arguments. 2015-10-19 16:29:06 -07:00
William Melody
b539cd6136 Use unset rather than slicing for bash 3.2 compatibility.
Use `unset` to remove the first element of `$_COMMAND_PARAMETERS` rather
than slicing because under bash 3.2 the resulting slice is treated as a
quoted string and doesn't easily get coaxed back into an array.
2015-10-19 16:26:21 -07:00
William Melody
6733260385 Bump version to 2.1.1 2015-09-15 11:33:39 -07:00
William Melody
ab8934ae80 Default to 'N' in remove confirmation.
Rather than require a response, use 'N' as the default since this is a
destructive action.
2015-09-15 11:30:30 -07:00
William Melody
871e8fc131 Bump version to 2.1.0 2015-09-12 16:21:04 -07:00
William Melody
db4df46caa Rename search_term to search_string in enable and disable.
`search_string` is slightly more descriptive, and it's the name that's
used in `remove`.
2015-09-12 16:18:53 -07:00
William Melody
1242d0b4bc Replace 'domain' with 'hostname' in regular expression variable names.
'hostname' is more accurate and consistent for this context.
2015-09-12 16:14:36 -07:00
William Melody
95fd43668a Assign remove regular expressions to variables.
Since the regular expressions are essentially repeated, with the only
difference being the capturing groups that have no impact on the delete
operations, assign them to a set of descriptive variables. This makes
things more organized and additionally provides some explanation for
what each regular expression is matching against.
2015-09-12 16:12:56 -07:00
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
William Melody
124520efc4 Add show command and use that for list searches
Displaying a record pair for a hostname or IP address is likely a common
operation, and using the `show` name makes it clear what the primary
function of the command is. Since record pairs are very simple, the
easiest way to allow both hostname and ip address arguments is to use
grep, which also provides general search-like functionality. In order to
avoid doubling this functionality, use the `show` command in the `list`
command for search.
2015-03-18 16:07:49 -07:00
William Melody
cdf7793d7e Make list search terms match anywhere on the line
Making list more flexible enables searching for hostnames as well as
partial ip addresses.
2015-03-18 16:01:32 -07:00
William Melody
a8461f48fd Use alpha ordering for function definitions 2015-03-18 15:45:23 -07:00
William Melody
235be1f151 Expand per-command usage info.
Including descriptions of each command, since the functionality might
not always be immediately obvious.
2015-03-16 19:53:50 -07:00
William Melody
bafa955308 Add file command
This command simply runs `cat` on /etc/hosts
2015-03-16 19:48:16 -07:00
William Melody
2853d6fd33 Add per-command usage info to program help 2015-03-16 19:38:10 -07:00
William Melody
e867492064 In remove, delete the link in place rather than blanking first
When using the pattern of blanking the lines first and then deleting
the blank lines, the program ends up deleting potentially intentional
blank lines. In order to avoid this, use a simple delete rather than the
blanking + blank line deleting pattern.
2015-03-16 17:51:28 -07:00
William Melody
7607dfd262 Add edit command
`edit` open the hosts file in the editor specified in the $EDITOR
environment variable.
2015-03-16 17:39:50 -07:00
William Melody
fc60f3a0d7 Clarify usage information 2015-03-16 17:26:58 -07:00
William Melody
f714965f0f Add acknowledgements sections for script and Readme 2015-03-16 17:19:17 -07:00
William Melody
42465bd461 Rewrite as command-based program using bash boilerplate
This program contains the same functionality as previous iterations,
with several changes:

- move to command-based structure using the bash boilerplate template,
- inlcude basic error handling,
- revise variable naming and options for clarity,
- prefer `printf` over `echo`,
- misc other revisions.
2015-03-16 16:58:35 -07:00
William Melody
b88046cd4b Rename script from host-manager to hosts 2015-03-12 20:35:24 -07:00