Skip to content

Commit

Permalink
fix: remove comments from whole file instead of line by line for perf…
Browse files Browse the repository at this point in the history
…ormance (#1198)
  • Loading branch information
blopker authored Apr 8, 2022
1 parent 7493f40 commit de6e22f
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 11 deletions.
2 changes: 1 addition & 1 deletion .tool-versions
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
bats v1.3.0
bats 1.3.0
shellcheck 0.7.2
shfmt 3.3.0
18 changes: 8 additions & 10 deletions lib/utils.bash
Original file line number Diff line number Diff line change
Expand Up @@ -637,16 +637,14 @@ shim_plugins() {

strip_tool_version_comments() {
local tool_version_path="$1"

while IFS= read -r tool_line || [ -n "$tool_line" ]; do
# Remove whitespace before pound sign, the pound sign, and everything after it
new_line="$(cut -f1 -d"#" <<<"$tool_line" | sed -e 's/[[:space:]]*$//')"

# Only print the line if it is not empty
if [[ -n "$new_line" ]]; then
printf "%s\\n" "$new_line"
fi
done <"$tool_version_path"
# Use sed to strip comments from the tool version file
# Breakdown of sed command:
# This command represents 3 steps, seperated by a semi-colon (;), that run on each line.
# 1. Delete line if it starts with any blankspace and a #.
# 2. Find a # and delete it and everything after the #.
# 3. Remove any whitespace from the end of the line.
# Finally, the command will print the lines that are not empty.
sed '/^[[:blank:]]*#/d;s/#.*//;s/[[:blank:]]*$//' "$tool_version_path"
}

asdf_run_hook() {
Expand Down

0 comments on commit de6e22f

Please sign in to comment.