65 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env nix-shell
 | 
						|
#!nix-shell -i bash -p libarchive curl common-updater-scripts
 | 
						|
 | 
						|
set -eu -o pipefail
 | 
						|
 | 
						|
cd "$(dirname "${BASH_SOURCE[0]}")"
 | 
						|
root=../../..
 | 
						|
export NIXPKGS_ALLOW_UNFREE=1
 | 
						|
 | 
						|
mate_version=1.24
 | 
						|
theme_version=3.22
 | 
						|
materepo=https://pub.mate-desktop.org/releases/${mate_version}
 | 
						|
themerepo=https://pub.mate-desktop.org/releases/themes/${theme_version}
 | 
						|
 | 
						|
version() {
 | 
						|
    (cd "$root" && nix-instantiate --eval --strict -A "$1.version" | tr -d '"')
 | 
						|
}
 | 
						|
 | 
						|
update_package() {
 | 
						|
    local p=$1
 | 
						|
    echo $p
 | 
						|
    echo "# $p" >> git-commits.txt
 | 
						|
 | 
						|
    local repo
 | 
						|
    if [ "$p" = "mate-themes" ]; then
 | 
						|
        repo=$themerepo
 | 
						|
    else
 | 
						|
        repo=$materepo
 | 
						|
    fi
 | 
						|
  
 | 
						|
    local p_version_old=$(version mate.$p)
 | 
						|
    local p_versions=$(curl -sS ${repo}/ | sed -rne "s/.*\"$p-([0-9]+\\.[0-9]+\\.[0-9]+)\\.tar\\.xz.*/\\1/p")
 | 
						|
    local p_version=$(echo $p_versions | sed -e 's/ /\n/g' | sort -t. -k 1,1n -k 2,2n -k 3,3n | tail -n1)
 | 
						|
 | 
						|
    if [[ -z "$p_version" ]]; then
 | 
						|
        echo "unavailable $p"
 | 
						|
        echo "# $p not found" >> git-commits.txt
 | 
						|
        echo
 | 
						|
        return
 | 
						|
    fi
 | 
						|
 | 
						|
    if [[ "$p_version" = "$p_version_old" ]]; then
 | 
						|
        echo "nothing to do, $p $p_version is current"
 | 
						|
        echo
 | 
						|
        return
 | 
						|
    fi
 | 
						|
 | 
						|
    # Download package and save hash and file path.
 | 
						|
    local url="$repo/$p-${p_version}.tar.xz"
 | 
						|
    mapfile -t prefetch < <(nix-prefetch-url --print-path "$url")
 | 
						|
    local hash=${prefetch[0]}
 | 
						|
    local path=${prefetch[1]}
 | 
						|
    echo "$p: $p_version_old -> $p_version"
 | 
						|
    (cd "$root" && update-source-version mate.$p "$p_version" "$hash")
 | 
						|
    echo "   git add pkgs/desktops/mate/$p" >> git-commits.txt
 | 
						|
    echo "   git commit -m \"mate.$p: $p_version_old -> $p_version\"" >> git-commits.txt
 | 
						|
    echo
 | 
						|
}
 | 
						|
 | 
						|
for d in $(ls -A --indicator-style=none); do
 | 
						|
    if [ -d $d ]; then
 | 
						|
        update_package $d
 | 
						|
    fi
 | 
						|
done
 |