adding init program
This commit is contained in:
@@ -36,6 +36,16 @@ type KeyConfig struct {
|
||||
Params map[string]string `yaml:"params"`
|
||||
}
|
||||
|
||||
// DefaultConfigPath returns the default config file path, respecting XDG_CONFIG_HOME.
|
||||
func DefaultConfigPath() string {
|
||||
base := os.Getenv("XDG_CONFIG_HOME")
|
||||
if base == "" {
|
||||
home, _ := os.UserHomeDir()
|
||||
base = filepath.Join(home, ".config")
|
||||
}
|
||||
return filepath.Join(base, "streamdeck-go", "config.yaml")
|
||||
}
|
||||
|
||||
// ModulesPath returns the path to the modules.yaml file next to the given config file.
|
||||
func ModulesPath(cfgPath string) string {
|
||||
return filepath.Join(filepath.Dir(cfgPath), "modules.yaml")
|
||||
|
||||
6
internal/defaults/defaults.go
Normal file
6
internal/defaults/defaults.go
Normal file
@@ -0,0 +1,6 @@
|
||||
package defaults
|
||||
|
||||
import _ "embed"
|
||||
|
||||
//go:embed modules.example.yaml
|
||||
var ModulesExampleYAML []byte
|
||||
58
internal/defaults/modules.example.yaml
Normal file
58
internal/defaults/modules.example.yaml
Normal file
@@ -0,0 +1,58 @@
|
||||
# Example modules.yaml — copy to ~/.config/streamdeck-go/modules.yaml
|
||||
#
|
||||
# Required Slack token scopes: users.profile:write, users:write, dnd:write
|
||||
# Export your token: export SLACK_TOKEN="xoxp-..."
|
||||
|
||||
modules:
|
||||
slack:
|
||||
set_status:
|
||||
params:
|
||||
emoji: ":speech_balloon:"
|
||||
text: "In a meeting"
|
||||
expiry: "1h"
|
||||
exec: |
|
||||
curl -s -X POST https://slack.com/api/users.profile.set \
|
||||
-H "Authorization: Bearer {{env "SLACK_TOKEN"}}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"profile":{"status_emoji":"{{.emoji}}","status_text":"{{.text}}","status_expiration":{{expiry .expiry}}}}'
|
||||
|
||||
clear_status:
|
||||
exec: |
|
||||
curl -s -X POST https://slack.com/api/users.profile.set \
|
||||
-H "Authorization: Bearer {{env "SLACK_TOKEN"}}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"profile":{"status_emoji":"","status_text":"","status_expiration":0}}'
|
||||
|
||||
set_presence:
|
||||
params:
|
||||
presence: "away"
|
||||
exec: |
|
||||
curl -s -X POST https://slack.com/api/users.setPresence \
|
||||
-H "Authorization: Bearer {{env "SLACK_TOKEN"}}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"presence":"{{.presence}}"}'
|
||||
|
||||
snooze:
|
||||
params:
|
||||
minutes: "60"
|
||||
exec: |
|
||||
curl -s -X POST https://slack.com/api/dnd.setSnooze \
|
||||
-H "Authorization: Bearer {{env "SLACK_TOKEN"}}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"num_minutes":{{.minutes}}}'
|
||||
|
||||
go_offline:
|
||||
exec: |
|
||||
curl -s -X POST https://slack.com/api/users.setPresence \
|
||||
-H "Authorization: Bearer {{env "SLACK_TOKEN"}}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"presence":"away"}' && \
|
||||
curl -s -X POST https://slack.com/api/users.profile.set \
|
||||
-H "Authorization: Bearer {{env "SLACK_TOKEN"}}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"profile":{"status_emoji":"","status_text":"","status_expiration":0}}'
|
||||
|
||||
end_snooze:
|
||||
exec: |
|
||||
curl -s -X POST https://slack.com/api/dnd.endSnooze \
|
||||
-H "Authorization: Bearer {{env "SLACK_TOKEN"}}"
|
||||
Reference in New Issue
Block a user