mirror of
https://github.com/aditya-K2/gspt.git
synced 2026-01-09 13:58:05 -05:00
New gh-action that auto generates default configuration from config package
This commit is contained in:
30
.github/workflows/workflow.yaml
vendored
Normal file
30
.github/workflows/workflow.yaml
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
name: Generate CONFIG.md
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "master" ]
|
||||
paths:
|
||||
- config/**
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
default_conf:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v3
|
||||
with:
|
||||
go-version: 1.19
|
||||
|
||||
- name: Clean up previous CONFIG.md
|
||||
run: rm extras/CONFIG.md
|
||||
|
||||
- name: Generate CONFIG.md
|
||||
run: go run extras/generate.go
|
||||
|
||||
- name: Commit CONFIG.md
|
||||
uses: stefanzweifel/git-auto-commit-action@v4
|
||||
with:
|
||||
commit_message: Auto-generated CONFIG.md
|
||||
81
extras/generate.go
Normal file
81
extras/generate.go
Normal file
@@ -0,0 +1,81 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/aditya-K2/gspt/config"
|
||||
"github.com/gdamore/tcell/v2"
|
||||
"gopkg.in/yaml.v2"
|
||||
)
|
||||
|
||||
var (
|
||||
fileName = "extras/CONFIG.md"
|
||||
f, oerr = os.OpenFile(fileName, os.O_CREATE|os.O_WRONLY, 0644)
|
||||
)
|
||||
|
||||
func write(body string) {
|
||||
if oerr != nil {
|
||||
panic(oerr)
|
||||
}
|
||||
if _, err := f.Write([]byte(body)); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
func runes() string {
|
||||
_s := ""
|
||||
for k := range config.RuneKeys {
|
||||
_s += fmt.Sprintf("%c, ", k)
|
||||
}
|
||||
return strings.TrimSuffix(_s, ", ")
|
||||
}
|
||||
|
||||
func main() {
|
||||
// Ready
|
||||
_m := map[tcell.Key]string{}
|
||||
_ma := []string{"a-z", "A-Z", "ctrl-a - ctrl-z", "0-9", runes()}
|
||||
for k, v := range config.M {
|
||||
_m[v] = k
|
||||
if !strings.HasPrefix(k, "ctrl-") {
|
||||
_ma = append(_ma, k)
|
||||
}
|
||||
}
|
||||
|
||||
config.Config.CacheDir = "$XDG_CACHE_HOME"
|
||||
c, err := yaml.Marshal(config.Config)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
s := ""
|
||||
for k, v := range config.DefaultMappings {
|
||||
s += fmt.Sprintf(" %s:\n", k)
|
||||
for x, y := range v {
|
||||
if x.R != 0 {
|
||||
s += fmt.Sprintf(" %s: \"%s\"\n", y, string(x.R))
|
||||
} else {
|
||||
s += fmt.Sprintf(" %s: \"%s\"\n", y, _m[x.K])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_s := "|||\n|--|--|\n"
|
||||
for k := 0; k < len(_ma)-1; k++ {
|
||||
if k != len(_ma)-1 {
|
||||
_s += "|" + _ma[k]
|
||||
k++
|
||||
_s += "|" + _ma[k] + "|\n"
|
||||
}
|
||||
}
|
||||
|
||||
// Write
|
||||
write("***Auto generated*** (If you find any bugs please open an issue)\n")
|
||||
|
||||
write("# Default Configuration\n```yml\n" + string(c) + "mappings:\n" + s + "```\n")
|
||||
|
||||
write("# Available Keys\n" + _s)
|
||||
|
||||
fmt.Println("GENERATED CONFIG.MD")
|
||||
}
|
||||
1
go.mod
1
go.mod
@@ -12,6 +12,7 @@ require (
|
||||
github.com/zmb3/spotify/v2 v2.3.1
|
||||
gitlab.com/diamondburned/ueberzug-go v0.0.0-20190521043425-7c15a5f63b06
|
||||
golang.org/x/oauth2 v0.4.0
|
||||
gopkg.in/yaml.v2 v2.2.2
|
||||
)
|
||||
|
||||
require (
|
||||
|
||||
3
go.sum
3
go.sum
@@ -47,8 +47,6 @@ github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc/go.mod h1:IVnqGOEym
|
||||
github.com/BurntSushi/xgbutil v0.0.0-20160919175755-f7c97cef3b4e/go.mod h1:uw9h2sd4WWHOPdJ13MQpwK5qYWKYDumDqxWWIknEQ+k=
|
||||
github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046 h1:O/r2Sj+8QcMF7V5IcmiE2sMFV2q3J47BEirxbXJAdzA=
|
||||
github.com/BurntSushi/xgbutil v0.0.0-20190907113008-ad855c713046/go.mod h1:uw9h2sd4WWHOPdJ13MQpwK5qYWKYDumDqxWWIknEQ+k=
|
||||
github.com/aditya-K2/tview v0.0.0-20230417172428-943cc9d29a97 h1:IKjmchC4CMzAM+vVIqqoqB4KTMzrcef2c+uSmemdOis=
|
||||
github.com/aditya-K2/tview v0.0.0-20230417172428-943cc9d29a97/go.mod h1:4mQQQ0q5F3GvKXtwNkViuvng/bNxt3Y3c95rGlULlv4=
|
||||
github.com/aditya-K2/tview v0.0.0-20230417172909-ddde9f885af5 h1:TrvopcMV90y1ztRNsmGsglbHeBQB/w2+FWG0r1A8xR4=
|
||||
github.com/aditya-K2/tview v0.0.0-20230417172909-ddde9f885af5/go.mod h1:4mQQQ0q5F3GvKXtwNkViuvng/bNxt3Y3c95rGlULlv4=
|
||||
github.com/aditya-K2/utils v0.0.0-20230416002345-2f8487d8c111 h1:nRszo2Av5WTgmZa3TX86Ohs3Fi73YOgMEKbmTZ3CJoE=
|
||||
@@ -527,6 +525,7 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8
|
||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
|
||||
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
|
||||
Reference in New Issue
Block a user