#!/usr/bin/env python
from __future__ import print_function
from os.path import isdir, join as path_join, realpath
from shutil import move as move_file, rmtree
from tempfile import mkdtemp
import argparse
import sys

from ipa import IPAFile

if __name__ == '__main__':
    parser = argparse.ArgumentParser()

    parser.add_argument('ipa', metavar='IPA_FILE', nargs=1)
    parser.add_argument('-d', '--destination', metavar='DEST', default='.', required=False)

    args = parser.parse_args()
    dest = realpath(args.destination)

    if not isdir(dest):
        print('Error: Destination is expected to be a directory', file=sys.stderr)
        sys.exit(1)

    with IPAFile(args.ipa[0]) as fp:
        temp_dir = mkdtemp(prefix='ipa-unzip-')
        bin_name = fp.get_bin_name(full=True)

        fp.extract(bin_name, temp_dir)

    temp_loc = path_join(temp_dir, bin_name)

    move_file(temp_loc, dest)
    rmtree(temp_dir)
