mirror of
https://github.com/PowerShell/PowerShell
synced 2026-06-08 12:12:50 +00:00
Merge pull request #1425 from PowerShell/RaghuS-Demo
Install script for *nix platforms
This commit is contained in:
@@ -1,17 +0,0 @@
|
||||
#region Download the package from GitHub to Ubuntu (14/16)
|
||||
# TODO: Update the url
|
||||
# TODO: Update to apt-get, if that is available
|
||||
curl https://github.com/PowerShell/PowerShell/releases/download/v0.5.0/powershell_0.5.0-1_amd64.deb
|
||||
#endregion
|
||||
|
||||
#region Install PowerShell and its dependencies
|
||||
# TODO: Fix the version
|
||||
sudo apt-get install libunwind8 libicu52
|
||||
sudo dpkg -i powershell_0.5.0-1_amd64.deb
|
||||
#endregion
|
||||
|
||||
#region Launch PowerShell
|
||||
# TODO: Launch a new terminal
|
||||
clear
|
||||
PowerShell
|
||||
#endregion
|
||||
@@ -0,0 +1,102 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
clear
|
||||
echo "Script to download latest release of PowerShell on *nix platforms"
|
||||
|
||||
echo "Verify if GITHUB_TOKEN variable is defined"
|
||||
[[ -n $GITHUB_TOKEN ]] || { echo >&2 "GITHUB_TOKEN variable is undefined, Generate one using https://help.github.com/articles/creating-an-access-token-for-command-line-use/"; exit 1; }
|
||||
|
||||
# Authorizes with read-only access to GitHub API
|
||||
curl_() {
|
||||
curl -s -i -H "Authorization: token $GITHUB_TOKEN" "$@"
|
||||
}
|
||||
|
||||
# Retrieves asset ID and package name of asset ending in argument
|
||||
# $info looks like: "id": 1698239, "name": "powershell_0.4.0-1_amd64.deb",
|
||||
get_info() {
|
||||
curl_ https://api.github.com/repos/PowerShell/PowerShell/releases/latest | grep -B 1 "name.*$1"
|
||||
}
|
||||
|
||||
echo "Get OS specific asset ID and package name"
|
||||
case "$OSTYPE" in
|
||||
linux*)
|
||||
source /etc/os-release
|
||||
echo $ID
|
||||
# Install curl and wget to download package
|
||||
case "$ID" in
|
||||
centos*)
|
||||
sudo yum install -y curl wget
|
||||
info=$(get_info rpm)
|
||||
;;
|
||||
ubuntu)
|
||||
sudo apt-get install -y curl wget
|
||||
info=$(get_info deb)
|
||||
;;
|
||||
*)
|
||||
exit 2 >&2 "Package $NAME is not supported on $OSTYPE!"
|
||||
esac
|
||||
;;
|
||||
darwin*)
|
||||
info=$(get_info pkg)
|
||||
;;
|
||||
*)
|
||||
exit 2 >&2 "$OSTYPE is not supported!"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Parses $info for asset ID and package name
|
||||
read asset package <<< $(echo $info | sed 's/[,"]//g' | awk '{ print $2; print $4 }')
|
||||
|
||||
# Downloads asset to file
|
||||
curl_ -H 'Accept: application/octet-stream' https://api.github.com/repos/PowerShell/PowerShell/releases/assets/$asset |
|
||||
grep location | sed 's/location: //g' | wget -i - -O $package
|
||||
|
||||
# Installs PowerShell package
|
||||
case "$OSTYPE" in
|
||||
linux*)
|
||||
source /etc/os-release
|
||||
# Install dependencies
|
||||
case "$ID" in
|
||||
centos)
|
||||
sudo yum install -y libicu libunwind
|
||||
sudo yum install "./$package"
|
||||
;;
|
||||
ubuntu)
|
||||
sudo apt-get install -y libunwind8 libicu52
|
||||
sudo dpkg -i "./$package"
|
||||
;;
|
||||
*)
|
||||
esac
|
||||
;;
|
||||
darwin*)
|
||||
sudo installer -pkg ./$package -target /
|
||||
;;
|
||||
esac
|
||||
|
||||
get_smadll_location() {
|
||||
dpkg-query --listfiles PowerShell | grep "System.Management.Automation.dll"
|
||||
}
|
||||
|
||||
get_powershell_location() {
|
||||
dirname $(get_smadll_location)
|
||||
}
|
||||
|
||||
get_powershell_symlink() {
|
||||
dir /usr/bin/powershell
|
||||
}
|
||||
|
||||
install_location=$(get_powershell_location)
|
||||
powershell_symlink=$(get_powershell_symlink)
|
||||
|
||||
if [ $install_location ]
|
||||
then
|
||||
echo "Congratulations! PowerShell \"$package\" is installed @ \"$install_location\""
|
||||
fi
|
||||
|
||||
if [ $powershell_symlink ]
|
||||
then
|
||||
echo "Symlink is available @ \"$powershell_symlink\""
|
||||
else
|
||||
echo "PowerShell install failed! Check this script's output for information"
|
||||
exit -1
|
||||
fi
|
||||
Reference in New Issue
Block a user