summary refs log tree commit diff
path: root/pkgs/desktops/deepin/update.nix
diff options
context:
space:
mode:
authorJosé Romildo Malaquias <malaquias@gmail.com>2018-10-30 19:17:45 -0300
committerJosé Romildo Malaquias <malaquias@gmail.com>2018-11-10 12:27:38 -0200
commit287db0f9b97789606c63974487c6a5c2b7467ef4 (patch)
treec77630dba006f14a89219abc29ac4e5054e475a8 /pkgs/desktops/deepin/update.nix
parentd0df66ea60cf8a9543db6d393b38f2d9ec667097 (diff)
downloadnixpkgs-287db0f9b97789606c63974487c6a5c2b7467ef4.tar
nixpkgs-287db0f9b97789606c63974487c6a5c2b7467ef4.tar.gz
nixpkgs-287db0f9b97789606c63974487c6a5c2b7467ef4.tar.bz2
nixpkgs-287db0f9b97789606c63974487c6a5c2b7467ef4.tar.lz
nixpkgs-287db0f9b97789606c63974487c6a5c2b7467ef4.tar.xz
nixpkgs-287db0f9b97789606c63974487c6a5c2b7467ef4.tar.zst
nixpkgs-287db0f9b97789606c63974487c6a5c2b7467ef4.zip
deepin: add update script
Diffstat (limited to 'pkgs/desktops/deepin/update.nix')
-rw-r--r--pkgs/desktops/deepin/update.nix37
1 files changed, 37 insertions, 0 deletions
diff --git a/pkgs/desktops/deepin/update.nix b/pkgs/desktops/deepin/update.nix
new file mode 100644
index 00000000000..761ead015c6
--- /dev/null
+++ b/pkgs/desktops/deepin/update.nix
@@ -0,0 +1,37 @@
+{ lib, writeScript, coreutils, curl, gnugrep, gnused, jq, common-updater-scripts, nix }:
+{ name, ignored-versions ? "^2014\\.|^v[0-9]+" }:
+
+let
+  nameAndVersion = builtins.parseDrvName name;
+  packageVersion = nameAndVersion.version;
+  packageName = nameAndVersion.name;
+  attrPath = "deepin.${packageName}";
+in
+
+writeScript "update-${packageName}" ''
+  set -o errexit
+  set -x
+
+  # search for the latest version of the package on github
+  PATH=${lib.makeBinPath [ common-updater-scripts coreutils curl gnugrep gnused jq ]}
+  tags=$(curl -s https://api.github.com/repos/linuxdeepin/${packageName}/tags)
+  tags=$(echo "$tags" | jq -r '.[] | .name')
+  echo "# ${name}" >> git-commits.txt
+  echo "#   available tags:" >> git-commits.txt
+  echo "$tags" | ${gnused}/bin/sed -e 's/^/#      /' >> git-commits.txt
+  if [ -n "${ignored-versions}" ]; then
+    tags=$(echo "$tags" | grep -vE "${ignored-versions}")
+  fi
+  latest_tag=$(echo "$tags" | sort --version-sort | tail -1)
+
+  # generate commands to commit the changes
+  if [ "${packageVersion}" != "$latest_tag" ]; then
+    pfile=$(EDITOR=echo ${nix}/bin/nix edit -f. ${attrPath})
+    echo "   git add $pfile " >> git-commits.txt
+    echo "   git commit -m \"${attrPath}: ${packageVersion} -> $latest_tag\"" >> git-commits.txt
+  fi
+
+  # update the nix expression
+  update-source-version "${attrPath}" "$latest_tag"
+  echo "" >> git-commits.txt
+''