Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(332)

Side by Side Diff: build/sanitize-png-files.sh

Issue 15774016: Support cygwin in sanitize-png-files.sh. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/app/theme/README » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/bin/bash 1 #!/bin/bash
2 # Copyright (c) 2010 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2010 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 # The optimization code is based on pngslim (http://goo.gl/a0XHg) 6 # The optimization code is based on pngslim (http://goo.gl/a0XHg)
7 # and executes a similar pipleline to optimize the png file size. 7 # and executes a similar pipleline to optimize the png file size.
8 # The steps that require pngoptimizercl/pngrewrite/deflopt are omitted, 8 # The steps that require pngoptimizercl/pngrewrite/deflopt are omitted,
9 # but this runs all other processes, including: 9 # but this runs all other processes, including:
10 # 1) various color-dependent optimizations using optipng. 10 # 1) various color-dependent optimizations using optipng.
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 if [ $OPTIMIZE_LEVEL == 0 ]; then 298 if [ $OPTIMIZE_LEVEL == 0 ]; then
299 echo -ne "$file : skipped\r" 299 echo -ne "$file : skipped\r"
300 fi 300 fi
301 rm $tmp_file 301 rm $tmp_file
302 fi 302 fi
303 } 303 }
304 304
305 function sanitize_dir { 305 function sanitize_dir {
306 local dir=$1 306 local dir=$1
307 for f in $(find $dir -name "*.png"); do 307 for f in $(find $dir -name "*.png"); do
308 sanitize_file $f 308 if $using_cygwin ; then
309 sanitize_file $(cygpath -w $f)
310 else
311 sanitize_file $f
312 fi
309 done 313 done
310 } 314 }
311 315
312 function install_if_not_installed { 316 function install_if_not_installed {
313 local program=$1 317 local program=$1
314 dpkg -s $program > /dev/null 2>&1 318 local package=$2
319 which $program > /dev/null 2>&1
315 if [ "$?" != "0" ]; then 320 if [ "$?" != "0" ]; then
316 read -p "Couldn't find $program. Do you want to install? (y/n)" 321 if $using_cygwin ; then
317 [ "$REPLY" == "y" ] && sudo apt-get install $program 322 echo "Couldn't find $program. Please run setup.exe and install the $packa ge package."
318 [ "$REPLY" == "y" ] || exit 323 exit 1
324 else
325 read -p "Couldn't find $program. Do you want to install? (y/n)"
326 [ "$REPLY" == "y" ] && sudo apt-get install $package
327 [ "$REPLY" == "y" ] || exit
328 fi
319 fi 329 fi
320 } 330 }
321 331
322 function fail_if_not_installed { 332 function fail_if_not_installed {
323 local program=$1 333 local program=$1
324 local url=$2 334 local url=$2
325 which $program > /dev/null 335 which $program > /dev/null 2>&1
326 if [ $? != 0 ]; then 336 if [ $? != 0 ]; then
327 echo "Couldn't find $program. Please download and install it from $url" 337 echo "Couldn't find $program. Please download and install it from $url ."
328 exit 1 338 exit 1
329 fi 339 fi
330 } 340 }
331 341
332 function show_help { 342 function show_help {
333 local program=$(basename $0) 343 local program=$(basename $0)
334 echo \ 344 echo \
335 "Usage: $program [options] dir ... 345 "Usage: $program [options] dir ...
336 346
337 $program is a utility to reduce the size of png files by removing 347 $program is a utility to reduce the size of png files by removing
(...skipping 10 matching lines...) Expand all
348 slow and can take hours to process all files. 358 slow and can take hours to process all files.
349 -h Print this help text." 359 -h Print this help text."
350 exit 1 360 exit 1
351 } 361 }
352 362
353 if [ ! -e ../.gclient ]; then 363 if [ ! -e ../.gclient ]; then
354 echo "$0 must be run in src directory" 364 echo "$0 must be run in src directory"
355 exit 1 365 exit 1
356 fi 366 fi
357 367
368 if [ "$(expr substr $(uname -s) 1 6)" == "CYGWIN" ]; then
369 using_cygwin=true
370 else
371 using_cygwin=false
372 fi
373
358 OPTIMIZE_LEVEL=1 374 OPTIMIZE_LEVEL=1
359 # Parse options 375 # Parse options
360 while getopts o:h opts 376 while getopts o:h opts
361 do 377 do
362 case $opts in 378 case $opts in
363 o) 379 o)
364 if [[ ! "$OPTARG" =~ [012] ]]; then 380 if [[ ! "$OPTARG" =~ [012] ]]; then
365 show_help 381 show_help
366 fi 382 fi
367 OPTIMIZE_LEVEL=$OPTARG 383 OPTIMIZE_LEVEL=$OPTARG
368 [ "$1" == "-o" ] && shift 384 [ "$1" == "-o" ] && shift
369 shift;; 385 shift;;
370 [h?]) 386 [h?])
371 show_help;; 387 show_help;;
372 esac 388 esac
373 done 389 done
374 390
375 # Make sure we have all necessary commands installed. 391 # Make sure we have all necessary commands installed.
376 install_if_not_installed pngcrush 392 install_if_not_installed pngcrush pngcrush
377 if [ $OPTIMIZE_LEVEL == 2 ]; then 393 if [ $OPTIMIZE_LEVEL == 2 ]; then
378 install_if_not_installed optipng 394 install_if_not_installed optipng optipng
379 395
380 install_if_not_installed advancecomp 396 if $using_cygwin ; then
381 fail_if_not_installed advdef "http://advancemame.sourceforge.net/comp-download .html" 397 fail_if_not_installed advdef "http://advancemame.sourceforge.net/comp-readme .html"
398 else
399 install_if_not_installed advdef advancecomp
400 fi
382 401
383 fail_if_not_installed pngout "http://www.jonof.id.au/kenutils" 402 if $using_cygwin ; then
403 pngout_url="http://www.advsys.net/ken/utils.htm"
404 else
405 pngout_url="http://www.jonof.id.au/kenutils"
406 fi
407 fail_if_not_installed pngout $pngout_url
384 fi 408 fi
385 409
386 # Create tmp directory for crushed png file. 410 # Create tmp directory for crushed png file.
387 TMP_DIR=$(mktemp -d) 411 TMP_DIR=$(mktemp -d)
412 if $using_cygwin ; then
413 TMP_DIR=$(cygpath -w $TMP_DIR)
414 fi
388 415
389 # Make sure we cleanup temp dir 416 # Make sure we cleanup temp dir
390 trap "rm -rf $TMP_DIR" EXIT 417 trap "rm -rf $TMP_DIR" EXIT
391 418
392 # If no directories are specified, sanitize all directories. 419 # If no directories are specified, sanitize all directories.
393 DIRS=$@ 420 DIRS=$@
394 set ${DIRS:=$ALL_DIRS} 421 set ${DIRS:=$ALL_DIRS}
395 422
396 echo "Optimize level=$OPTIMIZE_LEVEL" 423 echo "Optimize level=$OPTIMIZE_LEVEL"
397 for d in $DIRS; do 424 for d in $DIRS; do
425 if $using_cygwin ; then
426 d=$(cygpath -w $d)
427 fi
398 echo "Sanitizing png files in $d" 428 echo "Sanitizing png files in $d"
399 sanitize_dir $d 429 sanitize_dir $d
400 echo 430 echo
401 done 431 done
402 432
403 # Print the results. 433 # Print the results.
404 if [ $PROCESSED_FILE == 0 ]; then 434 if [ $PROCESSED_FILE == 0 ]; then
405 echo "Did not find any files (out of $TOTAL_FILE files)" \ 435 echo "Did not find any files (out of $TOTAL_FILE files)" \
406 "that could be optimized" \ 436 "that could be optimized" \
407 "in $(date -u -d @$SECONDS +%T)s" 437 "in $(date -u -d @$SECONDS +%T)s"
408 else 438 else
409 let diff=$TOTAL_OLD_BYTES-$TOTAL_NEW_BYTES 439 let diff=$TOTAL_OLD_BYTES-$TOTAL_NEW_BYTES
410 let percent=$diff*100/$TOTAL_OLD_BYTES 440 let percent=$diff*100/$TOTAL_OLD_BYTES
411 echo "Processed $PROCESSED_FILE files (out of $TOTAL_FILE files)" \ 441 echo "Processed $PROCESSED_FILE files (out of $TOTAL_FILE files)" \
412 "in $(date -u -d @$SECONDS +%T)s" 442 "in $(date -u -d @$SECONDS +%T)s"
413 echo "Result : $TOTAL_OLD_BYTES => $TOTAL_NEW_BYTES bytes" \ 443 echo "Result : $TOTAL_OLD_BYTES => $TOTAL_NEW_BYTES bytes" \
414 "($diff bytes : $percent %)" 444 "($diff bytes : $percent %)"
415 fi 445 fi
OLDNEW
« no previous file with comments | « no previous file | chrome/app/theme/README » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698