-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat!: rebuild entire cli and reorganize packages
- Loading branch information
Showing
57 changed files
with
125 additions
and
60 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
package cmd | ||
|
||
import ( | ||
"fmt" | ||
"os" | ||
|
||
"go.wzykubek.xyz/licensmith/internal" | ||
|
||
"github.com/spf13/cobra" | ||
) | ||
|
||
var AuthorName string | ||
var AuthorEmail string | ||
var OutputFile string | ||
|
||
func init() { | ||
rootCmd.AddCommand(addCmd) | ||
addCmd.Flags().StringVar(&AuthorName, "name", "", "Author name (read from Git by default)") | ||
addCmd.Flags().StringVar(&AuthorEmail, "email", "", "Author email (read from Git by default)") | ||
addCmd.Flags().StringVarP(&OutputFile, "output", "o", "LICENSE", "Output file") | ||
} | ||
|
||
var addCmd = &cobra.Command{ | ||
Use: "add [license]", | ||
Short: "Add LICENSE based on SPDX ID", | ||
Args: cobra.ExactArgs(1), | ||
Run: func(cmd *cobra.Command, args []string) { | ||
licenseID := args[0] | ||
|
||
licenseCtx, err := internal.NewLicenseContext(AuthorName, AuthorEmail) | ||
if err != nil && err.Error() == "can't read Git config" { | ||
fmt.Println("Error: Can't read Git config") | ||
os.Exit(3) | ||
} | ||
|
||
licenser := internal.Licenser{ | ||
LicenseID: licenseID, | ||
LicenseContext: licenseCtx, | ||
OutputFile: OutputFile, | ||
} | ||
|
||
err = licenser.Generate() | ||
if err != nil && err.Error() == "usupported license" { | ||
fmt.Printf("Error: There is no '%s' license\n", licenseID) | ||
os.Exit(2) | ||
} | ||
|
||
if err = licenser.WriteFile(); err != nil { | ||
panic(err) | ||
} | ||
}, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
package cmd | ||
|
||
import ( | ||
"fmt" | ||
"strings" | ||
|
||
"go.wzykubek.xyz/licensmith/internal" | ||
|
||
"github.com/spf13/cobra" | ||
) | ||
|
||
func init() { | ||
rootCmd.AddCommand(listCmd) | ||
} | ||
|
||
var listCmd = &cobra.Command{ | ||
Use: "list", | ||
Short: "List available licenses", | ||
Run: func(cmd *cobra.Command, args []string) { | ||
tmplList := internal.ListTemplates() | ||
fmt.Println(strings.Join(tmplList, ", ")) | ||
}, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
package cmd | ||
|
||
import ( | ||
"fmt" | ||
"os" | ||
|
||
"github.com/spf13/cobra" | ||
) | ||
|
||
var rootCmd = &cobra.Command{ | ||
Use: "licensmith", | ||
Short: "Licensmith is a LICENSE generator", | ||
Long: "Effortlessly craft the perfect LICENSE for your Git repo in seconds with a single command!", | ||
} | ||
|
||
func Execute() { | ||
if err := rootCmd.Execute(); err != nil { | ||
fmt.Println(err) | ||
os.Exit(1) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,12 @@ | ||
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= | ||
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= | ||
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= | ||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= | ||
github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= | ||
github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= | ||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= | ||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= | ||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | ||
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= |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
package main | ||
package internal | ||
|
||
import ( | ||
"errors" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
package main | ||
package internal | ||
|
||
import ( | ||
"time" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,52 +1,9 @@ | ||
package main | ||
|
||
import ( | ||
"flag" | ||
"fmt" | ||
"os" | ||
"go.wzykubek.xyz/licensmith/cmd" | ||
) | ||
|
||
func main() { | ||
OutputFile := flag.String("output", "LICENSE", "Specify different output file") | ||
LicenseID := flag.String("license", "", "Specify license by SPDX ID (e.g. BSD-3-Clause)") | ||
AuthorName := flag.String("name", "", "Set the author name (read from Git by default)") | ||
AuthorEmail := flag.String("email", "", "Set the author email (read from Git by default)") | ||
ListLicenses := flag.Bool("list", false, "List available licenses") | ||
flag.Parse() | ||
|
||
if *ListLicenses { | ||
listLicenses() | ||
os.Exit(0) | ||
} | ||
|
||
if *LicenseID == "" { | ||
fmt.Printf("Error: No license specified\n\nUse --license LICENSE\n\nAvailable licenses:\n") | ||
listLicenses() | ||
os.Exit(1) | ||
} | ||
|
||
licenseCtx, err := NewLicenseContext(*AuthorName, *AuthorEmail) | ||
if err != nil && err.Error() == "can't read Git config" { | ||
fmt.Printf( | ||
"Error: Can't read Git config.\n\nUse --name \"NAME\" and --email EMAIL instead.\n", | ||
) | ||
os.Exit(3) | ||
} | ||
|
||
licenser := Licenser{ | ||
LicenseID: *LicenseID, | ||
LicenseContext: licenseCtx, | ||
OutputFile: *OutputFile, | ||
} | ||
|
||
err = licenser.Generate() | ||
if err != nil && err.Error() == "usupported license" { | ||
fmt.Printf("Error: There is no '%s' license\n\nAvailable licenses:\n", *LicenseID) | ||
listLicenses() | ||
os.Exit(2) | ||
} | ||
|
||
if err = licenser.WriteFile(); err != nil { | ||
panic(err) | ||
} | ||
cmd.Execute() | ||
} |