forked from Elara6331/itd
		
	Update itctl to use api
This commit is contained in:
		| @@ -19,15 +19,12 @@ | ||||
| package get | ||||
|  | ||||
| import ( | ||||
| 	"bufio" | ||||
| 	"encoding/json" | ||||
| 	"fmt" | ||||
| 	"net" | ||||
|  | ||||
| 	"github.com/rs/zerolog/log" | ||||
| 	"github.com/spf13/cobra" | ||||
| 	"github.com/spf13/viper" | ||||
| 	"go.arsenm.dev/itd/internal/types" | ||||
| 	"go.arsenm.dev/itd/api" | ||||
| ) | ||||
|  | ||||
| // addressCmd represents the address command | ||||
| @@ -36,40 +33,14 @@ var addressCmd = &cobra.Command{ | ||||
| 	Aliases: []string{"addr"}, | ||||
| 	Short:   "Get InfiniTime's bluetooth address", | ||||
| 	Run: func(cmd *cobra.Command, args []string) { | ||||
| 		// Connect to itd UNIX socket | ||||
| 		conn, err := net.Dial("unix", viper.GetString("sockPath")) | ||||
| 		client := viper.Get("client").(*api.Client) | ||||
| 		 | ||||
| 		address, err := client.Address() | ||||
| 		if err != nil { | ||||
| 			log.Fatal().Err(err).Msg("Error dialing socket. Is itd running?") | ||||
| 		} | ||||
| 		defer conn.Close() | ||||
|  | ||||
| 		// Encode request into connection | ||||
| 		err = json.NewEncoder(conn).Encode(types.Request{ | ||||
| 			Type: types.ReqTypeBtAddress, | ||||
| 		}) | ||||
| 		if err != nil { | ||||
| 			log.Fatal().Err(err).Msg("Error making request") | ||||
| 			log.Fatal().Err(err).Msg("Error getting bluetooth address") | ||||
| 		} | ||||
|  | ||||
| 		// Read one line from connection | ||||
| 		line, _, err := bufio.NewReader(conn).ReadLine() | ||||
| 		if err != nil { | ||||
| 			log.Fatal().Err(err).Msg("Error reading line from connection") | ||||
| 		} | ||||
|  | ||||
| 		var res types.Response | ||||
| 		// Decode line into response | ||||
| 		err = json.Unmarshal(line, &res) | ||||
| 		if err != nil { | ||||
| 			log.Fatal().Err(err).Msg("Error decoding JSON data") | ||||
| 		} | ||||
|  | ||||
| 		if res.Error { | ||||
| 			log.Fatal().Msg(res.Message) | ||||
| 		} | ||||
|  | ||||
| 		// Print returned value | ||||
| 		fmt.Println(res.Value) | ||||
| 		fmt.Println(address) | ||||
| 	}, | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -19,15 +19,12 @@ | ||||
| package get | ||||
|  | ||||
| import ( | ||||
| 	"bufio" | ||||
| 	"encoding/json" | ||||
| 	"fmt" | ||||
| 	"net" | ||||
|  | ||||
| 	"github.com/rs/zerolog/log" | ||||
| 	"github.com/spf13/cobra" | ||||
| 	"github.com/spf13/viper" | ||||
| 	"go.arsenm.dev/itd/internal/types" | ||||
| 	"go.arsenm.dev/itd/api" | ||||
| ) | ||||
|  | ||||
| // batteryCmd represents the batt command | ||||
| @@ -36,40 +33,15 @@ var batteryCmd = &cobra.Command{ | ||||
| 	Aliases: []string{"batt"}, | ||||
| 	Short:   "Get battery level from InfiniTime", | ||||
| 	Run: func(cmd *cobra.Command, args []string) { | ||||
| 		// Connect to itd UNIX socket | ||||
| 		conn, err := net.Dial("unix", viper.GetString("sockPath")) | ||||
| 		if err != nil { | ||||
| 			log.Fatal().Err(err).Msg("Error dialing socket. Is itd running?") | ||||
| 		} | ||||
| 		defer conn.Close() | ||||
| 		client := viper.Get("client").(*api.Client) | ||||
|  | ||||
| 		// Encode request into connection | ||||
| 		err = json.NewEncoder(conn).Encode(types.Request{ | ||||
| 			Type: types.ReqTypeBattLevel, | ||||
| 		}) | ||||
| 		battLevel, err := client.BatteryLevel() | ||||
| 		if err != nil { | ||||
| 			log.Fatal().Err(err).Msg("Error making request") | ||||
| 		} | ||||
|  | ||||
| 		// Read one line from connection | ||||
| 		line, _, err := bufio.NewReader(conn).ReadLine() | ||||
| 		if err != nil { | ||||
| 			log.Fatal().Err(err).Msg("Error reading line from connection") | ||||
| 		} | ||||
|  | ||||
| 		var res types.Response | ||||
| 		// Deocde line into response | ||||
| 		err = json.Unmarshal(line, &res) | ||||
| 		if err != nil { | ||||
| 			log.Fatal().Err(err).Msg("Error decoding JSON data") | ||||
| 		} | ||||
|  | ||||
| 		if res.Error { | ||||
| 			log.Fatal().Msg(res.Message) | ||||
| 			log.Fatal().Err(err).Msg("Error getting battery level") | ||||
| 		} | ||||
|  | ||||
| 		// Print returned percentage | ||||
| 		fmt.Printf("%d%%\n", int(res.Value.(float64))) | ||||
| 		fmt.Printf("%d%%\n", battLevel) | ||||
| 	}, | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -19,15 +19,12 @@ | ||||
| package get | ||||
|  | ||||
| import ( | ||||
| 	"bufio" | ||||
| 	"encoding/json" | ||||
| 	"fmt" | ||||
| 	"net" | ||||
|  | ||||
| 	"github.com/rs/zerolog/log" | ||||
| 	"github.com/spf13/cobra" | ||||
| 	"github.com/spf13/viper" | ||||
| 	"go.arsenm.dev/itd/internal/types" | ||||
| 	"go.arsenm.dev/itd/api" | ||||
| ) | ||||
|  | ||||
| // heartCmd represents the heart command | ||||
| @@ -35,40 +32,15 @@ var heartCmd = &cobra.Command{ | ||||
| 	Use:   "heart", | ||||
| 	Short: "Get heart rate from InfiniTime", | ||||
| 	Run: func(cmd *cobra.Command, args []string) { | ||||
| 		// Connect to itd UNIX socket | ||||
| 		conn, err := net.Dial("unix", viper.GetString("sockPath")) | ||||
| 		if err != nil { | ||||
| 			log.Fatal().Err(err).Msg("Error dialing socket. Is itd running?") | ||||
| 		} | ||||
| 		defer conn.Close() | ||||
| 		client := viper.Get("client").(*api.Client) | ||||
|  | ||||
| 		// Encode request into connection | ||||
| 		err = json.NewEncoder(conn).Encode(types.Request{ | ||||
| 			Type: types.ReqTypeHeartRate, | ||||
| 		}) | ||||
| 		heartRate, err := client.HeartRate() | ||||
| 		if err != nil { | ||||
| 			log.Fatal().Err(err).Msg("Error making request") | ||||
| 		} | ||||
|  | ||||
| 		// Read one line from connection | ||||
| 		line, _, err := bufio.NewReader(conn).ReadLine() | ||||
| 		if err != nil { | ||||
| 			log.Fatal().Err(err).Msg("Error reading line from connection") | ||||
| 		} | ||||
|  | ||||
| 		var res types.Response | ||||
| 		// Decode line into response | ||||
| 		err = json.Unmarshal(line, &res) | ||||
| 		if err != nil { | ||||
| 			log.Fatal().Err(err).Msg("Error decoding JSON data") | ||||
| 		} | ||||
|  | ||||
| 		if res.Error { | ||||
| 			log.Fatal().Msg(res.Message) | ||||
| 			log.Fatal().Err(err).Msg("Error getting heart rate") | ||||
| 		} | ||||
|  | ||||
| 		// Print returned BPM | ||||
| 		fmt.Printf("%d BPM\n", int(res.Value.(float64))) | ||||
| 		fmt.Printf("%d BPM\n", heartRate) | ||||
| 	}, | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -19,16 +19,12 @@ | ||||
| package get | ||||
|  | ||||
| import ( | ||||
| 	"bufio" | ||||
| 	"encoding/json" | ||||
| 	"fmt" | ||||
| 	"net" | ||||
|  | ||||
| 	"github.com/mitchellh/mapstructure" | ||||
| 	"github.com/rs/zerolog/log" | ||||
| 	"github.com/spf13/cobra" | ||||
| 	"github.com/spf13/viper" | ||||
| 	"go.arsenm.dev/itd/internal/types" | ||||
| 	"go.arsenm.dev/itd/api" | ||||
| ) | ||||
|  | ||||
| // steps.goCmd represents the steps.go command | ||||
| @@ -36,42 +32,11 @@ var motionCmd = &cobra.Command{ | ||||
| 	Use:   "motion", | ||||
| 	Short: "Get motion values from InfiniTime", | ||||
| 	Run: func(cmd *cobra.Command, args []string) { | ||||
| 		// Connect to itd UNIX socket | ||||
| 		conn, err := net.Dial("unix", viper.GetString("sockPath")) | ||||
| 		if err != nil { | ||||
| 			log.Fatal().Err(err).Msg("Error dialing socket. Is itd running?") | ||||
| 		} | ||||
| 		defer conn.Close() | ||||
| 		client := viper.Get("client").(*api.Client) | ||||
|  | ||||
| 		// Encode request into connection | ||||
| 		err = json.NewEncoder(conn).Encode(types.Request{ | ||||
| 			Type: types.ReqTypeMotion, | ||||
| 		}) | ||||
| 		motionVals, err := client.Motion() | ||||
| 		if err != nil { | ||||
| 			log.Fatal().Err(err).Msg("Error making request") | ||||
| 		} | ||||
|  | ||||
| 		// Read one line from connection | ||||
| 		line, _, err := bufio.NewReader(conn).ReadLine() | ||||
| 		if err != nil { | ||||
| 			log.Fatal().Err(err).Msg("Error reading line from connection") | ||||
| 		} | ||||
|  | ||||
| 		var res types.Response | ||||
| 		// Decode line into response | ||||
| 		err = json.Unmarshal(line, &res) | ||||
| 		if err != nil { | ||||
| 			log.Fatal().Err(err).Msg("Error decoding JSON data") | ||||
| 		} | ||||
|  | ||||
| 		var motionVals types.MotionValues | ||||
| 		err = mapstructure.Decode(res.Value, &motionVals) | ||||
| 		if err != nil { | ||||
| 			log.Fatal().Err(err).Msg("Error decoding motion values") | ||||
| 		} | ||||
|  | ||||
| 		if res.Error { | ||||
| 			log.Fatal().Msg(res.Message) | ||||
| 			log.Fatal().Err(err).Msg("Error getting motion values") | ||||
| 		} | ||||
|  | ||||
| 		if viper.GetBool("shell") { | ||||
|   | ||||
| @@ -19,15 +19,12 @@ | ||||
| package get | ||||
|  | ||||
| import ( | ||||
| 	"bufio" | ||||
| 	"encoding/json" | ||||
| 	"fmt" | ||||
| 	"net" | ||||
|  | ||||
| 	"github.com/rs/zerolog/log" | ||||
| 	"github.com/spf13/cobra" | ||||
| 	"github.com/spf13/viper" | ||||
| 	"go.arsenm.dev/itd/internal/types" | ||||
| 	"go.arsenm.dev/itd/api" | ||||
| ) | ||||
|  | ||||
| // steps.goCmd represents the steps.go command | ||||
| @@ -35,40 +32,15 @@ var stepsCmd = &cobra.Command{ | ||||
| 	Use:   "steps", | ||||
| 	Short: "Get step count from InfiniTime", | ||||
| 	Run: func(cmd *cobra.Command, args []string) { | ||||
| 		// Connect to itd UNIX socket | ||||
| 		conn, err := net.Dial("unix", viper.GetString("sockPath")) | ||||
| 		if err != nil { | ||||
| 			log.Fatal().Err(err).Msg("Error dialing socket. Is itd running?") | ||||
| 		} | ||||
| 		defer conn.Close() | ||||
| 		client := viper.Get("client").(*api.Client) | ||||
|  | ||||
| 		// Encode request into connection | ||||
| 		err = json.NewEncoder(conn).Encode(types.Request{ | ||||
| 			Type: types.ReqTypeStepCount, | ||||
| 		}) | ||||
| 		stepCount, err := client.StepCount() | ||||
| 		if err != nil { | ||||
| 			log.Fatal().Err(err).Msg("Error making request") | ||||
| 		} | ||||
|  | ||||
| 		// Read one line from connection | ||||
| 		line, _, err := bufio.NewReader(conn).ReadLine() | ||||
| 		if err != nil { | ||||
| 			log.Fatal().Err(err).Msg("Error reading line from connection") | ||||
| 		} | ||||
|  | ||||
| 		var res types.Response | ||||
| 		// Decode line into response | ||||
| 		err = json.Unmarshal(line, &res) | ||||
| 		if err != nil { | ||||
| 			log.Fatal().Err(err).Msg("Error decoding JSON data") | ||||
| 		} | ||||
|  | ||||
| 		if res.Error { | ||||
| 			log.Fatal().Msg(res.Message) | ||||
| 			log.Fatal().Err(err).Msg("Error getting step count") | ||||
| 		} | ||||
|  | ||||
| 		// Print returned BPM | ||||
| 		fmt.Printf("%d Steps\n", int(res.Value.(float64))) | ||||
| 		fmt.Printf("%d Steps\n", stepCount) | ||||
| 	}, | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user