@@ -22,6 +22,37 @@ function check-version-numbers() {
2222 exit 0
2323}
2424
25+ # Ensures passed in boost version values are supported.
26+ function check-boost-version-numbers() {
27+ CHECK_VERSION_MAJOR=$1
28+ CHECK_VERSION_MINOR=$2
29+
30+ if [[ ${BOOST_MIN_VERSION_MAJOR} && ${BOOST_MIN_VERSION_MAJOR} != " " ]]; then
31+ if [[ $CHECK_VERSION_MAJOR -lt $BOOST_MIN_VERSION_MAJOR ]]; then
32+ exit 1
33+ fi
34+ fi
35+ if [[ ${BOOST_MAX_VERSION_MAJOR} && ${BOOST_MAX_VERSION_MAJOR} != " " ]]; then
36+ if [[ $CHECK_VERSION_MAJOR -gt $BOOST_MAX_VERSION_MAJOR ]]; then
37+ exit 1
38+ fi
39+ fi
40+ if [[ $CHECK_VERSION_MAJOR -eq $BOOST_MIN_VERSION_MAJOR ]]; then
41+ if [[ ${BOOST_MIN_VERSION_MINOR} && ${BOOST_MIN_VERSION_MINOR} != " " ]]; then
42+ if [[ $CHECK_VERSION_MINOR -lt $BOOST_MIN_VERSION_MINOR ]]; then
43+ exit 1
44+ fi
45+ fi
46+ fi
47+ if [[ $CHECK_VERSION_MAJOR -eq $BOOST_MAX_VERSION_MAJOR ]]; then
48+ if [[ ${BOOST_MAX_VERSION_MINOR} && ${BOOST_MAX_VERSION_MINOR} != " " ]]; then
49+ if [[ $CHECK_VERSION_MINOR -gt $BOOST_MAX_VERSION_MINOR ]]; then
50+ exit 1
51+ fi
52+ fi
53+ fi
54+ exit 0
55+ }
2556
2657# Handles choosing which EOSIO directory to select when the default location is used.
2758function default-eosio-directories() {
@@ -46,7 +77,6 @@ function default-eosio-directories() {
4677 done
4778}
4879
49-
5080# Prompts or sets default behavior for choosing EOSIO directory.
5181function eosio-directory-prompt() {
5282 if [[ -z $EOSIO_DIR_PROMPT ]]; then
@@ -83,6 +113,29 @@ function eosio-directory-prompt() {
83113 export EOSIO_INSTALL_DIR=" ${EOSIO_DIR_PROMPT:- ${HOME} / eosio/ ${EOSIO_VERSION} } "
84114}
85115
116+ # Handles choosing which Boost directory to select.
117+ function default-boost-directories() {
118+ REGEX=' boost_[0-9]+([_][0-9]+)?+([_][0-9]+)?$'
119+ ALL_BOOST_SUBDIRS=()
120+ if [[ -d ${HOME} /eosio ]]; then
121+ ALL_BOOST_SUBDIRS=($( ls ${EOSIO_INSTALL_DIR} /src | sort -V) )
122+ fi
123+ for ITEM in " ${ALL_BOOST_SUBDIRS[@]} " ; do
124+ if [[ " $ITEM " =~ $REGEX ]]; then
125+ DIR_MAJOR=$( echo $ITEM | cut -f2 -d ' _' )
126+ DIR_MINOR=$( echo $ITEM | cut -f3 -d ' _' )
127+ if $( check-boost-version-numbers $DIR_MAJOR $DIR_MINOR ) ; then
128+ PROMPT_BOOST_DIRS+=($ITEM )
129+ fi
130+ fi
131+ done
132+ for ITEM in " ${PROMPT_BOOST_DIRS[@]} " ; do
133+ if [[ " $ITEM " =~ $REGEX ]]; then
134+ BOOST_VERSION=$ITEM
135+ fi
136+ done
137+ export BOOST_INSTALL_DIR=${EOSIO_INSTALL_DIR} /src/${BOOST_VERSION}
138+ }
86139
87140# Prompts or default behavior for choosing EOSIO.CDT directory.
88141function cdt-directory-prompt() {
0 commit comments