mirror of
https://github.com/Slug-Boi/cocommit.git
synced 2026-05-13 12:45:47 +00:00
feat: added author file default path and config creation utility
This commit is contained in:
@@ -36,10 +36,37 @@ var groups = make(map[string][]user)
|
|||||||
func main() {
|
func main() {
|
||||||
|
|
||||||
// Reads a shell env variable :: author_file
|
// Reads a shell env variable :: author_file
|
||||||
authors := os.Getenv("author_file")
|
var authors string
|
||||||
|
envVar := os.Getenv("author_file")
|
||||||
|
if envVar == "" {
|
||||||
|
var err error
|
||||||
|
authors, err = os.UserConfigDir()
|
||||||
|
authors += "/cocommit/authors"
|
||||||
|
if err != nil {
|
||||||
|
println("Error: ", err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
authors = envVar
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
file, err := os.Open(authors)
|
file, err := os.Open(authors)
|
||||||
check_err(err)
|
if err != nil {
|
||||||
|
authors, _ = os.UserConfigDir()
|
||||||
|
authors += "/cocommit/authors"
|
||||||
|
println("Authors file cannot be found. Please check the path to the file. \nEither set the author_file env variable or place the file in the default location. \nDefault location: "+ authors)
|
||||||
|
println("If you want to create a blank template file at the default location type y|yes or cancel with n|no")
|
||||||
|
var input string
|
||||||
|
fmt.Scanln(&input)
|
||||||
|
if input == "y" || input == "yes" {
|
||||||
|
create_author_file("yes")
|
||||||
|
os.Exit(1)
|
||||||
|
} else {
|
||||||
|
println("Cancelled")
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
|
|
||||||
scanner := bufio.NewScanner(file)
|
scanner := bufio.NewScanner(file)
|
||||||
@@ -206,6 +233,8 @@ func NoInput(args []string, users map[string]user) {
|
|||||||
sort.Strings(user_sb)
|
sort.Strings(user_sb)
|
||||||
println(strings.Join(user_sb, ""))
|
println(strings.Join(user_sb, ""))
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
|
} else if len(args) == 1 && args[0] == "config"{
|
||||||
|
create_author_file()
|
||||||
}
|
}
|
||||||
// if calling binary with nothing or only string
|
// if calling binary with nothing or only string
|
||||||
print("Usage: cocommit <commit message> <co-author1> [co-author2] [co-author3] || \ncocommit <commit message> <co-author1:email> [co-author2:email] [co-author3:email] || \ncocommit <commit message> all || \ncocommit <commit message> ^<co-author1> ^[co-author2] || \ncocommit <commit message> <group> || \ncocommit users || \nMixes of both")
|
print("Usage: cocommit <commit message> <co-author1> [co-author2] [co-author3] || \ncocommit <commit message> <co-author1:email> [co-author2:email] [co-author3:email] || \ncocommit <commit message> all || \ncocommit <commit message> ^<co-author1> ^[co-author2] || \ncocommit <commit message> <group> || \ncocommit users || \nMixes of both")
|
||||||
@@ -214,6 +243,50 @@ func NoInput(args []string, users map[string]user) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
func create_author_file(param ...string) {
|
||||||
|
var input string
|
||||||
|
authors, err := os.UserConfigDir()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
println("Error: ", err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
if len(param) > 0 {
|
||||||
|
input = "yes"
|
||||||
|
goto skip
|
||||||
|
}
|
||||||
|
println("This command will create a blank template auhtor file in the default location. \nDefault location: "+ authors + "\nConfirm by typing y|yes or cancel with n|no")
|
||||||
|
fmt.Scanln(&input)
|
||||||
|
if err != nil {
|
||||||
|
println("Error: ", err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
skip:
|
||||||
|
if input == "y" || input == "yes" {
|
||||||
|
// create folder cocommit in .config
|
||||||
|
authors += "/cocommit"
|
||||||
|
err := os.MkdirAll(authors, 0755)
|
||||||
|
if err != nil {
|
||||||
|
println("Error in dir creation: ", err.Error())
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
authors += "/authors"
|
||||||
|
file, err := os.Create(authors)
|
||||||
|
if err != nil {
|
||||||
|
println("Error: ", err.Error())
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
defer file.Close()
|
||||||
|
file.WriteString("name_short|Name|Username|email (opt: |ex) (opt: ;;group1 or ;;group1|group2|group3...)\n")
|
||||||
|
println("File created successfully at: "+ authors)
|
||||||
|
os.Exit(1)
|
||||||
|
} else {
|
||||||
|
println("Cancelled")
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func check_err(e error) {
|
func check_err(e error) {
|
||||||
if e != nil {
|
if e != nil {
|
||||||
fmt.Println(e.Error())
|
fmt.Println(e.Error())
|
||||||
|
|||||||
Reference in New Issue
Block a user