#!/bin/sh # $Id: pref-set-boolean,v 1.2 2012/11/16 19:39:49 friedman Exp $ domain=${1%.plist} key=$2 val=$3 case $#:$key in 3:* ) : ;; [01]:* | *:true | *:false | *:[01] ) echo "Usage: ${0##*/} [domain] [key] {val}" 1>&2 exit 1 ;; esac case $val in '' | toggle ) cur=`defaults read "$domain" "$key" 2> /dev/null` case $cur in 0 | '' ) val=true ;; 1 ) val=false ;; esac ;; 0 ) val=false ;; 1 ) val=true ;; esac set -e defaults write "$domain" "$key" -boolean "$val" defaults read "$domain" "$key" | sed -e 's/0/false/' -e 's/1/true/' # Keep system files readable case $domain in /* ) plutil -convert xml1 "$domain".plist ;; esac # eof