#!/usr/bin/python

import sys
import os
import argparse

import sm.splitmedia

def _get_arguments():
    parser = \
        argparse.ArgumentParser(
            description='Split the media file into multiple parts by times')
    
    parser.add_argument(
        'media_filepath', 
        help="File-path of the media file")
    
    parser.add_argument(
        'list_filepath', 
        help="File-path of the list")

    parser.add_argument(
        'output_path',
        help="Output path")

    args = parser.parse_args()
    return args

def _main():
    args = _get_arguments()

    media_filepath = os.path.expanduser(args.media_filepath)
    list_filepath = os.path.expanduser(args.list_filepath)
    output_path = os.path.expanduser(args.output_path)

    if os.path.exists(media_filepath) is False:
        print("Media file does not exist.")
        sys.exit(1)

    if os.path.exists(list_filepath) is False:
        print("List file does not exist.")
        sys.exit(2)

    if os.path.exists(output_path) is False:
        os.makedirs(output_path)

    (_, ext) = os.path.splitext(media_filepath)

    if ext == '':
        print("Media file needs to have a filename extension.")
        sys.exit(3)

    offsets = sm.splitmedia.process_list(list_filepath)
    sm.splitmedia.split_media(offsets, media_filepath, ext, output_path)

if __name__ == '__main__':
    _main()
