Skip to content

Commit 319ac00

Browse files
committed
Improve symfony-cli support
Fingers crossed symfony-cli keeps the artifact format in their releases
1 parent 38e8065 commit 319ac00

2 files changed

Lines changed: 62 additions & 45 deletions

File tree

src/scripts/tools/symfony.ps1

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,32 @@
11
Function Add-Symfony() {
2-
$arch_name ='amd64'
3-
if(-not([Environment]::Is64BitOperatingSystem) -or $version -lt '7.0') {
4-
$arch_name = '386'
5-
}
6-
$url = "https://github.com/symfony-cli/symfony-cli/releases/latest/download/symfony-cli_windows_${arch_name}.zip"
7-
Get-File -Url $url -OutFile $bin_dir\symfony.zip >$null 2>&1
8-
Expand-Archive -Path $bin_dir\symfony.zip -DestinationPath $bin_dir -Force >$null 2>&1
9-
if(Test-Path $bin_dir\symfony.exe) {
10-
Copy-Item -Path $bin_dir\symfony.exe -Destination $bin_dir\symfony-cli.exe > $null 2>&1
11-
Add-ToProfile $current_profile 'symfony' "New-Alias symfony $bin_dir\symfony.exe"
12-
Add-ToProfile $current_profile 'symfony_cli' "New-Alias symfony-cli $bin_dir\symfony-cli.exe"
13-
$tool_version = Get-ToolVersion symfony "-V"
14-
Add-Log $tick "symfony-cli" "Added symfony-cli $tool_version"
2+
param(
3+
[Parameter(Mandatory = $true, Position = 0, HelpMessage = 'Symfony version to be installed')]
4+
[string] $protobuf_tag
5+
)
6+
$protobuf_tag = $protobuf_tag.replace('v', '')
7+
if($protobuf_tag -ne 'latest' -and $protobuf_tag -notmatch '^\d+(\.\d+)*$') {
8+
Add-Log $cross "symfony-cli" "Invalid symfony version: $protobuf_tag"
159
} else {
16-
Add-Log $cross "symfony-cli" "Could not setup symfony-cli"
10+
$arch_name = 'amd64'
11+
if (-not ([Environment]::Is64BitOperatingSystem) -or $version -lt '7.0') {
12+
$arch_name = '386'
13+
}
14+
$symfony_releases = "https://github.com/symfony-cli/symfony-cli/releases"
15+
if ($protobuf_tag -eq 'latest') {
16+
$url = "$symfony_releases/latest/download/symfony-cli_windows_${arch_name}.zip"
17+
} else {
18+
$url = "$symfony_releases/download/v$protobuf_tag/symfony-cli_windows_${arch_name}.zip"
19+
}
20+
Get-File -Url $url -OutFile $bin_dir\symfony.zip > $null 2>&1
21+
Expand-Archive -Path $bin_dir\symfony.zip -DestinationPath $bin_dir -Force > $null 2>&1
22+
if (Test-Path $bin_dir\symfony.exe) {
23+
Copy-Item -Path $bin_dir\symfony.exe -Destination $bin_dir\symfony-cli.exe > $null 2>&1
24+
Add-ToProfile $current_profile 'symfony' "New-Alias symfony $bin_dir\symfony.exe"
25+
Add-ToProfile $current_profile 'symfony_cli' "New-Alias symfony-cli $bin_dir\symfony-cli.exe"
26+
$tool_version = Get-ToolVersion symfony "-V"
27+
Add-Log $tick "symfony-cli" "Added symfony-cli $tool_version"
28+
} else {
29+
Add-Log $cross "symfony-cli" "Could not setup symfony-cli"
30+
}
1731
}
1832
}

src/scripts/tools/symfony.sh

Lines changed: 34 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,44 @@
1-
add_symfony_with_brew() {
2-
add_brew_tap symfony-cli/homebrew-tap
3-
brew install symfony-cli/tap/symfony-cli
4-
}
5-
61
get_symfony_artifact_url() {
7-
arch=$(dpkg --print-architecture)
8-
url=$(get -s -n "" https://raw.githubusercontent.com/symfony-cli/homebrew-tap/main/Formula/symfony-cli.rb 2<&1 | grep -m 1 "url.*linux.*${arch}" | cut -d\" -f 2)
9-
if [ -z "$url" ]; then
10-
url="https://github.com/symfony-cli/symfony-cli/releases/latest/download/symfony-cli_linux_${arch}.tar.gz"
11-
fi
12-
echo "$url"
2+
local symfony_tag=$1
3+
local os
4+
local arch
5+
os="$(uname -s | tr '[:upper:]' '[:lower:]')"
6+
arch="$(uname -m)"
7+
case "$arch" in
8+
arm|armv6*|armv7*) arch="armv6" ;;
9+
aarch64*|armv8*|arm64) arch="arm64" ;;
10+
i[36]86) arch="386" ;;
11+
x86_64|amd64) arch="amd64" ;;
12+
esac
13+
[ "$os" = "darwin" ] && arch="all"
14+
symfony_releases="https://github.com/symfony-cli/symfony-cli/releases"
15+
if [ "$symfony_tag" = "latest" ]; then
16+
echo "$symfony_releases/latest/download/symfony-cli_${os}_${arch}.tar.gz"
17+
else
18+
echo "$symfony_releases/download/v$symfony_tag/symfony-cli_${os}_${arch}.tar.gz"
19+
fi
1320
}
1421

