local bluetooth = {}

local DEFAULT_SIGNAL = "bluetooth::value"

local blue = [[ bluetoothctl show | grep "Powered:" ]]

--- callback: function(stat)
function bluetooth.get(callback)
	awful.spawn.easy_async_with_shell(blue, function(out)
		if out == "" then
			callback("no")
		else
			local val = gears.string.split(out, " ")
			callback(val[2])
		end
	end)
end

function bluetooth.emit(name)
	bluetooth.get(function(...)
		awesome.emit_signal(name or DEFAULT_SIGNAL, ...)
	end)
end

function bluetooth.register_signal(signal_name, update_interval)
	gears.timer {
		timeout = update_interval or 5,
		call_now = true,
		autostart = true,
		callback = function() bluetooth.emit(signal_name) end
	}
end

return bluetooth
