better sudo handling
This commit is contained in:
parent
05806001b3
commit
c5d3338551
2 changed files with 24 additions and 18 deletions
|
@ -7,6 +7,6 @@ It might ask your password (you must be sudoer).
|
||||||
```
|
```
|
||||||
curl -O https://raw.githubusercontent.com/yogsototh/install-haskell/master/install-haskell.sh
|
curl -O https://raw.githubusercontent.com/yogsototh/install-haskell/master/install-haskell.sh
|
||||||
chmod ugo+x install-haskell.sh
|
chmod ugo+x install-haskell.sh
|
||||||
./install-haskell.sh
|
sudo ./install-haskell.sh $USER
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
#!/usr/bin/env zsh
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
|
normaluser=$1
|
||||||
|
(( $# < 1 )) && {
|
||||||
|
print -- "usage: ${0:t} \$USER" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
ghcversion="7.8.3"
|
ghcversion="7.8.3"
|
||||||
cabalversion="1.20.0.3"
|
cabalversion="1.20.0.3"
|
||||||
archi=$(uname -m)
|
archi=$(uname -m)
|
||||||
|
@ -10,6 +15,7 @@ else
|
||||||
cabalversion="1.20.0.1"
|
cabalversion="1.20.0.1"
|
||||||
os="unknown-linux-deb7"
|
os="unknown-linux-deb7"
|
||||||
cabalos="unknown-linux"
|
cabalos="unknown-linux"
|
||||||
|
apt-get install libgmp-dev
|
||||||
fi
|
fi
|
||||||
|
|
||||||
tmpdir=/tmp/install-haskell
|
tmpdir=/tmp/install-haskell
|
||||||
|
@ -26,7 +32,7 @@ fi
|
||||||
echo "Installing GHC..."
|
echo "Installing GHC..."
|
||||||
tar xJf $ghctar
|
tar xJf $ghctar
|
||||||
cd ghc-${ghcversion}
|
cd ghc-${ghcversion}
|
||||||
./configure && sudo make install
|
./configure && make install
|
||||||
|
|
||||||
cd $tmpdir
|
cd $tmpdir
|
||||||
echo "Downloading cabal..."
|
echo "Downloading cabal..."
|
||||||
|
@ -40,29 +46,29 @@ fi
|
||||||
tar xzf $cabaltar
|
tar xzf $cabaltar
|
||||||
echo "Installing cabal..."
|
echo "Installing cabal..."
|
||||||
if [[ -e ./cabal ]]; then
|
if [[ -e ./cabal ]]; then
|
||||||
sudo mv cabal /usr/local/bin
|
mv cabal /usr/local/bin
|
||||||
else
|
else
|
||||||
sudo mv ./dist/build/cabal/cabal /usr/local/bin
|
mv ./dist/build/cabal/cabal /usr/local/bin
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Init cabal..."
|
initcabal(){
|
||||||
cabal info >/dev/null 2>&1
|
echo "Init cabal..."
|
||||||
|
cabal info >/dev/null 2>&1
|
||||||
|
|
||||||
if [[ $1 = "kernel" ]]; then
|
|
||||||
echo "Using Stackage Exclusively..."
|
|
||||||
stackageurl="stackage:http://www.stackage.org/stackage/77fb1efe248e3160d1e7dee5a009a0c5713651ae"
|
|
||||||
else
|
|
||||||
echo "Using Stackage..."
|
echo "Using Stackage..."
|
||||||
stackageurl="stackage:http://www.stackage.org/stackage/3cb59cb0cfe26e0513c30a727d889e7b0d427efd"
|
stackageurl="stackage:http://www.stackage.org/stackage/3cb59cb0cfe26e0513c30a727d889e7b0d427efd"
|
||||||
fi
|
|
||||||
# use exclusive snapshot by default.
|
|
||||||
perl -pi.bak -e 's#^remote-repo: .*$#remote-repo: '$stackageurl'#' $HOME/.cabal/config
|
|
||||||
cabal update
|
|
||||||
echo "Install useful binaries"
|
|
||||||
cabal install -j alex happy
|
|
||||||
|
|
||||||
echo "Update your PATH in .profile for cabal binaries"
|
# use exclusive snapshot by default.
|
||||||
echo 'export PATH=$HOME/.cabal/bin:$PATH' >> $HOME/.profile
|
perl -pi.bak -e 's#^remote-repo: .*$#remote-repo: '$stackageurl'#' $HOME/.cabal/config
|
||||||
|
cabal update
|
||||||
|
echo "Install useful binaries"
|
||||||
|
cabal install -j alex happy
|
||||||
|
|
||||||
|
echo "Update your PATH in .profile for cabal binaries"
|
||||||
|
echo 'export PATH=$HOME/.cabal/bin:$PATH' >> $HOME/.profile
|
||||||
|
}
|
||||||
|
|
||||||
|
sudo -u $normaluser initcabal
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "Congratulations"
|
echo "Congratulations"
|
||||||
|
|
Loading…
Reference in a new issue