#!/usr/bin/env python
"""
TIFF image pyramid maker helper script for Tide
Usage: pyramidmaker --help
"""

import argparse
import os
import subprocess
import shlex
import sys

def find_executable(executable):
    """
    Tries to find 'executable' in the directories listed in 'PATH'.
    Returns the complete filename or None if not found.
    """
    path = os.environ['PATH']
    paths = path.split(os.pathsep)
    base, ext = os.path.splitext(executable)

    if(sys.platform == 'win32' or os.name == 'os2') and (ext != '.exe'):
        executable = executable + '.exe'

    if not os.path.isfile(executable):
        for p in paths:
            f = os.path.join(p, executable)
            if os.path.isfile(f):
                # the file exists, we have a shot at spawn working
                return f
        return None
    else:
        return executable

def locate_binary(exec_name):
    binary = find_executable(exec_name)
    if binary is None:
        print exec_name + " executable not found"
        exit(-1)
    return binary

parser = argparse.ArgumentParser()
parser.add_argument("source", help="The source image to convert")
parser.add_argument("target", help="The target .tiff image pyramid file to create")
args = parser.parse_args()

CONVERT_BIN = locate_binary("convert")
START_CMD = "%s %s -monitor -define tiff:tile-geometry=512x512 -compress jpeg 'ptif:%s'" % (CONVERT_BIN, args.source, args.target)

print(START_CMD)
subprocess.call(shlex.split(START_CMD))
