nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 61 lines 1.9 kB view raw
1{ 2 lib, 3 writeScript, 4}: 5 6{ version }: 7 8let 9 prefix = "hsa-amd-aqlprofile"; 10 extVersion = lib.strings.concatStrings ( 11 lib.strings.intersperse "0" (lib.versions.splitVersion version) 12 ); 13 major = lib.versions.major version; 14 minor = lib.versions.minor version; 15 patch = lib.versions.patch version; 16 17 updateScript = writeScript "update.sh" '' 18 #!/usr/bin/env nix-shell 19 #!nix-shell -i bash -p curl common-updater-scripts 20 apt="https://repo.radeon.com/rocm/apt" 21 pool="pool/main/h/${prefix}/" 22 url="$apt/latest/$pool" 23 res="$(curl -sL "$url")" 24 deb="${prefix}$(echo "$res" | grep -o -P "(?<=href=\"${prefix}).*(?=\">)" | tail -1)" 25 patch="${patch}" 26 27 # Try up to 10 patch versions 28 for i in {1..10}; do 29 ((patch++)) 30 extVersion="$(echo "$deb" | grep -o -P "(?<=\.....).*(?=\..*-)")" 31 32 if (( ''${#extVersion} == 6 )) && (( $extVersion <= ${extVersion} )); then 33 url="https://repo.radeon.com/rocm/apt/${major}.${minor}.$patch/pool/main/h/${prefix}/" 34 res="$(curl -sL "$url")" 35 deb="${prefix}$(echo "$res" | grep -o -P "(?<=href=\"${prefix}).*(?=\">)" | tail -1)" 36 else 37 break 38 fi 39 done 40 41 extVersion="$(echo $deb | grep -o -P "(?<=\.....).*(?=\..*-)")" 42 version="$(echo $extVersion | sed "s/0/./1" | sed "s/0/./1")" 43 IFS='.' read -a version_arr <<< "$version" 44 45 if (( ''${version_arr[0]} > 6 )); then 46 echo "'rocmPackages_6.${prefix}-bin' is already at it's maximum allowed version.''\nAny further upgrades should go into 'rocmPackages_X.${prefix}-bin'." 1>&2 47 exit 1 48 fi 49 50 if (( ''${#extVersion} == 6 )); then 51 repoVersion="$version" 52 53 if (( ''${version:4:1} == 0 )); then 54 repoVersion=''${version:0:3} 55 fi 56 57 update-source-version rocmPackages_6.${prefix}-bin "$version" "" "$apt/$repoVersion/$pool$deb" --ignore-same-hash 58 fi 59 ''; 60in 61[ updateScript ]