diff --git a/ctl/label.go b/ctl/label.go index 450915c1d..c69084864 100644 --- a/ctl/label.go +++ b/ctl/label.go @@ -10,7 +10,6 @@ import ( "regexp" "strings" - "github.com/halfrost/leetcode-go/ctl/util" "github.com/spf13/cobra" ) @@ -76,7 +75,7 @@ var ( ) func getChapterFourFileOrder() ([]string, []int) { - solutions, solutionIds := util.LoadChapterFourDir() + solutions, solutionIds := LoadChapterFourDir() chapterFourFileOrder := []string{"_index"} chapterFourFileOrder = append(chapterFourFileOrder, solutions...) fmt.Printf("ChapterFour 中包括 _index 有 %v 个文件, len(id) = %v\n", len(chapterFourFileOrder), len(solutionIds)) @@ -150,7 +149,7 @@ func addPreNextLabel(order, preOrder []string, chapterFourIds []int, preChapter, tmp = "\n\n" + delLine + fmt.Sprintf("
\n", chapter, order[index+1]) } else { if chapter == "ChapterFour" { - tmp = "\n\n" + preNextHeader + fmt.Sprintf("\n", preChapter, preOrder[len(preOrder)-1]) + fmt.Sprintf("\n", chapter, util.GetChpaterFourFileNum(chapterFourIds[(index-1)+1]), order[index+1]) + preNextFotter + tmp = "\n\n" + preNextHeader + fmt.Sprintf("\n", preChapter, preOrder[len(preOrder)-1]) + fmt.Sprintf("\n", chapter, GetChpaterFourFileNum(chapterFourIds[(index-1)+1]), order[index+1]) + preNextFotter } else { tmp = "\n\n" + preNextHeader + fmt.Sprintf("\n", preChapter, preOrder[len(preOrder)-1]) + fmt.Sprintf("\n", chapter, order[index+1]) + preNextFotter } @@ -158,26 +157,26 @@ func addPreNextLabel(order, preOrder []string, chapterFourIds []int, preChapter, } else if index == len(order)-1 { if chapter == "ChapterFour" { // 最后一页不需要“下一页” - tmp = "\n\n" + delLine + fmt.Sprintf("\n", chapter, util.GetChpaterFourFileNum(chapterFourIds[(index-1)-1]), order[index-1]) + tmp = "\n\n" + delLine + fmt.Sprintf("\n", chapter, GetChpaterFourFileNum(chapterFourIds[(index-1)-1]), order[index-1]) } else { tmp = "\n\n" + preNextHeader + fmt.Sprintf("\n", chapter, order[index-1]) + fmt.Sprintf("\n", nextChapter) + preNextFotter } } else if index == 1 { if chapter == "ChapterFour" { - tmp = "\n\n" + preNextHeader + fmt.Sprintf("\n", chapter) + fmt.Sprintf("\n", chapter, util.GetChpaterFourFileNum(chapterFourIds[(index-1)+1]), order[index+1]) + preNextFotter + tmp = "\n\n" + preNextHeader + fmt.Sprintf("\n", chapter) + fmt.Sprintf("\n", chapter, GetChpaterFourFileNum(chapterFourIds[(index-1)+1]), order[index+1]) + preNextFotter } else { tmp = "\n\n" + preNextHeader + fmt.Sprintf("\n", chapter) + fmt.Sprintf("\n", chapter, order[index+1]) + preNextFotter } } else { if chapter == "ChapterFour" { - tmp = "\n\n" + preNextHeader + fmt.Sprintf("\n", chapter, util.GetChpaterFourFileNum(chapterFourIds[(index-1)-1]), order[index-1]) + fmt.Sprintf("\n", chapter, util.GetChpaterFourFileNum(chapterFourIds[(index-1)+1]), order[index+1]) + preNextFotter + tmp = "\n\n" + preNextHeader + fmt.Sprintf("\n", chapter, GetChpaterFourFileNum(chapterFourIds[(index-1)-1]), order[index-1]) + fmt.Sprintf("\n", chapter, GetChpaterFourFileNum(chapterFourIds[(index-1)+1]), order[index+1]) + preNextFotter } else { tmp = "\n\n" + preNextHeader + fmt.Sprintf("\n", chapter, order[index-1]) + fmt.Sprintf("\n", chapter, order[index+1]) + preNextFotter } } if chapter == "ChapterFour" && index > 0 { - path = fmt.Sprintf("%v/%v", util.GetChpaterFourFileNum(chapterFourIds[(index-1)]), path) + path = fmt.Sprintf("%v/%v", GetChpaterFourFileNum(chapterFourIds[(index-1)]), path) } exist, err = needAdd(fmt.Sprintf("../website/content/%v/%v.md", chapter, path)) @@ -192,7 +191,7 @@ func addPreNextLabel(order, preOrder []string, chapterFourIds []int, preChapter, fmt.Println(err) return } - util.WriteFile(fmt.Sprintf("../website/content/%v/%v.md", chapter, path), res) + WriteFile(fmt.Sprintf("../website/content/%v/%v.md", chapter, path), res) count++ } } @@ -242,7 +241,7 @@ func delPreNextLabel(order []string, chapterFourIds []int, chapter string) { lineNum = 3 } if chapter == "ChapterFour" && index > 0 { - path = fmt.Sprintf("%v/%v", util.GetChpaterFourFileNum(chapterFourIds[(index-1)]), path) + path = fmt.Sprintf("%v/%v", GetChpaterFourFileNum(chapterFourIds[(index-1)]), path) } exist, err := needAdd(fmt.Sprintf("../website/content/%v/%v.md", chapter, path)) @@ -263,7 +262,7 @@ func delPreNextLabel(order []string, chapterFourIds []int, chapter string) { // fmt.Println(err) // return // } - // util.WriteFile(fmt.Sprintf("../website/content/ChapterOne/%v.md", v), res) + // WriteFile(fmt.Sprintf("../website/content/ChapterOne/%v.md", v), res) } func needAdd(filePath string) (bool, error) { diff --git a/ctl/models/lcproblems.go b/ctl/lcproblems.go similarity index 99% rename from ctl/models/lcproblems.go rename to ctl/lcproblems.go index e73537d64..f6bf03c20 100644 --- a/ctl/models/lcproblems.go +++ b/ctl/lcproblems.go @@ -1,4 +1,4 @@ -package models +package main import ( "fmt" diff --git a/ctl/models/mdrow.go b/ctl/mdrow.go similarity index 99% rename from ctl/models/mdrow.go rename to ctl/mdrow.go index 5ad90ec0e..85de4bb90 100644 --- a/ctl/models/mdrow.go +++ b/ctl/mdrow.go @@ -1,4 +1,4 @@ -package models +package main import ( "fmt" diff --git a/ctl/models/go.mod b/ctl/models/go.mod deleted file mode 100644 index ade5ff092..000000000 --- a/ctl/models/go.mod +++ /dev/null @@ -1,7 +0,0 @@ -module github.com/halfrost/LeetCode-Go/ctl/models - -go 1.19 - -replace github.com/halfrost/LeetCode-Go/ctl/util => ../util // indirect - -require github.com/halfrost/LeetCode-Go/ctl/util v0.0.0-20220910195543-403dd2823892 // indirect diff --git a/ctl/pdf.go b/ctl/pdf.go index 93952a203..71817554d 100644 --- a/ctl/pdf.go +++ b/ctl/pdf.go @@ -10,7 +10,6 @@ import ( "strconv" "strings" - "github.com/halfrost/leetcode-go/ctl/util" "github.com/spf13/cobra" ) @@ -61,7 +60,7 @@ func generatePDF() { // 先删除 pre-next delPreNext() - chapterFourFileOrder, _ := util.LoadChapterFourDir() + chapterFourFileOrder, _ := LoadChapterFourDir() totalSolutions = len(chapterFourFileOrder) midVersion = totalSolutions / 100 lastVersion = totalSolutions % 100 @@ -80,7 +79,7 @@ func generatePDF() { tmp, err = loadChapter(chapterThreeFileOrder, "./pdftemp", "ChapterThree") pdf = append(pdf, tmp...) // PDF 第四章 - tmp, err = util.LoadFile("./pdftemp/ChapterFour/_index.md") + tmp, err = LoadFile("./pdftemp/ChapterFour/_index.md") pdf = append(pdf, tmp...) tmp, err = loadChapter(chapterFourFileOrder, "../website/content", "ChapterFour") pdf = append(pdf, tmp...) @@ -88,10 +87,10 @@ func generatePDF() { fmt.Println(err) } // 生成 PDF - util.WriteFile(fmt.Sprintf("../PDF v%v.%v.%v.md", majorVersion, midVersion, lastVersion), pdf) + WriteFile(fmt.Sprintf("../PDF v%v.%v.%v.md", majorVersion, midVersion, lastVersion), pdf) // 还原现场 addPreNext() - util.DestoryDir("./pdftemp") + DestoryDir("./pdftemp") } func loadChapter(order []string, path, chapter string) ([]byte, error) { @@ -110,10 +109,10 @@ func loadChapter(order []string, path, chapter string) ([]byte, error) { if err != nil { fmt.Println(err) } - tmp, err = util.LoadFile(fmt.Sprintf("%v/%v/%v/%v.md", path, chapter, util.GetChpaterFourFileNum(num), v)) + tmp, err = LoadFile(fmt.Sprintf("%v/%v/%v/%v.md", path, chapter, GetChpaterFourFileNum(num), v)) } } else { - tmp, err = util.LoadFile(fmt.Sprintf("%v/%v/%v.md", path, chapter, v)) + tmp, err = LoadFile(fmt.Sprintf("%v/%v/%v.md", path, chapter, v)) } } if err != nil { @@ -147,7 +146,7 @@ func prepare(path string) { } // 生成外部链接的 ChapterTwo buildChapterTwo(false) - util.CopyFile("./pdftemp/ChapterTwo/_index.md", "../website/content/ChapterTwo/_index.md") + CopyFile("./pdftemp/ChapterTwo/_index.md", "../website/content/ChapterTwo/_index.md") for _, v := range chapterTwoFileOrder { removeHeader(fmt.Sprintf("./pdftemp/ChapterTwo/%v.md", v), fmt.Sprintf("./pdftemp/ChapterTwo/%v.md", v), 5) diff --git a/ctl/render.go b/ctl/render.go index 934677eaa..26623994b 100644 --- a/ctl/render.go +++ b/ctl/render.go @@ -11,8 +11,6 @@ import ( "strconv" "strings" - m "github.com/halfrost/leetcode-go/ctl/models" - "github.com/halfrost/leetcode-go/ctl/util" "github.com/spf13/cobra" ) @@ -80,13 +78,13 @@ func newBuildMenu() *cobra.Command { func buildREADME() { var ( - problems []m.StatStatusPairs - lpa m.LeetCodeProblemAll - info m.UserInfo + problems []StatStatusPairs + lpa LeetCodeProblemAll + info UserInfo ) // 请求所有题目信息 body := getProblemAllList() - problemsMap, optimizingIds := map[int]m.StatStatusPairs{}, []int{} + problemsMap, optimizingIds := map[int]StatStatusPairs{}, []int{} err := json.Unmarshal(body, &lpa) if err != nil { fmt.Println(err) @@ -96,30 +94,30 @@ func buildREADME() { // 拼凑 README 需要渲染的数据 problems = lpa.StatStatusPairs - info = m.ConvertUserInfoModel(lpa) + info = ConvertUserInfoModel(lpa) for _, v := range problems { problemsMap[int(v.Stat.FrontendQuestionID)] = v } - mdrows := m.ConvertMdModelFromSsp(problems) - sort.Sort(m.SortByQuestionID(mdrows)) - solutionIds, _, try := util.LoadSolutionsDir() - m.GenerateMdRows(solutionIds, mdrows) + mdrows := ConvertMdModelFromSsp(problems) + sort.Sort(SortByQuestionID(mdrows)) + solutionIds, _, try := LoadSolutionsDir() + GenerateMdRows(solutionIds, mdrows) info.EasyTotal, info.MediumTotal, info.HardTotal, info.OptimizingEasy, info.OptimizingMedium, info.OptimizingHard, optimizingIds = statisticalData(problemsMap, solutionIds) - omdrows := m.ConvertMdModelFromIds(problemsMap, optimizingIds) - sort.Sort(m.SortByQuestionID(omdrows)) + omdrows := ConvertMdModelFromIds(problemsMap, optimizingIds) + sort.Sort(SortByQuestionID(omdrows)) // 按照模板渲染 README - res, err := renderReadme("./template/template.markdown", len(solutionIds), try, m.Mdrows{Mdrows: mdrows}, m.Mdrows{Mdrows: omdrows}, info) + res, err := renderReadme("./template/template.markdown", len(solutionIds), try, Mdrows{Mdrows: mdrows}, Mdrows{Mdrows: omdrows}, info) if err != nil { fmt.Println(err) return } - util.WriteFile("../README.md", res) + WriteFile("../README.md", res) fmt.Println("write file successful") //makeReadmeFile(mds) } -func renderReadme(filePath string, total, try int, mdrows, omdrows m.Mdrows, user m.UserInfo) ([]byte, error) { +func renderReadme(filePath string, total, try int, mdrows, omdrows Mdrows, user UserInfo) ([]byte, error) { f, err := os.OpenFile(filePath, os.O_RDONLY, 0644) if err != nil { return nil, err @@ -167,8 +165,8 @@ func renderReadme(filePath string, total, try int, mdrows, omdrows m.Mdrows, use // false 渲染的链接是外部 HTTPS 链接,用于生成 PDF func buildChapterTwo(internal bool) { var ( - gr m.GraphQLResp - questions []m.Question + gr GraphQLResp + questions []Question count int ) for index, tag := range chapterTwoSlug { @@ -180,25 +178,25 @@ func buildChapterTwo(internal bool) { return } questions = gr.Data.TopicTag.Questions - mdrows := m.ConvertMdModelFromQuestions(questions) - sort.Sort(m.SortByQuestionID(mdrows)) - solutionIds, _, _ := util.LoadSolutionsDir() + mdrows := ConvertMdModelFromQuestions(questions) + sort.Sort(SortByQuestionID(mdrows)) + solutionIds, _, _ := LoadSolutionsDir() tl, err := loadMetaData(fmt.Sprintf("./meta/%v", chapterTwoFileName[index])) if err != nil { fmt.Printf("err = %v\n", err) } - tls := m.GenerateTagMdRows(solutionIds, tl, mdrows, internal) + tls := GenerateTagMdRows(solutionIds, tl, mdrows, internal) //fmt.Printf("tls = %v\n", tls) // 按照模板渲染 README - res, err := renderChapterTwo(fmt.Sprintf("./template/%v.md", chapterTwoFileName[index]), m.TagLists{TagLists: tls}) + res, err := renderChapterTwo(fmt.Sprintf("./template/%v.md", chapterTwoFileName[index]), TagLists{TagLists: tls}) if err != nil { fmt.Println(err) return } if internal { - util.WriteFile(fmt.Sprintf("../website/content/ChapterTwo/%v.md", chapterTwoFileName[index]), res) + WriteFile(fmt.Sprintf("../website/content/ChapterTwo/%v.md", chapterTwoFileName[index]), res) } else { - util.WriteFile(fmt.Sprintf("./pdftemp/ChapterTwo/%v.md", chapterTwoFileName[index]), res) + WriteFile(fmt.Sprintf("./pdftemp/ChapterTwo/%v.md", chapterTwoFileName[index]), res) } count++ @@ -206,13 +204,13 @@ func buildChapterTwo(internal bool) { fmt.Printf("write %v files successful", count) } -func loadMetaData(filePath string) (map[int]m.TagList, error) { +func loadMetaData(filePath string) (map[int]TagList, error) { f, err := os.OpenFile(filePath, os.O_RDONLY, 0644) if err != nil { return nil, err } defer f.Close() - reader, metaMap := bufio.NewReader(f), map[int]m.TagList{} + reader, metaMap := bufio.NewReader(f), map[int]TagList{} for { line, _, err := reader.ReadLine() @@ -225,7 +223,7 @@ func loadMetaData(filePath string) (map[int]m.TagList, error) { s := strings.Split(string(line), "|") v, _ := strconv.Atoi(strings.Split(s[1], ".")[0]) // v[0] 是题号,s[4] time, s[5] space, s[6] favorite - metaMap[v] = m.TagList{ + metaMap[v] = TagList{ FrontendQuestionID: int32(v), Acceptance: "", Difficulty: "", @@ -236,7 +234,7 @@ func loadMetaData(filePath string) (map[int]m.TagList, error) { } } -func renderChapterTwo(filePath string, tls m.TagLists) ([]byte, error) { +func renderChapterTwo(filePath string, tls TagLists) ([]byte, error) { f, err := os.OpenFile(filePath, os.O_RDONLY, 0644) if err != nil { return nil, err @@ -272,18 +270,18 @@ func buildBookMenu() { fmt.Println(err) return } - util.WriteFile("../website/content/menu/index.md", res) + WriteFile("../website/content/menu/index.md", res) fmt.Println("generate Menu successful") } // 拷贝 leetcode 目录下的题解 README 文件至第四章对应文件夹中 func copyLackFile() { - solutionIds, soName, _ := util.LoadSolutionsDir() - _, ch4Ids := util.LoadChapterFourDir() + solutionIds, soName, _ := LoadSolutionsDir() + _, ch4Ids := LoadChapterFourDir() needCopy := []string{} for i := 0; i < len(solutionIds); i++ { - if util.BinarySearch(ch4Ids, solutionIds[i]) == -1 { + if BinarySearch(ch4Ids, solutionIds[i]) == -1 { needCopy = append(needCopy, soName[i]) } } @@ -295,12 +293,12 @@ func copyLackFile() { if err != nil { fmt.Println(err) } - err = os.MkdirAll(fmt.Sprintf("../website/content/ChapterFour/%v", util.GetChpaterFourFileNum(tmp)), os.ModePerm) + err = os.MkdirAll(fmt.Sprintf("../website/content/ChapterFour/%v", GetChpaterFourFileNum(tmp)), os.ModePerm) if err != nil { fmt.Println(err) } - util.CopyFile(fmt.Sprintf("../website/content/ChapterFour/%v/%v.md", util.GetChpaterFourFileNum(tmp), needCopy[i]), fmt.Sprintf("../leetcode/%v/README.md", needCopy[i])) - util.CopyFile(fmt.Sprintf("../website/content/ChapterFour/%v/_index.md", util.GetChpaterFourFileNum(tmp)), "./template/collapseSection.md") + CopyFile(fmt.Sprintf("../website/content/ChapterFour/%v/%v.md", GetChpaterFourFileNum(tmp), needCopy[i]), fmt.Sprintf("../leetcode/%v/README.md", needCopy[i])) + CopyFile(fmt.Sprintf("../website/content/ChapterFour/%v/_index.md", GetChpaterFourFileNum(tmp)), "./template/collapseSection.md") } } } else { diff --git a/ctl/request.go b/ctl/request.go index 056d5e141..8222a1fc0 100644 --- a/ctl/request.go +++ b/ctl/request.go @@ -3,9 +3,10 @@ package main import ( "bytes" "fmt" - "github.com/mozillazg/request" "io/ioutil" "net/http" + + "github.com/mozillazg/request" ) const ( diff --git a/ctl/statistic.go b/ctl/statistic.go index 3fc7a18be..1541a842a 100644 --- a/ctl/statistic.go +++ b/ctl/statistic.go @@ -2,19 +2,16 @@ package main import ( "sort" - - m "github.com/halfrost/leetcode-go/ctl/models" - "github.com/halfrost/leetcode-go/ctl/util" ) -func statisticalData(problemsMap map[int]m.StatStatusPairs, solutionIds []int) (easyTotal, mediumTotal, hardTotal, optimizingEasy, optimizingMedium, optimizingHard int32, optimizingIds []int) { +func statisticalData(problemsMap map[int]StatStatusPairs, solutionIds []int) (easyTotal, mediumTotal, hardTotal, optimizingEasy, optimizingMedium, optimizingHard int32, optimizingIds []int) { easyTotal, mediumTotal, hardTotal, optimizingEasy, optimizingMedium, optimizingHard, optimizingIds = 0, 0, 0, 0, 0, 0, []int{} for _, v := range problemsMap { - switch m.DifficultyMap[v.Difficulty.Level] { + switch DifficultyMap[v.Difficulty.Level] { case "Easy": { easyTotal++ - if v.Status == "ac" && util.BinarySearch(solutionIds, int(v.Stat.FrontendQuestionID)) == -1 { + if v.Status == "ac" && BinarySearch(solutionIds, int(v.Stat.FrontendQuestionID)) == -1 { optimizingEasy++ optimizingIds = append(optimizingIds, int(v.Stat.FrontendQuestionID)) } @@ -22,7 +19,7 @@ func statisticalData(problemsMap map[int]m.StatStatusPairs, solutionIds []int) ( case "Medium": { mediumTotal++ - if v.Status == "ac" && util.BinarySearch(solutionIds, int(v.Stat.FrontendQuestionID)) == -1 { + if v.Status == "ac" && BinarySearch(solutionIds, int(v.Stat.FrontendQuestionID)) == -1 { optimizingMedium++ optimizingIds = append(optimizingIds, int(v.Stat.FrontendQuestionID)) } @@ -30,7 +27,7 @@ func statisticalData(problemsMap map[int]m.StatStatusPairs, solutionIds []int) ( case "Hard": { hardTotal++ - if v.Status == "ac" && util.BinarySearch(solutionIds, int(v.Stat.FrontendQuestionID)) == -1 { + if v.Status == "ac" && BinarySearch(solutionIds, int(v.Stat.FrontendQuestionID)) == -1 { optimizingHard++ optimizingIds = append(optimizingIds, int(v.Stat.FrontendQuestionID)) } diff --git a/ctl/models/tagproblem.go b/ctl/tagproblem.go similarity index 96% rename from ctl/models/tagproblem.go rename to ctl/tagproblem.go index 3c0581ca3..8acb2f6ef 100644 --- a/ctl/models/tagproblem.go +++ b/ctl/tagproblem.go @@ -1,12 +1,10 @@ -package models +package main import ( "encoding/json" "fmt" "strconv" "strings" - - "github.com/halfrost/leetcode-go/ctl/util" ) // Graphql define @@ -154,15 +152,15 @@ func standardizedTitle(orig string, frontendQuestionID int32) string { func GenerateTagMdRows(solutionIds []int, metaMap map[int]TagList, mdrows []Mdrow, internal bool) []TagList { tl := []TagList{} for _, row := range mdrows { - if util.BinarySearch(solutionIds, int(row.FrontendQuestionID)) != -1 { + if BinarySearch(solutionIds, int(row.FrontendQuestionID)) != -1 { tmp := TagList{} tmp.FrontendQuestionID = row.FrontendQuestionID tmp.QuestionTitle = strings.TrimSpace(row.QuestionTitle) s7 := standardizedTitle(row.QuestionTitle, row.FrontendQuestionID) if internal { - tmp.SolutionPath = fmt.Sprintf("[Go]({{< relref \"/ChapterFour/%v/%v.md\" >}})", util.GetChpaterFourFileNum(int(row.FrontendQuestionID)), fmt.Sprintf("%04d.%v", int(row.FrontendQuestionID), s7)) + tmp.SolutionPath = fmt.Sprintf("[Go]({{< relref \"/ChapterFour/%v/%v.md\" >}})", GetChpaterFourFileNum(int(row.FrontendQuestionID)), fmt.Sprintf("%04d.%v", int(row.FrontendQuestionID), s7)) } else { - tmp.SolutionPath = fmt.Sprintf("[Go](https://books.halfrost.com/leetcode/ChapterFour/%v/%v)", util.GetChpaterFourFileNum(int(row.FrontendQuestionID)), fmt.Sprintf("%04d.%v", int(row.FrontendQuestionID), s7)) + tmp.SolutionPath = fmt.Sprintf("[Go](https://books.halfrost.com/leetcode/ChapterFour/%v/%v)", GetChpaterFourFileNum(int(row.FrontendQuestionID)), fmt.Sprintf("%04d.%v", int(row.FrontendQuestionID), s7)) } tmp.Acceptance = row.Acceptance tmp.Difficulty = row.Difficulty diff --git a/ctl/template_render.go b/ctl/template_render.go index 5c86c0a46..ce6875b17 100644 --- a/ctl/template_render.go +++ b/ctl/template_render.go @@ -6,12 +6,9 @@ import ( "html/template" "io/ioutil" "os" - - m "github.com/halfrost/leetcode-go/ctl/models" - "github.com/halfrost/leetcode-go/ctl/util" ) -func makeReadmeFile(mdrows m.Mdrows) { +func makeReadmeFile(mdrows Mdrows) { file := "./README.md" os.Remove(file) var b bytes.Buffer @@ -21,7 +18,7 @@ func makeReadmeFile(mdrows m.Mdrows) { fmt.Println(err) } // 保存 README.md 文件 - util.WriteFile(file, b.Bytes()) + WriteFile(file, b.Bytes()) } func readTMPL(path string) string { diff --git a/ctl/models/user.go b/ctl/user.go similarity index 99% rename from ctl/models/user.go rename to ctl/user.go index d79dc6d5f..cf9a90c59 100644 --- a/ctl/models/user.go +++ b/ctl/user.go @@ -1,4 +1,4 @@ -package models +package main import ( "fmt" diff --git a/ctl/util/util.go b/ctl/util.go similarity index 99% rename from ctl/util/util.go rename to ctl/util.go index 4fcf5b025..e0efef9be 100644 --- a/ctl/util/util.go +++ b/ctl/util.go @@ -1,4 +1,4 @@ -package util +package main import ( "bufio" diff --git a/ctl/util/go.mod b/ctl/util/go.mod deleted file mode 100644 index 6127aeea8..000000000 --- a/ctl/util/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/halfrost/LeetCode-Go/ctl/util - -go 1.19