Check prerequisites in install.sh
This commit is contained in:
17
install.sh
17
install.sh
@@ -228,9 +228,26 @@ function installModules() {
|
||||
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() {
|
||||
ensureDocopts
|
||||
autoloadZShLib
|
||||
checkPrerequisites || return
|
||||
eval "`docopts -f -V - -h - : "$@" <<- USAGE
|
||||
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