aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/applications/virtualization/virtualbox/update.sh
diff options
context:
space:
mode:
authorKatharina Fey <kookie@spacekookie.de>2020-05-20 01:39:43 +0200
committerKatharina Fey <kookie@spacekookie.de>2020-05-20 01:39:43 +0200
commit1849de11ec1e32e9eebb83f24d5339bea88b7ed7 (patch)
tree0aaf3cead09c2d55c67c6f6a86ad20af399797d8 /nixpkgs/pkgs/applications/virtualization/virtualbox/update.sh
parent304c06d7a7ea3f5c84031d325ece8d38b8c1d829 (diff)
parent0f5ce2fac0c726036ca69a5524c59a49e2973dd4 (diff)
Merge commit '0f5ce2fac0c726036ca69a5524c59a49e2973dd4'
Diffstat (limited to 'nixpkgs/pkgs/applications/virtualization/virtualbox/update.sh')
-rwxr-xr-xnixpkgs/pkgs/applications/virtualization/virtualbox/update.sh44
1 files changed, 44 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/virtualization/virtualbox/update.sh b/nixpkgs/pkgs/applications/virtualization/virtualbox/update.sh
new file mode 100755
index 00000000000..fcd02ae8a27
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/update.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl common-updater-scripts nix-prefetch-scripts jq
+
+set -xeuo pipefail
+
+nixpkgs="$(git rev-parse --show-toplevel)"
+
+attr=virtualbox
+oldVersion="$(nix-instantiate --eval -E "with import $nixpkgs {}; $attr.version or (builtins.parseDrvName $attr.name).version" | tr -d '"')"
+latestVersion="$(curl -sS https://download.virtualbox.org/virtualbox/LATEST.TXT)"
+
+function fileShaSum() {
+ echo "$1" | grep -w $2 | cut -f1 -d' '
+}
+function oldHash() {
+ nix-instantiate --eval --strict -A "$1.drvAttrs.outputHash" | tr -d '"'
+}
+function nixFile() {
+ nix-instantiate --eval --strict -A "${1}.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/'
+}
+
+if [ ! "$oldVersion" = "$latestVersion" ]; then
+ shaSums=$(curl -sS https://download.virtualbox.org/virtualbox/$latestVersion/SHA256SUMS)
+
+ virtualBoxShaSum=$(fileShaSum "$shaSums" "VirtualBox-$latestVersion.tar.bz2")
+ extpackShaSum=$(fileShaSum "$shaSums" "Oracle_VM_VirtualBox_Extension_Pack-$latestVersion.vbox-extpack")
+ guestAdditionsShaSum=$(fileShaSum "$shaSums" "*VBoxGuestAdditions_$latestVersion.iso")
+
+ virtualboxNixFile=$(nixFile ${attr})
+ extpackNixFile=$(nixFile ${attr}Extpack)
+ guestAdditionsNixFile=$(nixFile linuxPackages.${attr}GuestAdditions)
+
+ extpackOldShaSum=$(oldHash ${attr}Extpack)
+ guestAdditionsOldShaSum=$(oldHash linuxPackages.${attr}GuestAdditions.src)
+
+ update-source-version $attr $latestVersion $virtualBoxShaSum
+ sed -i -e 's|value = "'$extpackOldShaSum'"|value = "'$extpackShaSum'"|' $extpackNixFile
+ sed -i -e 's|sha256 = "'$guestAdditionsOldShaSum'"|sha256 = "'$guestAdditionsShaSum'"|' $guestAdditionsNixFile
+
+ git add $virtualboxNixFile $extpackNixFile $guestAdditionsNixFile
+ git commit -m "$attr: ${oldVersion} -> ${latestVersion}"
+else
+ echo "$attr is already up-to-date"
+fi