Skip to content

Instantly share code, notes, and snippets.

@tairov
Forked from maximal/update-eap.sh
Created March 6, 2016 18:08
Show Gist options
  • Save tairov/0651df1992f91d56a3db to your computer and use it in GitHub Desktop.
Save tairov/0651df1992f91d56a3db to your computer and use it in GitHub Desktop.
Обновление тестовых версий (EAP) сред разработки компании JetBrains для Linux
#!/bin/bash
##
# Обновление тестовых версий (EAP) сред разработки компании JetBrains для Linux.
# В данном случае скачивается PhpStorm, но скрипт подойдёт для любой среды разработки,
# выкладываемой компанией JetBrains в EAP.
#
#
# @author MaximAL
# @since 2015-08-27 Поменял паттерн `fileRegex` под текущие реалии.
# @since 2015-04-10 Первая версия
# @copyright © MaximAL 2015
##
## Настройки
# Ссылка на страницу с новыми версиями EAP
pageUrl='https://confluence.jetbrains.com/display/PhpStorm/PhpStorm+Early+Access+Program'
# Регулярное выражение для ссылки на новую версию.
fileRegex='http://download.jetbrains.com/webide/[^\"]+?\.tar\.gz'
# Базовая директория; как правило, `/opt`
baseDir='/opt'
# Имя символьной ссылки, чтобы новая версия всегда была по одному пути $baseDir/$linkName
linkName='PhpStorm'
## Поехали!
echo "Страница: $pageUrl"
echo "Файл: $fileRegex"
fileUrl=`wget -q -O - "$pageUrl" | grep -Po "$fileRegex"`
if [ -z $fileUrl ]; then
echo "По адресу $pageUrl не найдено ссылки на $fileRegex"
exit 1
fi
echo "Получаем имя каталога…"
dirName=`wget -q -O - "$fileUrl" | tar tz | head -n1 | grep --max-count=1 -Po '[^/]+' | head -n1`
echo "Каталог: $dirName"
if [ -e "$baseDir/$dirName" ]; then
echo "Каталог $baseDir/$dirName уже существует. Скорее всего, вы пользуетесь последней версией."
exit 2
fi
cd "$baseDir"
rm -rf "$dirName"
echo "Скачиваем архив…"
wget -O - "$fileUrl" | tar xzp
echo "Настраиваем ссылку…"
rm -f "$linkName"
ln -s "$dirName" "$linkName"
echo "Обновление завершено."
echo " Каталог: $baseDir/$dirName/"
echo " Ссылка: $baseDir/$linkName"
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment