Skip to content

Commit

Permalink
Merge pull request #17 from amirfakhrullah/feat/refactoring
Browse files Browse the repository at this point in the history
Feat/refactoring
  • Loading branch information
amirfakhrullah authored Dec 3, 2022
2 parents ee91ad4 + e53e229 commit e0d7997
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 18 deletions.
20 changes: 16 additions & 4 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,33 +9,45 @@ import (
"github.com/amirfakhrullah/license-gen/pkg/licenses"
)

var fileName = "LICENSE"

func main() {
isExist, fileErr := helpers.IsLicenseExist()
existedLicenseList, fileErr := helpers.IsLicenseExist()
helpers.HandlePanic(&fileErr)

if isExist {
// get confirmation to proceed if there's existing LICENSE
if len(existedLicenseList) > 0 {
toProceed := cli.ConfirmProceed()
if !toProceed {
return
}
}

lic := *licenses.GetLicenseList()

defaultYear := helpers.GetYear()

i := cli.Select(&lic)
name := cli.GetName()
year := cli.GetYear(&defaultYear)

// if no year input is passed, use defaultYear as value
if len(year) == 0 {
year = defaultYear
}

licenses.FetchFullLicense(lic[i].Key)
licContent := licenses.Fill_License(&name, &year)

f, osErr := os.Create("LICENSE")
// execute file deletion process for existedLicenseList with extensions (.txt, .md, ...)
for _, existedLic := range existedLicenseList {
if existedLic == fileName {
continue
}
osErr := os.Remove(existedLic)
helpers.HandlePanic(&osErr)
}

f, osErr := os.Create(fileName)
helpers.HandlePanic(&osErr)

_, writeErr := f.WriteString(*licContent)
Expand Down
17 changes: 12 additions & 5 deletions pkg/helpers/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,19 @@ func HandlePanic(e *error) {
}
}

func IsLicenseExist() (bool, error) {
matches, err := filepath.Glob("LICENSE")
if err != nil {
return false, err
func IsLicenseExist() ([]string, error) {
licenseFileNameList := []string{"LICENSE", "LICENSE.*"}

var filesNeededToBeDeleted []string
for _, licFileName := range licenseFileNameList {
matches, err := filepath.Glob(licFileName)
if err != nil {
return nil, err
}
filesNeededToBeDeleted = append(filesNeededToBeDeleted, matches...)

}
return len(matches) > 0, nil
return filesNeededToBeDeleted, nil
}

func GetYear() string {
Expand Down
18 changes: 9 additions & 9 deletions pkg/licenses/licenses.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,15 +79,15 @@ func GetLicenseList() *[]TrimmedLicense {
}

func Fill_License(name *string, year *string) *string {
// replace name
selectedLicense.Body = strings.ReplaceAll(selectedLicense.Body, "[fullname]", *name)
selectedLicense.Body = strings.ReplaceAll(selectedLicense.Body, "[name of copyright owner]", *name)
selectedLicense.Body = strings.ReplaceAll(selectedLicense.Body, "<name of author>", *name)

// replace year
selectedLicense.Body = strings.ReplaceAll(selectedLicense.Body, "[year]", *year)
selectedLicense.Body = strings.ReplaceAll(selectedLicense.Body, "[yyyy]", *year)
selectedLicense.Body = strings.ReplaceAll(selectedLicense.Body, "<year>", *year)
nameTagList := []string{"[fullname]", "[name of copyright owner]", "<name of author>"}
yearTagList := []string{"[year]", "[yyyy]", "<year>"}

for _, nameTag := range nameTagList {
selectedLicense.Body = strings.ReplaceAll(selectedLicense.Body, nameTag, *name)
}
for _, yearTag := range yearTagList {
selectedLicense.Body = strings.ReplaceAll(selectedLicense.Body, yearTag, *year)
}

return &selectedLicense.Body
}

0 comments on commit e0d7997

Please sign in to comment.