#!/bin/bash
# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

### Takes a screenshot and copies it to the host.

## usage: fx screenshot [--trim] [--png] [-o <screencap_file>]
##
## This command invokes Fuchsia's screencap tool to create a screenshot.
## The result is written to screencap.ppm or screencap.png. To write to
## another filename, use the -o parameter.
## The --trim and --png commands require ImageMagick to be installed.
## Unrecognized parameters will be passed to ssh.
##
## Example usage:
##
##   fx screenshot --trim --png

set -e

source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"/lib/vars.sh
fx-config-read

OUT=screencap.ppm
png_command=cat
enable_trim=0
while [[ $# -ne 0 ]]; do
  case $1 in
  -h|--help)
    fx-command-help
    exit 0
    ;;
  -o|--out)
    shift
    OUT=$1
    ;;
  --png)
    OUT=${OUT%.*}.png
    png_command=pnmtopng
    ;;
  --trim)
    enable_trim=1
    ;;
  *)
    break
    ;;
  esac
  shift
done

fx-command-run shell "$@" screencap | $png_command > "$OUT"
if [[ $enable_trim -ne 0 ]]; then
  mogrify -trim +repage $OUT
fi

