Skip to content

Commit

Permalink
Prompt user, then run mozroots if they consent
Browse files Browse the repository at this point in the history
Instead of making the user run mozroots themselves, we should probably
run it for them if (and ONLY if) they consent.

Also make sure they really need it, by checking both the user and system
certificate stores before prompting them.
  • Loading branch information
rmunn committed Jan 25, 2016
1 parent 1c5ec3a commit 489479a
Showing 1 changed file with 26 additions and 3 deletions.
29 changes: 26 additions & 3 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,24 @@ function run() {
fi
}

function yesno() {
# NOTE: Defaults to NO
read -p "$1 [y/N] " ynresult
case "$ynresult" in
[yY]*) true ;;
*) false ;;
esac
}

set +e
run $PAKET_BOOTSTRAPPER_EXE
bootstrapper_exitcode=$?
set -e

if [[ "$OS" != "Windows_NT" ]] &&
[ $(certmgr -list -c Trust | grep X.509 | wc -l) -le 1 ]
[ $bootstrapper_exitcode -ne 0 ] &&
[ $(certmgr -list -c Trust | grep X.509 | wc -l) -le 1 ] &&
[ $(certmgr -list -c -m Trust | grep X.509 | wc -l) -le 1 ]
then
echo "Your Mono installation has no trusted SSL root certificates set up."
echo "This may result in the Paket bootstrapper failing to download Paket"
Expand All @@ -39,8 +53,17 @@ then
echo " mozroots --import --sync"
echo ""
echo "This will import over 100 SSL root certificates into your Mono"
echo "certificate repository. Then try running this script again."
exit 1
echo "certificate repository."
echo ""
if yesno "Run 'mozroots --import --sync' now?"
then
mozroots --import --sync
else
echo "Attempting to continue without running mozroots. This might fail."
fi
# Re-run bootstrapper whether or not the user ran mozroots, because maybe
# they fixed the problem in a separate terminal window.
run $PAKET_BOOTSTRAPPER_EXE
fi

run $PAKET_EXE restore
Expand Down

0 comments on commit 489479a

Please sign in to comment.