---
--- 时间同步,开启后在系统或屏幕唤醒后自动同步一次时间
--- Created by sugood(https://github.com/sugood).
--- DateTime: 2020/10/23 11:12
---

function execTimeSync()
    local shell_command = 'expect ~/.hammerspoon/timesync/timesync.sh '.. config[1].rootPassword
    result = table.pack(hs.execute(shell_command,true))
    print(result[1])
end
function caffeinateCallback(eventType)
    if (eventType == hs.caffeinate.watcher.screensDidSleep) then
      print("screensDidSleep")
    elseif (eventType == hs.caffeinate.watcher.screensDidWake) then
        execTimeSync()
        hs.reload()
      print("screensDidWake")
    elseif (eventType == hs.caffeinate.watcher.systemDidWake) then
        execTimeSync()
        hs.reload()
        print("systemDidWake")
    elseif (eventType == hs.caffeinate.watcher.screensDidLock) then
      print("screensDidLock")
    elseif (eventType == hs.caffeinate.watcher.screensDidUnlock) then
      print("screensDidUnlock")
    end
end

function initData()
    if config ~=nil and config[1].isSyncTime == 'on' then
        caffeinateWatcher = hs.caffeinate.watcher.new(caffeinateCallback)
        caffeinateWatcher:start()

        -- 添加片段(按下快捷键时做一个复制操作,并记录复制的内容到片段列表中)
        hs.hotkey.bind(hyperCmd, "T", function ()
            if hs.json.read(configPath) ~= nil then
                config = hs.json.read(configPath)
            end
            if(stringIsEmpty(config[1].rootPassword)) then
                local result,subText = hs.dialog.textPrompt("输入开机密码", "时间同步操作需要开机密码", '', "确定", "取消", true)
                if result == "确定" then
                    if(stringIsEmpty(subText) == false) then
                        config[1].rootPassword = subText
                        hs.json.write(config,configPath, true, true)
                        execTimeSync()
                        hs.alert.show('同步时间')
                    end
                end
            else
                execTimeSync()
                hs.alert.show('同步时间')
            end
        end)
    end
end
-- 初始化,读取本地数据
initData()