Add mastodon service
This commit is contained in:
121
roles/rbenv/files/rbenv_installer.sh
Normal file
121
roles/rbenv/files/rbenv_installer.sh
Normal file
@@ -0,0 +1,121 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
homebrew=
|
||||
type -p brew >/dev/null && homebrew=1
|
||||
|
||||
try_bash_extension() {
|
||||
if [ -x src/configure ]; then
|
||||
src/configure && make -C src || {
|
||||
echo "Optional bash extension failed to build, but things will still work normally."
|
||||
}
|
||||
fi
|
||||
}
|
||||
|
||||
if ! type -p git >/dev/null; then
|
||||
git() {
|
||||
echo "Error: git is required to proceed. Please install git and try again." >&2
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
http() {
|
||||
local url="$1"
|
||||
if type -p curl >/dev/null; then
|
||||
curl -fsSL "$url"
|
||||
elif type -p wget >/dev/null; then
|
||||
wget -q "$url" -O-
|
||||
else
|
||||
echo "Error: couldn't download file. No \`curl' or \`wget' found." >&2
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
rbenv="$(command -v rbenv ~/.rbenv/bin/rbenv | head -1)"
|
||||
|
||||
if [ -n "$rbenv" ]; then
|
||||
echo "rbenv already seems installed in \`$rbenv'."
|
||||
cd "${rbenv%/*}"
|
||||
|
||||
if [ -x ./brew ]; then
|
||||
echo "Trying to update with Homebrew..."
|
||||
brew update >/dev/null
|
||||
if [ "$(./rbenv --version)" < "1.0.0" ] && brew list rbenv | grep -q rbenv/HEAD; then
|
||||
brew uninstall rbenv
|
||||
brew install rbenv --without-ruby-build
|
||||
else
|
||||
brew upgrade rbenv
|
||||
fi
|
||||
elif git remote -v 2>/dev/null | grep -q rbenv; then
|
||||
echo "Trying to update with git..."
|
||||
git pull --tags origin master
|
||||
cd ..
|
||||
try_bash_extension
|
||||
fi
|
||||
else
|
||||
if [ -n "$homebrew" ]; then
|
||||
echo "Installing rbenv with Homebrew..."
|
||||
brew update
|
||||
brew install rbenv --without-ruby-build
|
||||
rbenv="$(brew --prefix)/bin/rbenv"
|
||||
else
|
||||
echo "Installing rbenv with git..."
|
||||
mkdir -p ~/.rbenv
|
||||
cd ~/.rbenv
|
||||
git init
|
||||
git remote add -f -t master origin https://github.com/rbenv/rbenv.git
|
||||
git checkout -b master origin/master
|
||||
try_bash_extension
|
||||
rbenv=~/.rbenv/bin/rbenv
|
||||
|
||||
if [ ! -e versions ] && [ -w /opt/rubies ]; then
|
||||
ln -s /opt/rubies versions
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
rbenv_root="$("$rbenv" root)"
|
||||
ruby_build="$(command -v "$rbenv_root"/plugins/*/bin/rbenv-install rbenv-install | head -1)"
|
||||
|
||||
echo
|
||||
if [ -n "$ruby_build" ]; then
|
||||
echo "\`rbenv install' command already available in \`$ruby_build'."
|
||||
cd "${ruby_build%/*}"
|
||||
|
||||
if [ -x ./brew ]; then
|
||||
echo "Trying to update with Homebrew..."
|
||||
brew update >/dev/null
|
||||
brew upgrade ruby-build
|
||||
elif git remote -v 2>/dev/null | grep -q ruby-build; then
|
||||
echo "Trying to update with git..."
|
||||
git pull origin master
|
||||
fi
|
||||
else
|
||||
if [ -n "$homebrew" ]; then
|
||||
echo "Installing ruby-build with Homebrew..."
|
||||
brew update
|
||||
brew install ruby-build
|
||||
else
|
||||
echo "Installing ruby-build with git..."
|
||||
mkdir -p "${rbenv_root}/plugins"
|
||||
git clone https://github.com/rbenv/ruby-build.git "${rbenv_root}/plugins/ruby-build"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Enable caching of rbenv-install downloads
|
||||
mkdir -p "${rbenv_root}/cache"
|
||||
|
||||
echo
|
||||
echo "Running doctor script to verify installation..."
|
||||
http https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | "$BASH"
|
||||
|
||||
echo
|
||||
echo "All done!"
|
||||
echo "Note that this installer doesn't yet configure your shell startup files:"
|
||||
i=0
|
||||
if [ -x ~/.rbenv/bin ]; then
|
||||
echo "$((++i)). You'll want to ensure that \`~/.rbenv/bin' is added to PATH."
|
||||
fi
|
||||
echo "$((++i)). Run \`rbenv init' to see instructions how to configure rbenv for your shell."
|
||||
echo "$((++i)). Launch a new terminal window to verify that the configuration is correct."
|
||||
echo
|
||||
Reference in New Issue
Block a user