From f4ae3c0e67d51e2a5a37253b51adc12a5700c6f0 Mon Sep 17 00:00:00 2001 From: Marco Kellershoff Date: Sun, 21 Jul 2024 04:52:09 +0200 Subject: [PATCH] Initial commit --- .editorconfig | 15 ++++++++++++ .github/workflows/build.yml | 24 ++++++++++++++++++ .github/workflows/lint.yml | 35 ++++++++++++++++++++++++++ .github/workflows/release.yml | 29 ++++++++++++++++++++++ .github/workflows/test.yml | 31 +++++++++++++++++++++++ .gitignore | 18 ++++++++++++++ LICENSE | 21 ++++++++++++++++ Makefile | 29 ++++++++++++++++++++++ README.md | 41 +++++++++++++++++++++++++++++++ cmd/kulalafmt/about.go | 19 ++++++++++++++ cmd/kulalafmt/root.go | 36 +++++++++++++++++++++++++++ cmd/kulalafmt/version.go | 22 +++++++++++++++++ dist/.gitignore | 2 ++ go.mod | 24 ++++++++++++++++++ go.sum | 45 ++++++++++++++++++++++++++++++++++ internal/config/config.go | 18 ++++++++++++++ internal/parser/parser.go | 21 ++++++++++++++++ logo.png | Bin 0 -> 49186 bytes logo.svg | 1 + main.go | 7 ++++++ 20 files changed, 438 insertions(+) create mode 100644 .editorconfig create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/lint.yml create mode 100644 .github/workflows/release.yml create mode 100644 .github/workflows/test.yml create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 README.md create mode 100644 cmd/kulalafmt/about.go create mode 100644 cmd/kulalafmt/root.go create mode 100644 cmd/kulalafmt/version.go create mode 100644 dist/.gitignore create mode 100644 go.mod create mode 100644 go.sum create mode 100644 internal/config/config.go create mode 100644 internal/parser/parser.go create mode 100644 logo.png create mode 100644 logo.svg create mode 100644 main.go diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..49b34aa --- /dev/null +++ b/.editorconfig @@ -0,0 +1,15 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_style = space +indent_size = 2 +insert_final_newline = true + +[*.go] +indent_style = tab +insert_final_newline = false + +[Makefile] +indent_style = tab diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..28fa3a8 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,24 @@ +name: Build + +on: + push: + branches: + - main +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set up env + run: | + VERSION=${GITHUB_REF_NAME#v} + echo "VERSION=$VERSION" >> $GITHUB_ENV + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: 1.22 + - name: Build + run: make builds diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..7799943 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,35 @@ +name: Lint + +on: + push: + branches: + - main + pull_request: + +permissions: + contents: read + pull-requests: read + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set up env + run: | + VERSION=${GITHUB_REF_NAME#v} + echo "VERSION=$VERSION" >> $GITHUB_ENV + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: 1.22 + - name: Set up golangci-lint + uses: golangci/golangci-lint-action@v6 + with: + version: v1.58 + cache: true + - name: Lint + run: make lint diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..52fd537 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,29 @@ +name: Release + +on: + push: + tags: + - 'v[0-9]+.[0-9]+.[0-9]+' +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set up env + run: | + VERSION=${GITHUB_REF_NAME#v} + echo "VERSION=$VERSION" >> $GITHUB_ENV + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: 1.22 + cache: true + - name: Build + run: make builds + - name: Release + run: make release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..f5a5a68 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,31 @@ +name: Test + +on: + push: + branches: + - main +jobs: + test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set up env + run: | + VERSION=${GITHUB_REF_NAME#v} + echo "VERSION=$VERSION" >> $GITHUB_ENV + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: 1.22 + - name: Test + run: make test-coverage + - name: Upload to Codecov + uses: codecov/codecov-action@v4 + with: + token: ${{ secrets.CODECOV_TOKEN }} + fail_ci_if_error: true + files: ./coverage.out + name: codecov-umbrella diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..839f065 --- /dev/null +++ b/.gitignore @@ -0,0 +1,18 @@ +# Binaries for programs and plugins +*.exe +*.exe~ +*.dll +*.so +*.dylib + +# Test binary, built with `go test -c` +*.test + +# Output of the go coverage tool, specifically when used with LiteIDE +*.out + +# Go workspace file +go.work + +/configurations +/shazam.yml diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..dc19184 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 mistweaver.co + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..fd07d31 --- /dev/null +++ b/Makefile @@ -0,0 +1,29 @@ +BIN_NAME=kulala-fmt + +build-windows-64: + GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -ldflags "-s -w -X 'github.com/mistweaverco/kulala-fmt/cmd/kulalafmt.VERSION=$(VERSION)'" -o dist/windows/$(BIN_NAME).exe main.go +build-linux-64: + GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags "-s -w -X 'github.com/mistweaverco/kulala-fmt/cmd/kulalafmt.VERSION=$(VERSION)'" -o dist/linux/$(BIN_NAME)-linux main.go +build-macos-arm64: + GOOS=darwin GOARCH=arm64 CGO_ENABLED=0 go build -ldflags "-s -w -X 'github.com/mistweaverco/kulala-fmt/cmd/kulalafmt.VERSION=$(VERSION)'" -o dist/macos/$(BIN_NAME)-macos main.go + +builds: build-linux-64 build-macos-arm64 build-windows-64 + +lint: + golangci-lint run + +test: + if [ -n $(COLORS_ENABLED) ]; then gotest ./... ; else go test ./...; fi + +test-coverage: + go test -race -covermode=atomic -coverprofile=coverage.out ./... + +release: + gh release create --generate-notes v$(VERSION) dist/linux/$(BIN_NAME)-linux dist/macos/$(BIN_NAME)-macos dist/windows/$(BIN_NAME).exe + +build-and-install-local-debug: + go build -ldflags "-X 'github.com/mistweaverco/kulala-fmt/cmd/kulalafmt.VERSION=development'" -o dist/$(BIN_NAME) main.go + sudo mv dist/$(BIN_NAME) /usr/bin/$(BIN_NAME) + +run: + go run -ldflags "-X 'github.com/mistweaverco/kulala-fmt/cmd/kulalafmt.VERSION=development'" main.go diff --git a/README.md b/README.md new file mode 100644 index 0000000..9094de1 --- /dev/null +++ b/README.md @@ -0,0 +1,41 @@ +
+ +![Kulala-fmt Logo](logo.svg) + +# kulala-fmt + +[![Go](https://img.shields.io/badge/Made%20with%20Go-00ADD8.svg?style=for-the-badge&logo=go&logoColor=ffffff)](https://golang.org) +[![GitHub release (latest by date)](https://img.shields.io/github/v/release/mistweaverco/kulala-fmt?style=for-the-badge)](https://github.com/mistweaverco/kulala-fmt/releases/latest) +[![Discord](https://img.shields.io/badge/discord-join-7289da?style=for-the-badge&logo=discord)](https://discord.gg/QyVQmfY4Rt) + +[Install](#install) • [Usage](#usage) + +

+ +An opinionated 🦄 .http and .rest 🐼 files linter 💄 and formatter ⚡. + +

+ +
+ +## Install + +Just grab the latest release: + + - [Linux](https://github.com/mistweaverco/kulala-fmt/releases/download/latest/kulala-fmt-linux) + - [Mac](https://github.com/mistweaverco/kulala-fmt/releases/download/latest/kulala-fmt-macos) + - [Windows](https://github.com/mistweaverco/kulala-fmt/releases/download/latest/kulala-fmt.exe) + +## Usage + +Format all `.http` and `.rest` files in the current directory and its subdirectories: + +```sh +kulala-fmt +``` + +Check if all `.http` and `.rest` files in the current directory and its subdirectories are formatted: + +```sh +kulala-fmt --check +``` diff --git a/cmd/kulalafmt/about.go b/cmd/kulalafmt/about.go new file mode 100644 index 0000000..db7fae8 --- /dev/null +++ b/cmd/kulalafmt/about.go @@ -0,0 +1,19 @@ +package kulalafmt + +import ( + "fmt" + + "github.com/spf13/cobra" +) + +var aboutCmd = &cobra.Command{ + Use: "about", + Short: "Shows information about kulala-fmt", + Run: func(cmd *cobra.Command, args []string) { + fmt.Println("Made with ❤️ by Marco Kellershoff - https://gorilla.moe") + }, +} + +func init() { + rootCmd.AddCommand(aboutCmd) +} \ No newline at end of file diff --git a/cmd/kulalafmt/root.go b/cmd/kulalafmt/root.go new file mode 100644 index 0000000..19d0624 --- /dev/null +++ b/cmd/kulalafmt/root.go @@ -0,0 +1,36 @@ +package kulalafmt + +import ( + "os" + + "github.com/charmbracelet/log" + "github.com/mistweaverco/kulala-fmt/internal/config" + "github.com/mistweaverco/kulala-fmt/internal/parser" + "github.com/spf13/cobra" +) + +var cfg = config.NewConfig(config.Config{}) + +var rootCmd = &cobra.Command{ + Use: "kulala-fmt", + Short: "An opinionated 🦄 .http and .rest 🐼 files linter 💄 and formatter ⚡.", + Long: "Formats and lints .http and .rest files in the current directory and subdirectories.", + Run: func(cmd *cobra.Command, args []string) { + if len(args) == 0 { + log.Info("Starting kulala-fmt 🦄", "version", VERSION) + parser.Start(cfg.GetConfigFlags()) + } + }, +} + +func Execute() { + err := rootCmd.Execute() + if err != nil { + os.Exit(1) + } +} + +func init() { + rootCmd.PersistentFlags().BoolVar(&cfg.Flags.DryRun, "dry-run", false, "dry run") + rootCmd.PersistentFlags().BoolVar(&cfg.Flags.Check, "check", false, "check") +} \ No newline at end of file diff --git a/cmd/kulalafmt/version.go b/cmd/kulalafmt/version.go new file mode 100644 index 0000000..053d523 --- /dev/null +++ b/cmd/kulalafmt/version.go @@ -0,0 +1,22 @@ +package kulalafmt + +import ( + "runtime" + + "github.com/charmbracelet/log" + "github.com/spf13/cobra" +) + +var VERSION string + +var versionCmd = &cobra.Command{ + Use: "version", + Short: "Print the version number of kulala-fmt", + Run: func(cmd *cobra.Command, args []string) { + log.Info("Version", runtime.GOOS, VERSION) + }, +} + +func init() { + rootCmd.AddCommand(versionCmd) +} \ No newline at end of file diff --git a/dist/.gitignore b/dist/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/dist/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..b2a20e3 --- /dev/null +++ b/go.mod @@ -0,0 +1,24 @@ +module github.com/mistweaverco/kulala-fmt + +go 1.22 + +require ( + github.com/charmbracelet/log v0.4.0 + github.com/spf13/cobra v1.8.0 +) + +require ( + github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect + github.com/charmbracelet/lipgloss v0.10.0 // indirect + github.com/go-logfmt/logfmt v0.6.0 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/lucasb-eyer/go-colorful v1.2.0 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect + github.com/muesli/reflow v0.3.0 // indirect + github.com/muesli/termenv v0.15.2 // indirect + github.com/rivo/uniseg v0.4.7 // indirect + github.com/spf13/pflag v1.0.5 // indirect + golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect + golang.org/x/sys v0.20.0 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..be8f88d --- /dev/null +++ b/go.sum @@ -0,0 +1,45 @@ +github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= +github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= +github.com/charmbracelet/lipgloss v0.10.0 h1:KWeXFSexGcfahHX+54URiZGkBFazf70JNMtwg/AFW3s= +github.com/charmbracelet/lipgloss v0.10.0/go.mod h1:Wig9DSfvANsxqkRsqj6x87irdy123SR4dOXlKa91ciE= +github.com/charmbracelet/log v0.4.0 h1:G9bQAcx8rWA2T3pWvx7YtPTPwgqpk7D68BX21IRW8ZM= +github.com/charmbracelet/log v0.4.0/go.mod h1:63bXt/djrizTec0l11H20t8FDSvA4CRZJ1KH22MdptM= +github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= +github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= +github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s= +github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8= +github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo= +github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= +github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= +golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/internal/config/config.go b/internal/config/config.go new file mode 100644 index 0000000..8a8bea8 --- /dev/null +++ b/internal/config/config.go @@ -0,0 +1,18 @@ +package config + +type ConfigFlags struct { + DryRun bool + Check bool +} + +type Config struct { + Flags ConfigFlags +} + +func (c Config) GetConfigFlags() ConfigFlags { + return c.Flags +} + +func NewConfig(cfg Config) Config { + return cfg +} \ No newline at end of file diff --git a/internal/parser/parser.go b/internal/parser/parser.go new file mode 100644 index 0000000..247193f --- /dev/null +++ b/internal/parser/parser.go @@ -0,0 +1,21 @@ +package parser + +import ( + "fmt" + "os" + "path/filepath" + + "github.com/mistweaverco/kulala-fmt/internal/config" +) + +func Start(flags config.ConfigFlags) { + // get all files in the current directory and subdirectories that match the file extension .http or .rest + files := []string{} + _ = filepath.Walk(".", func(path string, info os.FileInfo, err error) error { + if filepath.Ext(path) == ".http" || filepath.Ext(path) == ".rest" { + files = append(files, path) + } + return nil + }) + fmt.Println(files) +} \ No newline at end of file diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0086e372e4cb70c64afac012ce1ff163b7fa7d27 GIT binary patch literal 49186 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 %*dqY~e&&RBAzQ=DZ?)yegYGzwQ-FItC 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 t%}JXvbPdM&axb|rFP^eHQ7W diff --git a/main.go b/main.go new file mode 100644 index 0000000..675eaf9 --- /dev/null +++ b/main.go @@ -0,0 +1,7 @@ +package main + +import "github.com/mistweaverco/kulala-fmt/cmd/kulalafmt" + +func main() { + kulalafmt.Execute() +} \ No newline at end of file