Skip to main content
Sign in
Snippets Groups Projects
Select Git revision
  • 7114ebc304ddb80c7a2a41da70888d8a5f168cfe
  • main default protected
2 results

clicks.go

Blame
  • user avatar
    Kevin Lyda authored
    7114ebc3
    History
    clicks.go 1.00 KiB
    // Package bar handles the main program for i3going-on.
    // Copyright (C) 2022 Kevin Lyda <kevin@lyda.ie>
    package bar
    
    import (
    	"bufio"
    	"fmt"
    	"os"
    	"strings"
    
    	"gitlab.ie.suberic.net/kevin/i3going-on/modules"
    	"gopkg.in/yaml.v2"
    )
    
    //{"button":1,"modifiers":[],"x":1952,"y":1144,"relative_x":62,"relative_y":14,"width":112,"height":22}
    func handleCommands(clicks chan modules.Click) {
    	logger, _ := os.Create("/tmp/i3going-on.log")
    
    	stdin := bufio.NewReader(os.Stdin)
    	for {
    		logger.WriteString("Looking for a click...\n")
    
    		object, err := stdin.ReadString('}')
    		if err != nil {
    			continue
    		}
    		objReader := strings.NewReader(strings.Trim(object, ","))
    		clickParser := yaml.NewDecoder(objReader)
    		click := modules.Click{}
    		err = clickParser.Decode(&click)
    		if err != nil {
    			logger.WriteString(fmt.Sprintf("Error on click: %s\n", err))
    			clicks <- modules.Click{
    				Name: fmt.Sprintf("ERROR: %s", err),
    			}
    			continue
    		}
    		logger.WriteString(fmt.Sprintf("Error on click: %s\n", err))
    		clicks <- click
    	}
    }