# Path: mod/log.py
# RED = '\033[1;31m'
# GREEN = '\033[1;32m'
# YELLOW = '\033[1;33m'
# BLUE = '\033[1;36m'
# DEF = '\033[0;0m'
# def error(msg, fatal=True) :
# def warn(msg) :
# def ok(item, status) :
# def failed(item, status) :
# def optional(item, status) :
# def info(msg) :
# def colored(color, msg) :
# 
# Path: mod/util.py
# def fix_path(path) :
# def get_workspace_dir(fips_dir) :
# def get_project_dir(fips_dir, proj_name) :
# def get_build_root_dir(fips_dir, proj_name):
# def get_deploy_root_dir(fips_dir, proj_name):
# def get_build_dir(fips_dir, proj_name, cfg) :
# def get_deploy_dir(fips_dir, proj_name, cfg) :
# def get_fips_dir(proj_dir, name):
# def get_configs_dir(proj_dir):
# def get_verbs_dir(proj_dir):
# def get_generators_dir(proj_dir):
# def get_toolchains_dir(proj_dir):
# def get_giturl_from_url(url) :
# def get_gitbranch_from_url(url) :
# def get_project_name_from_url(url) :
# def get_project_name_from_dir(proj_dir) :
# def load_fips_yml(proj_dir) :
# def lookup_target_cwd(proj_dir, target) :
# def is_valid_project_dir(proj_dir) :
# def ensure_valid_project_dir(proj_dir) :
# def is_git_url(url) :
# def confirm(question) :
# def url_download_hook(count, block_size, total_size) :
# def get_host_platform() :
# def get_cfg_target_list(fips_dir, proj_dir, cfg):
# def get_cfg_headersdirs_by_target(fips_dir, proj_dir, cfg):
# def get_cfg_defines_by_target(fips_dir, proj_dir, cfg):
# def get_num_cpucores():


import subprocess
import platform
from mod import log,util
def check_exists(fips_dir) :
    try:
        if platform.system() == 'Windows':
            subprocess.check_output(['http-server', '-h'], shell=True)
        else:
            subprocess.check_output(['http-server', '-h'])
        return True
    except (OSError, subprocess.CalledProcessError):
        return False

#-------------------------------------------------------------------------------
def run(fips_dir, proj_dir, target_name, target_cwd):
    if not check_exists(fips_dir):
        log.error("http-server tool not found (npm install http-server -g)")
        return

    html_name = target_name + '.html'
    if util.get_host_platform() == 'osx' :
        try :
            subprocess.call(
                'open http://localhost:8080/{} ; http-server -c-1 -g'.format(html_name),
                cwd = target_cwd, shell=True)
        except KeyboardInterrupt :
            return
    elif util.get_host_platform() == 'win' :
        try :
            cmd = 'cmd /c start http://localhost:8080/{} && http-server -c-1 -g'.format(html_name)
            subprocess.call(cmd, cwd = target_cwd, shell=True)
        except KeyboardInterrupt :
            return

# Path: mod/log.py
# RED = '\033[1;31m'
# GREEN = '\033[1;32m'
# YELLOW = '\033[1;33m'
# BLUE = '\033[1;36m'
# DEF = '\033[0;0m'
# def error(msg, fatal=True) :
# def warn(msg) :
# def ok(item, status) :
# def failed(item, status) :
# def optional(item, status) :
# def info(msg) :
# def colored(color, msg) :
# 
# Path: mod/util.py
# def fix_path(path) :
# def get_workspace_dir(fips_dir) :
# def get_project_dir(fips_dir, proj_name) :
# def get_build_root_dir(fips_dir, proj_name):
# def get_deploy_root_dir(fips_dir, proj_name):
# def get_build_dir(fips_dir, proj_name, cfg) :
# def get_deploy_dir(fips_dir, proj_name, cfg) :
# def get_fips_dir(proj_dir, name):
# def get_configs_dir(proj_dir):
# def get_verbs_dir(proj_dir):
# def get_generators_dir(proj_dir):
# def get_toolchains_dir(proj_dir):
# def get_giturl_from_url(url) :
# def get_gitbranch_from_url(url) :
# def get_project_name_from_url(url) :
# def get_project_name_from_dir(proj_dir) :
# def load_fips_yml(proj_dir) :
# def lookup_target_cwd(proj_dir, target) :
# def is_valid_project_dir(proj_dir) :
# def ensure_valid_project_dir(proj_dir) :
# def is_git_url(url) :
# def confirm(question) :
# def url_download_hook(count, block_size, total_size) :
# def get_host_platform() :
# def get_cfg_target_list(fips_dir, proj_dir, cfg):
# def get_cfg_headersdirs_by_target(fips_dir, proj_dir, cfg):
# def get_cfg_defines_by_target(fips_dir, proj_dir, cfg):
# def get_num_cpucores():


# Path: mod/tools/httpserver.py
import subprocess
import platform
from mod import log,util

def check_exists(fips_dir) :
    try:
        if platform.system() == 'Windows':
            subprocess.check_output(['http-server', '-h'], shell=True)
        else:
            subprocess.check_output(['http-server', '-h'])
        return True
    except (OSError, subprocess.CalledProcessError):
        return False

#-------------------------------------------------------------------------------
def run(fips_dir, proj_dir, target_name, target_cwd):
    if not check_exists(fips_dir):
        log.error("http-server tool not found (npm install http-server -g)")
        return

    html_name = target_name + '.html'
    if util.get_host_platform() == 'osx' :
        try :
            subprocess.call(
                'open http://localhost:8080/{} ; http-server -c-1 -g'.format(html_name),
                cwd = target_cwd, shell=True)
        except KeyboardInterrupt :
            return
    elif util.get_host_platform() == 'win' :
        try :
            cmd = 'cmd /c start http://localhost:8080/{} && http-server -c-1 -g'.format(html_name)
            subprocess.call(cmd, cwd = target_cwd, shell=True)
        except KeyboardInterrupt :
            return

    elif util.get_host_platform() == 'linux' :