Skip to content

Instantly share code, notes, and snippets.

Avatar
💭
Working #golang @binalyze

Erhan Yakut yakuter

💭
Working #golang @binalyze
View GitHub Profile
@yakuter
yakuter / distro.sh
Created May 2, 2022
distro sh function
View distro.sh
# distro prints the detected operating system including linux distros.
# Also parses ID_LIKE for common distro bases.
#
# Example outputs:
# - macos -> macos
# - freebsd -> freebsd
# - ubuntu, raspbian, debian ... -> debian
# - amzn, centos, rhel, fedora, ... -> fedora
# - opensuse-{leap,tumbleweed} -> opensuse
# - alpine -> alpine
View generate-ssl-certificate.sh
# Private Keys and Certificates in this file generated with the commands below
openssl genrsa 2048 > ca-key.pem
openssl req -new -x509 -nodes -days 365000 \
-key ca-key.pem \
-out ca-cert.pem \
-addext "subjectAltName = IP:127.0.0.1"
openssl req -newkey rsa:2048 -nodes -days 365000 \
@yakuter
yakuter / ast_walk.go
Created Feb 24, 2022
AST walk example
View ast_walk.go
func main() {
fs := token.NewFileSet()
f, err := parser.ParseFile(fs, "", "package main\nvar x int = 9\nfunc main(){b:=2}", parser.AllErrors)
if err != nil {
log.Fatal(err)
}
var v visitor
ast.Walk(v, f)
//fmt.Printf("%#v",f)
}
@yakuter
yakuter / golang-ca-certs-windows.go
Last active Feb 14, 2022
Golang Windows System CA Certificates
View golang-ca-certs-windows.go
// +build windows
package main
import (
"crypto/x509"
"fmt"
"syscall"
"unsafe"
)
@yakuter
yakuter / args.go
Last active Feb 7, 2022
A nice args (arguments) interface for golang projects
View args.go
type Args interface {
// Get returns the nth argument, or else a blank string
Get(n int) string
// First returns the first argument, or else a blank string
First() string
// Tail returns the rest of the arguments (not the first one)
// or else an empty string slice
Tail() []string
// Len returns the length of the wrapped slice
Len() int
@yakuter
yakuter / cancel-io-copy.go
Created Apr 25, 2021
IO Copy cancellation
View cancel-io-copy.go
// Source: https://ixday.github.io/post/golang-cancel-copy/
import (
"io"
"context"
)
// here is some syntaxic sugar inspired by the Tomas Senart's video,
// it allows me to inline the Reader interface
type readerFunc func(p []byte) (n int, err error)
@yakuter
yakuter / geekday.go
Created Apr 4, 2021
Go parametreleri dosyaya yazan uygulama
View geekday.go
package main
import (
"log"
"os"
)
func main() {
file, err := os.OpenFile("geekday.txt", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0644)
if err != nil {
@yakuter
yakuter / convert.go
Created Jul 28, 2020
String Byte Conversion Without Memory Allocation
View convert.go
// b2s converts byte slice to a string without memory allocation.
// See https://groups.google.com/forum/#!msg/Golang-Nuts/ENgbUzYvCuU/90yGx7GUAgAJ .
//
// Note it may break if string and/or slice header will change
// in the future go versions.
func b2s(b []byte) string {
/* #nosec G103 */
return *(*string)(unsafe.Pointer(&b))
}
@yakuter
yakuter / CryptoJS.js
Last active Apr 6, 2022
CryptoJS AES Example
View CryptoJS.js
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/components/core-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/components/sha256.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/components/enc-base64.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/pbkdf2.js"></script>
View PBKDF2-js-golang.go
import CryptoJS from 'crypto-js'
export default {
pbkdf2Encrypt(value) {
var salt = 'asdfghjkl'
const cipher = CryptoJS.PBKDF2(value, salt, {
keySize: 256 / 8,
iterations: 10000,
hasher: CryptoJS.algo.SHA256