Merge pull request #265 from mesosphere/dcos-993
[ADD] DCOS-993 Install script functionality to optionally add dcos to path
This commit is contained in:
@@ -4,7 +4,53 @@ set -o errexit -o pipefail
|
||||
|
||||
usage()
|
||||
{ # Show usage information.
|
||||
echo "$(basename "$(test -L "$0" && readlink "$0" || echo "$0")") <installation-path> <dcos-url>"
|
||||
echo "$(basename "$(test -L "$0" && readlink "$0" || echo "$0")") <installation-path> <dcos-url> [--add-path yes/no]"
|
||||
}
|
||||
|
||||
post_install_message()
|
||||
{
|
||||
echo 'Finished installing and configuring DCOS CLI.'
|
||||
echo ''
|
||||
echo 'Run this command to set up your environment and to get started:'
|
||||
echo "source $1 && dcos help"
|
||||
}
|
||||
|
||||
RC_NAME=""
|
||||
|
||||
write_to_profile()
|
||||
{
|
||||
echo "" >> ~/"$2";
|
||||
echo "# path to the DCOS CLI binary" >> ~/"$2";
|
||||
echo "if [[ \"\$PATH\" != *\"$1\"* ]];" >> ~/"$2";
|
||||
echo " then export PATH=\$PATH:$1;" >> ~/"$2";
|
||||
echo "fi" >> ~/"$2";
|
||||
}
|
||||
|
||||
add_dcos_path_to_profile()
|
||||
{
|
||||
UNAME=`uname`
|
||||
case "$UNAME" in
|
||||
Linux ) RC_NAME=".bashrc";;
|
||||
Darwin ) RC_NAME=".bash_profile";;
|
||||
CYGWIN* ) RC_NAME=".bashrc";;
|
||||
MINGW* ) RC_NAME=".profile";;
|
||||
* ) RC_NAME=".bashrc";;
|
||||
esac
|
||||
write_to_profile "$1" "$RC_NAME"
|
||||
}
|
||||
|
||||
prompt_add_dcos_path_to_profile()
|
||||
{
|
||||
while true; do
|
||||
echo ""
|
||||
read -p "Modify your bash profile to add DCOS to your PATH? [yes/no] " ANSWER
|
||||
echo ""
|
||||
case "$ANSWER" in
|
||||
[Yy]* ) add_dcos_path_to_profile "$1"; break;;
|
||||
[Nn]* ) break;;
|
||||
* ) echo "Please answer yes or no.";;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
check_pip_version()
|
||||
@@ -70,7 +116,22 @@ dcos config set package.cache ~/.dcos/cache
|
||||
dcos config set package.sources '["https://github.com/mesosphere/universe/archive/version-1.x.zip"]'
|
||||
dcos package update
|
||||
|
||||
echo 'Finished installing and configuring DCOS CLI.'
|
||||
echo ''
|
||||
echo 'Run this command to set up your environment and to get started:'
|
||||
echo "source $ENV_SETUP && dcos help"
|
||||
ADD_PATH=""
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
--add-path ) ADD_PATH="$2"; break;;
|
||||
* ) shift;;
|
||||
esac
|
||||
done
|
||||
|
||||
case "$ADD_PATH" in
|
||||
[Yy]* ) add_dcos_path_to_profile "$VIRTUAL_ENV_PATH/bin";;
|
||||
[Nn]* ) ;;
|
||||
* ) prompt_add_dcos_path_to_profile "$VIRTUAL_ENV_PATH/bin";;
|
||||
esac
|
||||
|
||||
if [ -z "$RC_NAME" ]; then
|
||||
post_install_message "$ENV_SETUP"
|
||||
else
|
||||
post_install_message "~/$RC_NAME"
|
||||
fi
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
param([Parameter(Mandatory=$true,ValueFromPipeline=$true)]
|
||||
param([Parameter(Mandatory=$true,ValueFromPipeline=$true)]
|
||||
[string]
|
||||
$installation_path,
|
||||
[Parameter(Mandatory=$true,ValueFromPipeline=$true)]
|
||||
[string]
|
||||
$dcos_url
|
||||
$dcos_url,
|
||||
[string]
|
||||
$add_path
|
||||
)
|
||||
|
||||
if (-Not(Get-Command python -errorAction SilentlyContinue))
|
||||
@@ -106,7 +108,40 @@ dcos config set package.sources '[\"https://github.com/mesosphere/universe/archi
|
||||
|
||||
dcos package update
|
||||
|
||||
$ACTIVATE_PATH="$installation_path\Scripts\activate.ps1"
|
||||
|
||||
function AddToPath ($AddedLocation)
|
||||
{
|
||||
$Reg = "Registry::HKCU\Environment"
|
||||
$OldPath = (Get-ItemProperty -Path "$Reg" -Name PATH).Path
|
||||
$NewPath = $OldPath + ';' + $AddedLocation
|
||||
Set-ItemProperty -Path "$Reg" -Name PATH –Value $NewPath
|
||||
$script:ACTIVATE_PATH="activate.ps1"
|
||||
}
|
||||
|
||||
function PromptAddToPath ($AddedLocation)
|
||||
{
|
||||
$message = "Modify your Environment to add DCOS to your PATH?"
|
||||
$yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", `
|
||||
"Yes, add DCOS to PATH."
|
||||
$no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", `
|
||||
"No, do not add DCOS to PATH."
|
||||
$options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no)
|
||||
$result = $host.ui.PromptForChoice("", $message, $options, 0)
|
||||
if ($result -eq 0)
|
||||
{
|
||||
AddToPath "$AddedLocation"
|
||||
}
|
||||
}
|
||||
|
||||
switch -regex ($add_path)
|
||||
{
|
||||
"[Yy].*" {AddToPath "$installation_path\Scripts"; break}
|
||||
"[Nn].*" {break}
|
||||
default {PromptAddToPath "$installation_path\Scripts"}
|
||||
}
|
||||
|
||||
echo "Finished installing and configuring DCOS CLI."
|
||||
echo ""
|
||||
echo "Run this command to set up your environment and to get started:"
|
||||
echo "& $installation_path\Scripts\activate.ps1; dcos help"
|
||||
echo "& $ACTIVATE_PATH; dcos help"
|
||||
|
||||
Reference in New Issue
Block a user