#!/usr/bin/env python

import json
import os
import webbrowser
import sys


def main():
    config = get_config()

    url = "{}/job/{}/".format(config["url"], get_job_name())
    webbrowser.open_new_tab(url)


def get_config():
    # Kind of robust config builder, getter, in case it grows later
    path = os.path.join(os.path.expanduser("~"), ".open-jenkinsrc")

    try:
        with open(path) as fin:
            return json.load(fin)
    except IOError:
        return build_config(path)
    except FileNotFoundError:
        return build_config(path)


def build_config(path):
    c = {}
    try:
        if sys.version_info[0] >= 3:
            get_input = input
        else:
            get_input = raw_input
        c["url"] = get_input("Enter Jenkins server base url: ")
    except KeyboardInterrupt:
        exit(1)

    with open(path, "w+") as fout:
        json.dump(c, fout)
    print("written to {}, edit at your own annoyance.".format(path))

    return c

def get_job_name():
    return os.path.split(os.getcwd())[-1]


if __name__ == "__main__":
    main()
