#!/usr/bin/env python
"""
This script can convert output from Conky, Python, Bash, Lua, and others
as long as the string contains generic color format `{color_123456}` that
would be converted into specialized color format passed by an argument.

Example: conky | ~/f2f --py3status
Example: echo '{color_00ffff}Hello {color_00ff00}world!' | ~/f2f --lemonbar
"""
from sys import argv, stdin, exit

if __name__ == "__main__":

    if '--tmux' in argv:
        format_string = '#[fg=#{color},bright]{output}'
    elif '--py3status' in argv:
        format_string = '[\?color=#{color}&show {output}]'
    elif '--lemonbar' in argv:
        format_string = '%{{F#{color}}}{output}'
    elif '--xmobar' in argv:
        format_string = '<fc=#{color}>{output}'
    else:
        exit('Missing argument')

    output_string = ''
    for line in stdin:
        output_string += ''.join(line.splitlines())

    output_list = output_string.split('{color_')[1::1]

    output_string = ''
    for malformed_string in output_list:
        end = malformed_string.find('}')
        color = malformed_string[:end]
        output = malformed_string[1 + end:]
        output_string += format_string.format(
            color=color, output=output
        )

    print(output_string)
