Check prerequisites in install.sh
This commit is contained in:
17
install.sh
17
install.sh
@@ -228,9 +228,26 @@ function installModules() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isMacOS() {
|
||||||
|
autoload is-at-least
|
||||||
|
[ "`uname -s`" = Darwin ] || return
|
||||||
|
is-at-least "10.13" "`sw_vers -productVersion 2> /dev/null`"
|
||||||
|
}
|
||||||
|
|
||||||
|
function isPlistBuddyInstalled() {
|
||||||
|
test -x /usr/libexec/PlistBuddy && return
|
||||||
|
which PlistBuddy >&! /dev/null && return
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkPrerequisites() {
|
||||||
|
isMacOS || { lop error 'This setup is only for macOS 10.13 and up.'; return 10 }
|
||||||
|
isPlistBuddyInstalled || { lop error 'This setup requires PlistBuddy to be either at /usr/libexec or in any of the PATH directories.'; return 11 }
|
||||||
|
}
|
||||||
|
|
||||||
function main() {
|
function main() {
|
||||||
ensureDocopts
|
ensureDocopts
|
||||||
autoloadZShLib
|
autoloadZShLib
|
||||||
|
checkPrerequisites || return
|
||||||
eval "`docopts -f -V - -h - : "$@" <<- USAGE
|
eval "`docopts -f -V - -h - : "$@" <<- USAGE
|
||||||
Usage: $0 [options] [-m PATH]... [<module>...]
|
Usage: $0 [options] [-m PATH]... [<module>...]
|
||||||
|
|
||||||
|
|||||||
40
spec/isMacOS_spec.sh
Normal file
40
spec/isMacOS_spec.sh
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
Describe 'isMacOS'
|
||||||
|
Include ./install.sh
|
||||||
|
uname() { [ "${1}" = -s ] && echo Darwin }
|
||||||
|
|
||||||
|
It 'returns failure if sw_vers is not installed'
|
||||||
|
sw_vers() { echo "zsh: command not found: sw_vers" >&2; return 127 }
|
||||||
|
When call isMacOS
|
||||||
|
The output should eq ''
|
||||||
|
The status should be failure
|
||||||
|
End
|
||||||
|
|
||||||
|
It 'returns failure if os version is below 10.13'
|
||||||
|
sw_vers() { echo "1.1" }
|
||||||
|
When call isMacOS
|
||||||
|
The output should eq ''
|
||||||
|
The status should be failure
|
||||||
|
End
|
||||||
|
|
||||||
|
It 'returns success if os version is 10.13'
|
||||||
|
sw_vers() { echo "10.13" }
|
||||||
|
When call isMacOS
|
||||||
|
The output should eq ''
|
||||||
|
The status should be success
|
||||||
|
End
|
||||||
|
|
||||||
|
It 'returns success if os version is above 10.13'
|
||||||
|
sw_vers() { echo "17.04" }
|
||||||
|
When call isMacOS
|
||||||
|
The output should eq ''
|
||||||
|
The status should be success
|
||||||
|
End
|
||||||
|
|
||||||
|
It 'returns failure if kernel name is not Darwin'
|
||||||
|
sw_vers() { echo "10.13" }
|
||||||
|
uname() { [ "${1}" = -s ] && echo Linux }
|
||||||
|
When call isMacOS
|
||||||
|
The output should eq ''
|
||||||
|
The status should be failure
|
||||||
|
End
|
||||||
|
End
|
||||||
26
spec/isPlistBuddyInstalled_spec.sh
Normal file
26
spec/isPlistBuddyInstalled_spec.sh
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
Describe 'isPlistBuddyInstalled'
|
||||||
|
Include ./install.sh
|
||||||
|
|
||||||
|
It 'returns success if PlistBuddy path exists'
|
||||||
|
test() { [ "$1" = "-x" ] && return }
|
||||||
|
When call isPlistBuddyInstalled
|
||||||
|
The output should eq ''
|
||||||
|
The status should be success
|
||||||
|
End
|
||||||
|
|
||||||
|
It 'returns success if PlistBuddy is in PATH'
|
||||||
|
test() { [ "$1" = "-x" ] && return 1 }
|
||||||
|
which() { [ "$1" = "PlistBuddy" ] && return }
|
||||||
|
When call isPlistBuddyInstalled
|
||||||
|
The output should eq ''
|
||||||
|
The status should be success
|
||||||
|
End
|
||||||
|
|
||||||
|
It 'returns failure if PlistBuddy neither is in Path nor at usual path'
|
||||||
|
test() { [ "$1" = "-x" ] && return 1 }
|
||||||
|
which() { [ "$1" = "PlistBuddy" ] && return 1 }
|
||||||
|
When call isPlistBuddyInstalled
|
||||||
|
The output should eq ''
|
||||||
|
The status should be failure
|
||||||
|
End
|
||||||
|
End
|
||||||
Reference in New Issue
Block a user