Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
package xxdgo import ( "fmt" "io" "os" "strings" "github.com/spf13/cobra" ) var ( space string lineBreak int ) func init() { Cmd.Flags().StringVarP(&space, "spaces", "s", " ", "how much space to use after every break line") Cmd.Flags().IntVarP(&lineBreak, "break", "b", 12, "after how many items to add a new break line") } var Cmd = &cobra.Command{ Long: "xxd -i but for go", Use: "xxdgo file_name", Example: `xxdgo image.png -s " " -b 16 >> rawbytes.go`, Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { file, err := os.OpenFile(args[0], os.O_RDONLY, 0444) if err != nil { return err } defer file.Close() fileBytes, err := io.ReadAll(file) if err != nil { return err } var s strings.Builder s.WriteString(`var `) var varName = strings.ReplaceAll(file.Name(), ".", "_") var upperName = strings.ToUpper(string(varName[0])) + varName[1:] s.WriteString(upperName) s.WriteString(` []byte = []byte{`) s.WriteString("\n") s.WriteString(space) for i, b := range fileBytes { s.WriteString(`0x`) var hexB = fmt.Sprintf("%x", b) if len(hexB) == 1 { s.WriteString("0") } s.WriteString(hexB) s.WriteString(", ") if (i + 1) % lineBreak == 0 { s.WriteString("\n") s.WriteString(space) } } s.WriteString("\n") s.WriteString("}") fmt.Println(s.String()) return nil }, }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)