# HG changeset patch # User Aleksej Bobylev # Date 1479315839 -7200 # Node ID b89e94b119fe4e5045a77c4087af80dbdbaf4528 # Parent f2cf0de52bd3b8e6a8a4b11b698076d78e1a5a26 Up sdft (161116) diff -r f2cf0de52bd3 -r b89e94b119fe sdft/receipt --- a/sdft/receipt Tue Nov 15 15:25:39 2016 +0100 +++ b/sdft/receipt Wed Nov 16 19:03:59 2016 +0200 @@ -1,7 +1,7 @@ # SliTaz package receipt. PACKAGE="sdft" -VERSION="151108" +VERSION="161116" CATEGORY="development" SHORT_DESC="SliTaz Desktop Files Tools" MAINTAINER="al.bobylev@gmail.com" diff -r f2cf0de52bd3 -r b89e94b119fe sdft/stuff/sdft --- a/sdft/stuff/sdft Tue Nov 15 15:25:39 2016 +0100 +++ b/sdft/stuff/sdft Wed Nov 16 19:03:59 2016 +0200 @@ -1,15 +1,15 @@ #!/bin/sh # sdft - SliTaz Desktop Files Tools -# - tools for edit and pretty print .desktop files for SliTaz GNU/Linux -# Aleksej Bobylev , 2014-2015 +# - tools for editing and pretty printing .desktop files for SliTaz Linux +# Aleksej Bobylev , 2014-2016 -VERSION="151108" +VERSION="161116" ### functions ### usage() { - cat << "EOT" + cat < $WORKING/rest shift -while [ "x$1" != "x" ]; do +while [ -n "$1" ]; do case "$1" in - -a) shift; echo "$1" >> $WORKING/section; shift ;; - -r) shift; extract "$1" > /dev/null; shift ;; - -s) shift; extract "${1%%=*}" > /dev/null; echo "$1" >> $WORKING/section; shift ;; - -g) shift; extract_no_repeat 'GenericName' > /dev/null ;; - -x) shift; extract 'X-.*' > /dev/null ;; - -t) shift; extract 'Terminal' > /dev/null ;; - -tf) shift; sed -i '/^Terminal=false$/d' $WORKING/section ;; - -te) shift; extract 'TryExec' > /dev/null ;; - -o) shift; REMOVE_OTHER="yes" ;; - -i) shift; IN_PLACE="yes" ;; - *) echo "Unknown command '$1'" >&2; shift ;; + -a) shift; echo "$1" >> $WORKING/section; shift ;; + -r) shift; extract "$1" >/dev/null; shift ;; + -s) shift; extract "${1%%=*}" >/dev/null; echo "$1" >> $WORKING/section; shift ;; + -g) shift; extract_no_repeat 'GenericName' >/dev/null ;; + -x) shift; extract 'X-.*' >/dev/null ;; + -t) shift; extract 'Terminal' >/dev/null ;; + -te) shift; extract 'TryExec' >/dev/null ;; + -tf) shift; sed -i '/^Terminal=false$/d' $WORKING/section ;; + -o) shift; REMOVE_OTHER='yes' ;; + -k) shift; klocales="$1"; shift ;; + -i) shift; IN_PLACE='yes' ;; + *) echo "Unknown command '$1'" >&2; shift ;; esac done { echo "[$SECTION]" - extract 'Encoding' > /dev/null - extract 'Version' > /dev/null + extract 'Encoding' >/dev/null + extract 'Version' >/dev/null extract 'Type' extract_no_repeat 'Name' extract_no_repeat 'GenericName' @@ -105,16 +115,30 @@ extract 'StartupNotify' extract 'TryExec' extract 'Exec' - extract 'Icon'; extract 'Icon[.*]' > /dev/null + extract 'Icon' + extract 'Icon[.*]' >/dev/null extract 'Categories' | sed 's|Application;||' | semicolon extract 'NoDisplay' extract 'MimeType' | semicolon cat $WORKING/section | sort | sed -n '/^$/!p' - [ "x$REMOVE_OTHER" != "xyes" ] && cat $WORKING/rest | sed -n '/^$/!p' + [ "$REMOVE_OTHER" != 'yes' ] && cat $WORKING/rest | sed -n '/^$/!p' } > $WORKING/new -if [ "x$IN_PLACE" == "xyes" ]; then + +if [ -n "$klocales" ]; then + # Existing locales from Name, GenericName and Comment + elocales=" $(sed -n 's%\(Name\|Comment\)\[\([a-zA-Z@_]*\)\].*%\2%p' $WORKING/new | sort -u | tr '\n' ' ') " + for klocale in $klocales; do + elocales=${elocales//$klocale} + done + for elocale in $elocales; do + sed -i "/\[$elocale\]/d" $WORKING/new + done +fi + + +if [ "$IN_PLACE" == 'yes' ]; then cp -f $WORKING/new "$DESKTOP" else cat $WORKING/new