Merge branch 'no-process-substitution'

This commit is contained in:
Mislav Marohnić 2013-10-30 02:50:31 +01:00
commit a898e2a534
2 changed files with 29 additions and 7 deletions

View file

@ -8,13 +8,8 @@ VERSION_FILE="$1"
if [ -e "$VERSION_FILE" ]; then if [ -e "$VERSION_FILE" ]; then
# Read the first non-whitespace word from the specified version file. # Read the first non-whitespace word from the specified version file.
# Be careful not to load it whole in case there's something crazy in it. # Be careful not to load it whole in case there's something crazy in it.
version="" words=( $(head -c 1024 "$VERSION_FILE") )
while read -a words; do version="${words[0]}"
word="${words[0]}"
if [ -z "$version" ] && [ -n "$word" ]; then
version="$word"
fi
done < <( cat "$VERSION_FILE" && echo )
if [ -n "$version" ]; then if [ -n "$version" ]; then
echo "$version" echo "$version"

View file

@ -17,12 +17,24 @@ setup() {
assert_failure "" assert_failure ""
} }
@test "fails for blank file" {
echo > my-version
run rbenv-version-file-read my-version
assert_failure ""
}
@test "reads simple version file" { @test "reads simple version file" {
cat > my-version <<<"1.9.3" cat > my-version <<<"1.9.3"
run rbenv-version-file-read my-version run rbenv-version-file-read my-version
assert_success "1.9.3" assert_success "1.9.3"
} }
@test "ignores leading spaces" {
cat > my-version <<<" 1.9.3"
run rbenv-version-file-read my-version
assert_success "1.9.3"
}
@test "reads only the first word from file" { @test "reads only the first word from file" {
cat > my-version <<<"1.9.3-p194@tag 1.8.7 hi" cat > my-version <<<"1.9.3-p194@tag 1.8.7 hi"
run rbenv-version-file-read my-version run rbenv-version-file-read my-version
@ -37,3 +49,18 @@ IN
run rbenv-version-file-read my-version run rbenv-version-file-read my-version
assert_success "1.8.7" assert_success "1.8.7"
} }
@test "ignores leading blank lines" {
cat > my-version <<IN
1.9.3
IN
run rbenv-version-file-read my-version
assert_success "1.9.3"
}
@test "handles the file with no trailing newline" {
echo -n "1.8.7" > my-version
run rbenv-version-file-read my-version
assert_success "1.8.7"
}