1522
add_symfony_helper() {
16-
if [ "$(uname -s)" = "Linux" ]; then
17-
url="$(get_symfony_artifact_url)"
18-
if [ -z "$url" ]; then
19-
. "${0%/*}"/tools/brew.sh
20-
configure_brew
21-
add_symfony_with_brew
22-
else
23-
get -s -n "" "$url" | sudo tar -xz -C "${tool_path_dir:?}" 2>/dev/null
24-
sudo chmod a+x /usr/local/bin/symfony
25-
fi
26-
elif [ "$(uname -s)" = "Darwin" ]; then
27-
add_symfony_with_brew
28-
fi
23+
local install_dir=/usr/local/bin
24+
[ "$(uname -s)" = "Darwin" ] && install_dir=${brew_prefix:?}/bin
25+
get -s -n "" "$(get_symfony_artifact_url "$symfony_tag")" | sudo tar -xz -C "$install_dir" 2>/dev/null
26+
sudo chmod a+x "$install_dir"/symfony
2927
}
3028

3129
add_symfony() {
32-
add_symfony_helper >/dev/null 2>&1
33-
symfony_path="$(command -v symfony)"
34-
if [[ -n "$symfony_path" ]]; then
35-
sudo ln -s "$symfony_path" "${tool_path_dir:?}"/symfony-cli
36-
tool_version=$(get_tool_version "symfony" "-V")
37-
add_log "${tick:?}" "symfony-cli" "Added symfony-cli $tool_version"
30+
local symfony_tag="${1/v/}"
31+
if ! [[ "$symfony_tag" =~ ^[0-9]+(\.[0-9]+)*$ || "$symfony_tag" == 'latest' ]]; then
32+
add_log "${cross:?}" "symfony-cli" "Version '$symfony_tag' is not valid for symfony-cli"
3833
else
39-
add_log "${cross:?}" "symfony-cli" "Could not setup symfony-cli"
34+
add_symfony_helper "$symfony_tag" >/dev/null 2>&1
35+
symfony_path="$(command -v symfony)"
36+
if [[ -n "$symfony_path" ]]; then
37+
sudo ln -s "$symfony_path" "${tool_path_dir:?}"/symfony-cli
38+
tool_version=$(get_tool_version "symfony" "-V")
39+
add_log "${tick:?}" "symfony-cli" "Added symfony-cli $tool_version"
40+
else
41+
add_log "${cross:?}" "symfony-cli" "Could not setup symfony-cli"
42+
fi
4043
fi
4144
}

0 commit comments

Comments
 (0)