mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-02-24 05:00:19 +00:00
Merge pull request #305579 from kylecarbs/master
coder: add support for mainline channel
This commit is contained in:
commit
fca59efa1e
@ -1,4 +1,5 @@
|
||||
{ lib
|
||||
, channel ? "stable"
|
||||
, fetchurl
|
||||
, installShellFiles
|
||||
, makeBinaryWrapper
|
||||
@ -9,18 +10,33 @@
|
||||
|
||||
let
|
||||
inherit (stdenvNoCC.hostPlatform) system;
|
||||
|
||||
channels = {
|
||||
stable = {
|
||||
version = "2.9.3";
|
||||
hash = {
|
||||
x86_64-linux = "sha256-6VS21x2egWBV6eJqRCBGG7mEGPIDFtY9GN6Ry4ilC70=";
|
||||
x86_64-darwin = "sha256-UBUGjA+jUkT6p9714l8IvDDI/qhWNctVFOvcA2S5kQU=";
|
||||
aarch64-linux = "sha256-2QAahqcM2gi3lT+18q2Nm9GNqVsqzX3RajBsTn+KB1c=";
|
||||
aarch64-darwin = "sha256-uEH7Y7c9BcU/Q/jwx/inFMvUrgm2dUruID+FJL+rA6Y=";
|
||||
};
|
||||
};
|
||||
mainline = {
|
||||
version = "2.10.1";
|
||||
hash = {
|
||||
x86_64-linux = "sha256-jNPL30e5xvyajlIqivtEpSb3cRhfgFhLFlC+CaLY2IM=";
|
||||
x86_64-darwin = "sha256-U1eQaYwnm/mdQoZ8YxK/+s3HboVfMIAtdI7aQnCiDM8=";
|
||||
aarch64-linux = "sha256-YtSyKZYG8vdubZUfo2FjEoVwSF82TXzeLJjPpHqgFDk=";
|
||||
aarch64-darwin = "sha256-aQSiXK7voP5/mPFIscfTnSc4Ae5/f+WW8MR6ZtuC/eY=";
|
||||
};
|
||||
};
|
||||
};
|
||||
in
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "coder";
|
||||
version = "2.9.1";
|
||||
|
||||
version = channels.${channel}.version;
|
||||
src = fetchurl {
|
||||
hash = {
|
||||
x86_64-linux = "sha256-r4+u/s/dOn2GhyhEROu8i03QY3VA/bIyO/Yj7KSqicY=";
|
||||
x86_64-darwin = "sha256-uShCmMvb5OcinqP0CmrlP9QAJkjfG3g1QuHE4JRDOjE=";
|
||||
aarch64-linux = "sha256-tvpzfJ95YYfCY5V4iayjAmY5PDw+1uHUhY5F3pv/2Uk=";
|
||||
aarch64-darwin = "sha256-sP9HnB2DzAU9IvL3+QPmIFLvRkGkoxSoa68uXGQrNkw=";
|
||||
}.${system};
|
||||
hash = (channels.${channel}.hash).${system};
|
||||
|
||||
url =
|
||||
let
|
||||
|
@ -5,12 +5,13 @@ set -eu -o pipefail
|
||||
|
||||
cd "$(dirname "${BASH_SOURCE[0]}")"
|
||||
|
||||
LATEST_TAG=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} --silent https://api.github.com/repos/coder/coder/releases/latest | jq -r '.tag_name')
|
||||
LATEST_VERSION=$(echo ${LATEST_TAG} | sed 's/^v//')
|
||||
# Fetch the latest stable version
|
||||
LATEST_STABLE_TAG=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} --silent https://api.github.com/repos/coder/coder/releases/latest | jq -r '.tag_name')
|
||||
LATEST_STABLE_VERSION=$(echo ${LATEST_STABLE_TAG} | sed 's/^v//')
|
||||
|
||||
# change version number
|
||||
sed -e "s/version =.*;/version = \"$LATEST_VERSION\";/g" \
|
||||
-i ./default.nix
|
||||
# Fetch the latest mainline version
|
||||
LATEST_MAINLINE_TAG=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} --silent https://api.github.com/repos/coder/coder/releases | jq -r '.[0].tag_name')
|
||||
LATEST_MAINLINE_VERSION=$(echo ${LATEST_MAINLINE_TAG} | sed 's/^v//')
|
||||
|
||||
# Define the platforms
|
||||
declare -A ARCHS=(["x86_64-linux"]="linux_amd64.tar.gz"
|
||||
@ -18,15 +19,33 @@ declare -A ARCHS=(["x86_64-linux"]="linux_amd64.tar.gz"
|
||||
["x86_64-darwin"]="darwin_amd64.zip"
|
||||
["aarch64-darwin"]="darwin_arm64.zip")
|
||||
|
||||
# Update hashes for each architecture
|
||||
for ARCH in "${!ARCHS[@]}"; do
|
||||
URL="https://github.com/coder/coder/releases/download/v${LATEST_VERSION}/coder_${LATEST_VERSION}_${ARCHS[$ARCH]}"
|
||||
echo "Fetching hash for $ARCH..."
|
||||
update_version_and_hashes() {
|
||||
local version=$1
|
||||
local channel=$2
|
||||
|
||||
# Fetch the new hash using nix-prefetch-url
|
||||
NEW_HASH=$(nix-prefetch-url --type sha256 $URL)
|
||||
SRI_HASH=$(nix hash to-sri --type sha256 $NEW_HASH)
|
||||
# Update version number, using '#' as delimiter
|
||||
sed -i "/${channel} = {/,/};/{
|
||||
s#^\(\s*\)version = .*#\1version = \"$version\";#
|
||||
}" ./default.nix
|
||||
|
||||
# Update the Nix file with the new hash
|
||||
sed -i "s|${ARCH} = \"sha256-.*\";|${ARCH} = \"${SRI_HASH}\";|" ./default.nix
|
||||
done
|
||||
# Update hashes for each architecture
|
||||
for ARCH in "${!ARCHS[@]}"; do
|
||||
local URL="https://github.com/coder/coder/releases/download/v${version}/coder_${version}_${ARCHS[$ARCH]}"
|
||||
echo "Fetching hash for $channel/$ARCH..."
|
||||
|
||||
# Fetch the new hash using nix-prefetch-url
|
||||
local NEW_HASH=$(nix-prefetch-url --type sha256 $URL)
|
||||
local SRI_HASH=$(nix hash to-sri --type sha256 $NEW_HASH)
|
||||
|
||||
# Update the Nix file with the new hash, using '#' as delimiter and preserving indentation
|
||||
sed -i "/${channel} = {/,/};/{
|
||||
s#^\(\s*\)${ARCH} = .*#\1${ARCH} = \"${SRI_HASH}\";#
|
||||
}" ./default.nix
|
||||
done
|
||||
}
|
||||
|
||||
# Update stable channel
|
||||
update_version_and_hashes $LATEST_STABLE_VERSION "stable"
|
||||
|
||||
# Update mainline channel
|
||||
update_version_and_hashes $LATEST_MAINLINE_VERSION "mainline"
|
||||
|
Loading…
Reference in New Issue
Block a user