summary refs log tree commit diff
path: root/maintainers
diff options
context:
space:
mode:
authorLuca Bruno <lucabru@src.gnome.org>2015-09-17 15:48:06 +0200
committerLuca Bruno <lucabru@src.gnome.org>2015-09-17 17:02:55 +0200
commit39965bba04f42f64baf8321819fd899a4a2942bd (patch)
tree38ce56560e37f1b4c066972ecd1b441026203041 /maintainers
parent389e654e0398a1ea64a58cca667808fe453a7611 (diff)
downloadnixpkgs-39965bba04f42f64baf8321819fd899a4a2942bd.tar
nixpkgs-39965bba04f42f64baf8321819fd899a4a2942bd.tar.gz
nixpkgs-39965bba04f42f64baf8321819fd899a4a2942bd.tar.bz2
nixpkgs-39965bba04f42f64baf8321819fd899a4a2942bd.tar.lz
nixpkgs-39965bba04f42f64baf8321819fd899a4a2942bd.tar.xz
nixpkgs-39965bba04f42f64baf8321819fd899a4a2942bd.tar.zst
nixpkgs-39965bba04f42f64baf8321819fd899a4a2942bd.zip
maint script gnome-latest.sh: support point versions, handle 404 errors
Diffstat (limited to 'maintainers')
-rwxr-xr-xmaintainers/scripts/gnome-latest.sh59
1 files changed, 36 insertions, 23 deletions
diff --git a/maintainers/scripts/gnome-latest.sh b/maintainers/scripts/gnome-latest.sh
index 9186db5fda3..ccded6e6277 100755
--- a/maintainers/scripts/gnome-latest.sh
+++ b/maintainers/scripts/gnome-latest.sh
@@ -24,7 +24,7 @@ if [ "$FTP_CLIENT" = "lftp" ]; then
   }
 else
   ls_ftp() {
-    curl -l "$1"/
+    curl -s -l "$1"/
   }
 fi
 
@@ -36,40 +36,53 @@ if [ -z "$majorVersion" ]; then
   read majorVersion
 fi
 
+if echo "$majorVersion" | grep -q "[0-9]\+\.[0-9]\+\.[0-9]\+"; then
+	# not a major version
+	version="$majorVersion"
+	majorVersion=$(echo "$majorVersion" | cut -d '.' -f 1,2)
+fi
+
 FTPDIR="${GNOME_FTP}/${project}/${majorVersion}"
 
 #version=`curl -l ${FTPDIR}/ 2>/dev/null | grep LATEST-IS | sed -e s/LATEST-IS-//`
 # gnome's LATEST-IS is broken. Do not trust it.
 
-files=$(ls_ftp "${FTPDIR}")
-declare -A versions
-
-for f in $files; do
-  case $f in
+if [ -z "$version" ]; then
+	files=$(ls_ftp "${FTPDIR}")
+	declare -A versions
+	
+	for f in $files; do
+		case $f in
     (LATEST-IS-*|*.news|*.changes|*.sha256sum|*.diff*):
-      ;;
+		;;
     ($project-*.*.9*.tar.*):
-      tmp=${f#$project-}
-      tmp=${tmp%.tar*}
-      echo "Ignored unstable version ${tmp}" >&2
-      ;;
+		tmp=${f#$project-}
+		tmp=${tmp%.tar*}
+		echo "Ignored unstable version ${tmp}" >&2
+		;;
     ($project-*.tar.*):
-      tmp=${f#$project-}
-      tmp=${tmp%.tar*}
-      versions[${tmp}]=1
-      ;;
+		tmp=${f#$project-}
+		tmp=${tmp%.tar*}
+		versions[${tmp}]=1
+		;;
     (*):
-      echo "UNKNOWN FILE $f"
-      ;;
-  esac
-done
-echo "Found versions ${!versions[@]}" >&2
-version=`echo ${!versions[@]} | sed -e 's/ /\n/g' | sort -t. -k1,1n -k 2,2n -k 3,3n | tail -n1`
-echo "Latest version is: ${version}" >&2
+		echo "UNKNOWN FILE $f"
+		;;
+		esac
+	done
+	echo "Found versions ${!versions[@]}" >&2
+	version=`echo ${!versions[@]} | sed -e 's/ /\n/g' | sort -t. -k1,1n -k 2,2n -k 3,3n | tail -n1`
+	echo "Latest version is: ${version}" >&2
+fi
 
 name=${project}-${version}
 echo "Fetching .sha256 file" >&2
-sha256out=$(curl -s http://${FTPDIR}/${name}.sha256sum)
+sha256out=$(curl -s -f http://${FTPDIR}/${name}.sha256sum)
+
+if [ "$?" -ne "0" ]; then
+	echo "Version not found" >&2
+	exit 1
+fi
 
 extensions=( "xz" "bz2" "gz" )
 echo "Choosing archive extension (known are ${extensions[@]})..." >&2