Skip to content

Instantly share code, notes, and snippets.

View xNok's full-sized avatar

Alexandre Couedelo xNok

View GitHub Profile
func ConnectToSlackViaSocketmode() (*socketmode.Client, error) {
appToken := os.Getenv("SLACK_APP_TOKEN")
if appToken == "" {
return nil, errors.New("SLACK_APP_TOKEN must be set")
}
if !strings.HasPrefix(appToken, "xapp-") {
return nil, errors.New("SLACK_APP_TOKEN must have the prefix \"xapp-\".")
}
func GreetingMessage(user string) []slack.Block {
// we need a stuct to hold template arguments
type args struct {
User string
}
tpl := renderTemplate(greetingAssets, "greetingViews/greeting.json", args{User: user})
// we convert the view into a message struct
view := slack.Msg{}
str, _ := ioutil.ReadAll(&tpl)
json.Unmarshal(str, &view)
func renderTemplate(fs fs.FS, file string
, args interface{}) bytes.Buffer {
var tpl bytes.Buffer
// read the block-kit definition as a go template
t, err := template.ParseFS(fs, file)
if err != nil {
panic(err)
}
// render the template using provided datas
err = t.Execute(&tpl, args)
func GreetingMessage(user string) []slack.Block {
// [TODO]: parse the template `greetingViews/greeting.json`
view := slack.Msg{}
// [TODO]: unmarshal the template into slack.Msg{}
return view.Blocks.BlockSet
}
import (
"embed"
)
//go:embed greetingViews/*
var greetingAssets embed.FS
import _ "embed"
//go:embed hello.txt
var s strings
//go:embed hello.txt
var b []bytes
@startuml
actor USER as U
participant APP as A
participant SLACK as S
== App Home ==
autonumber
U -> S: Opens App Home Open
S -> A ++ #DarkSalmon: `app_home_opened` event triggered
from diagrams import Diagram, Cluster, Edge
from diagrams.custom import Custom
from diagrams.onprem.compute import Server
from diagrams.onprem.monitoring import Grafana, Prometheus
from diagrams.onprem.container import Docker
from diagrams.onprem.database import Mongodb
from diagrams.onprem.iac import Ansible
from diagrams.onprem.ci import GithubActions
with Diagram(name="Startup infra for small self hosted project", show=False):
@xNok
xNok / pnd2slides.js
Created August 28, 2019 22:53
prepare json file to configure slideshow from all the png in a folder
var fs = require('fs');
// command usage validation
if (process.argv.length <= 3) {
console.log("Usage: " + __filename + " path/to/directory path/to/output");
process.exit(-1);
}
var path = process.argv[2];
var output = process.argv[3];
@xNok
xNok / psd2png.js
Last active January 31, 2024 20:17
convert all psd files in a folder into png files
// https://gist.github.com/xNok/74934a0c1c8500bfe84c8de6e92386cd
var PSD = require('psd');
var fs = require('fs');
// command usage validation
if (process.argv.length <= 2) {
console.log("Usage: " + __filename + " path/to/directory/ path/to/output_dir/");
process.exit(-1);
}