From 4a7fc5f062a438cf1199e917bad501a9cfdf7e0a Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Wed, 28 Feb 2018 19:26:52 +0100 Subject: [PATCH] maintainers/scripts/gnome.sh: remove --- maintainers/scripts/gnome.sh | 192 ----------------------------------- 1 file changed, 192 deletions(-) delete mode 100755 maintainers/scripts/gnome.sh diff --git a/maintainers/scripts/gnome.sh b/maintainers/scripts/gnome.sh deleted file mode 100755 index d44bda53f8d..00000000000 --- a/maintainers/scripts/gnome.sh +++ /dev/null @@ -1,192 +0,0 @@ -#!/usr/bin/env bash - -set -o pipefail - -GNOME_FTP=ftp.gnome.org/pub/GNOME/sources - -# projects that don't follow the GNOME major versioning, or that we don't want to -# programmatically update -NO_GNOME_MAJOR="ghex gtkhtml gdm gucharmap" - -usage() { - echo "Usage: $0 || [major.minor]" >&2 - exit 0 -} - -if [ "$#" -lt 1 ]; then - usage -fi - -GNOME_TOP=pkgs/desktops/gnome-3 - -action=$1 - -# curl -l ftp://... doesn't work from my office in HSE, and I don't want to have -# any conversations with sysadmin. Somehow lftp works. -if [ "$FTP_CLIENT" = "lftp" ]; then - ls_ftp() { - lftp -c "open $1; cls" - } -else - ls_ftp() { - curl -s -l "$1"/ - } -fi - -find_project() { - exec find "$GNOME_TOP" -mindepth 2 -maxdepth 2 -type d "$@" -} - -show_project() { - local project=$1 - local majorVersion=$2 - local version= - - if [ -z "$majorVersion" ]; then - echo "Looking for available versions..." >&2 - local available_baseversions=$(ls_ftp ftp://${GNOME_FTP}/${project} | grep '[0-9]\.[0-9]' | sort -t. -k1,1n -k 2,2n) - if [ "$?" -ne 0 ]; then - echo "Project $project not found" >&2 - return 1 - fi - - echo -e "The following versions are available:\n ${available_baseversions[@]}" >&2 - echo -en "Choose one of them: " >&2 - 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 - - local 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. - - if [ -z "$version" ]; then - local 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 - ;; - ($project-*.tar.*): - tmp=${f#$project-} - tmp=${tmp%.tar*} - versions[${tmp}]=1 - ;; - (*): - echo "UNKNOWN FILE $f" >&2 - ;; - 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) - if [ -z "$version" ]; then - echo "No version available for major $majorVersion" >&2 - return 1 - fi - - echo "Latest version is: ${version}" >&2 - fi - - local name=${project}-${version} - echo "Fetching .sha256 file" >&2 - local sha256out=$(curl -s -f http://"${FTPDIR}"/"${name}".sha256sum) - - if [ "$?" -ne "0" ]; then - echo "Version not found" >&2 - return 1 - fi - - extensions=( "xz" "bz2" "gz" ) - echo "Choosing archive extension (known are ${extensions[@]})..." >&2 - for ext in ${extensions[@]}; do - if echo -e "$sha256out" | grep -q "\\.tar\\.${ext}$"; then - ext_pref=$ext - sha256=$(echo -e "$sha256out" | grep "\\.tar\\.${ext}$" | cut -f1 -d\ ) - break - fi - done - echo "Chosen ${ext_pref}, hash is ${sha256}" >&2 - - echo "# Autogenerated by maintainers/scripts/gnome.sh update - -fetchurl: { - name = \"${project}-${version}\"; - - src = fetchurl { - url = mirror://gnome/sources/${project}/${majorVersion}/${project}-${version}.tar.${ext_pref}; - sha256 = \"${sha256}\"; - }; -}" - - return 0 -} - -update_project() { - local project=$1 - local majorVersion=$2 - - # find project in nixpkgs tree - projectPath=$(find_project -name "$project" -print) - if [ -z "$projectPath" ]; then - echo "Project $project not found under $GNOME_TOP" - exit 1 - fi - - src=$(show_project "$project" "$majorVersion") - - if [ "$?" -eq "0" ]; then - echo "Updating $projectPath/src.nix" >&2 - echo -e "$src" > "$projectPath"/src.nix - fi - - return 0 -} - -if [ "$action" = "update-all" ]; then - majorVersion=$2 - if [ -z "$majorVersion" ]; then - echo "No major version specified" >&2 - usage - fi - - # find projects - projects=$(find_project -exec basename '{}' \;) - for project in $projects; do - if echo "$NO_GNOME_MAJOR"|grep -q $project; then - echo "Skipping $project" - else - echo "= Updating $project to $majorVersion" >&2 - update_project "$project" "$majorVersion" - echo >&2 - fi - done -else - project=$2 - majorVersion=$3 - - if [ -z "$project" ]; then - echo "No project specified, exiting" >&2 - usage - fi - - if [ "$action" = show ]; then - show_project "$project" "$majorVersion" - elif [ "$action" = update ]; then - update_project "$project" "$majorVersion" - else - echo "Unknown action $action" >&2 - usage - fi -fi