diff --git a/.gitignore b/.gitignore index 82662a3..aa2589a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ .DS_Store .vscode .env -parser/domains.csv +pkg/parser/domains.csv dist diff --git a/README.md b/README.md index 23ebabf..9c30542 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

- jedi + jedi

@@ -16,7 +16,7 @@ Copy websites to your computer! Goclone is a utility that allows you to download


-![Example](/docs/media/colab.gif) +![Example](/pkg/docs/media/colab.gif) ## Table of Contents - [Installation](#installation) @@ -59,7 +59,7 @@ go install Visit the Notion link [here](https://www.notion.so/0f3cb918168b48ffa5072c6ee39281ee?v=5330c26bd2d747dfac07882347b4a1df) to view Goclone's feature/bug progress. -![Notion](/docs/media/progress.png) +![Notion](/pkg/docs/media/progress.png) @@ -70,7 +70,7 @@ Visit the Notion link [here](https://www.notion.so/0f3cb918168b48ffa5072c goclone https://dribbble.com ``` -![Dribbble](/docs/media/dribbble.gif) +![Dribbble](/pkg/docs/media/dribbble.gif) diff --git a/cmd/clone.go b/cmd/goclone/clone.go similarity index 63% rename from cmd/clone.go rename to cmd/goclone/clone.go index 37d023b..d320ed6 100644 --- a/cmd/clone.go +++ b/cmd/goclone/clone.go @@ -1,14 +1,15 @@ -package cmd +package goclone import ( "fmt" + "os/exec" - "github.com/imthaghost/goclone/crawler" - "github.com/imthaghost/goclone/file" - "github.com/imthaghost/goclone/html" - "github.com/imthaghost/goclone/parser" - "github.com/imthaghost/goclone/server" + "github.com/imthaghost/goclone/pkg/crawler" + "github.com/imthaghost/goclone/pkg/file" + "github.com/imthaghost/goclone/pkg/html" + "github.com/imthaghost/goclone/pkg/parser" + "github.com/imthaghost/goclone/pkg/server" ) // Clone the given site :) @@ -23,33 +24,33 @@ func cloneSite(args []string) { // use the domain as the project name name := url // CreateProject - projectpath := file.CreateProject(name) + projectPath := file.CreateProject(name) // create the url validURL := parser.CreateURL(name) // Crawler - crawler.Crawl(validURL, projectpath) + crawler.Crawl(validURL, projectPath) // Restructure html - html.LinkRestructure(projectpath) + html.LinkRestructure(projectPath) err := exec.Command("open", "http://localhost:5000").Start() if err != nil { panic(err) } - server.Serve(projectpath) + server.Serve(projectPath) } else if parser.ValidateURL(url) { // get the hostname name := parser.GetDomain(url) // create project - projectpath := file.CreateProject(name) + projectPath := file.CreateProject(name) // Crawler - crawler.Crawl(url, projectpath) + crawler.Crawl(url, projectPath) // Restructure html - html.LinkRestructure(projectpath) + html.LinkRestructure(projectPath) err := exec.Command("open", "http://localhost:5000").Start() if err != nil { panic(err) } - server.Serve(projectpath) + server.Serve(projectPath) } else { fmt.Print(url) } @@ -61,16 +62,16 @@ func cloneSite(args []string) { // use the domain as the project name name := url // CreateProject - projectpath := file.CreateProject(name) + projectPath := file.CreateProject(name) // create the url validURL := parser.CreateURL(name) // Crawler - crawler.Crawl(validURL, projectpath) + crawler.Crawl(validURL, projectPath) // Restructure html - html.LinkRestructure(projectpath) + html.LinkRestructure(projectPath) if Open { // automatically open project - err := exec.Command("open", projectpath+"/index.html").Start() + err := exec.Command("open", projectPath+"/index.html").Start() if err != nil { panic(err) } @@ -80,13 +81,13 @@ func cloneSite(args []string) { // get the hostname name := parser.GetDomain(url) // create project - projectpath := file.CreateProject(name) + projectPath := file.CreateProject(name) // Crawler - crawler.Crawl(url, projectpath) + crawler.Crawl(url, projectPath) // Restructure html - html.LinkRestructure(projectpath) + html.LinkRestructure(projectPath) if Open { - err := exec.Command("open", projectpath+"/index.html").Start() + err := exec.Command("open", projectPath+"/index.html").Start() if err != nil { panic(err) } diff --git a/cmd/root.go b/cmd/goclone/root.go similarity index 97% rename from cmd/root.go rename to cmd/goclone/root.go index b22eb85..ce5d191 100644 --- a/cmd/root.go +++ b/cmd/goclone/root.go @@ -1,10 +1,8 @@ -package cmd +package goclone import ( - "log" - "os" - "github.com/spf13/cobra" + "log" ) var ( @@ -45,6 +43,5 @@ func Execute() { // Execute the command :) if err := rootCmd.Execute(); err != nil { log.Fatal(err) - os.Exit(1) } } diff --git a/cmd/main.go b/cmd/main.go new file mode 100644 index 0000000..80d81ae --- /dev/null +++ b/cmd/main.go @@ -0,0 +1,9 @@ +package main + +import ( + "github.com/imthaghost/goclone/cmd/goclone" +) + +func main() { + goclone.Execute() +} diff --git a/main.go b/main.go deleted file mode 100644 index 8180386..0000000 --- a/main.go +++ /dev/null @@ -1,7 +0,0 @@ -package main - -import "github.com/imthaghost/goclone/cmd" - -func main() { - cmd.Execute() -} diff --git a/crawler/collector.go b/pkg/crawler/collector.go similarity index 100% rename from crawler/collector.go rename to pkg/crawler/collector.go diff --git a/crawler/crawler.go b/pkg/crawler/crawler.go similarity index 100% rename from crawler/crawler.go rename to pkg/crawler/crawler.go diff --git a/crawler/extractor.go b/pkg/crawler/extractor.go similarity index 97% rename from crawler/extractor.go rename to pkg/crawler/extractor.go index d83dd9f..3e4b785 100644 --- a/crawler/extractor.go +++ b/pkg/crawler/extractor.go @@ -7,7 +7,7 @@ import ( "os" "path/filepath" - "github.com/imthaghost/goclone/parser" + "github.com/imthaghost/goclone/pkg/parser" ) // file extension map for directing files to their proper directory in O(1) time diff --git a/crawler/html.go b/pkg/crawler/html.go similarity index 100% rename from crawler/html.go rename to pkg/crawler/html.go diff --git a/docs/CONTRIBUTING.md b/pkg/docs/CONTRIBUTING.md similarity index 100% rename from docs/CONTRIBUTING.md rename to pkg/docs/CONTRIBUTING.md diff --git a/docs/media/colab.gif b/pkg/docs/media/colab.gif similarity index 100% rename from docs/media/colab.gif rename to pkg/docs/media/colab.gif diff --git a/docs/media/dribbble.gif b/pkg/docs/media/dribbble.gif similarity index 100% rename from docs/media/dribbble.gif rename to pkg/docs/media/dribbble.gif diff --git a/docs/media/fast.gif b/pkg/docs/media/fast.gif similarity index 100% rename from docs/media/fast.gif rename to pkg/docs/media/fast.gif diff --git a/docs/media/logo.png b/pkg/docs/media/logo.png similarity index 100% rename from docs/media/logo.png rename to pkg/docs/media/logo.png diff --git a/docs/media/progress.png b/pkg/docs/media/progress.png similarity index 100% rename from docs/media/progress.png rename to pkg/docs/media/progress.png diff --git a/file/write.go b/pkg/file/write.go similarity index 100% rename from file/write.go rename to pkg/file/write.go diff --git a/html/arrange.go b/pkg/html/arrange.go similarity index 100% rename from html/arrange.go rename to pkg/html/arrange.go diff --git a/html/formatter.go b/pkg/html/formatter.go similarity index 100% rename from html/formatter.go rename to pkg/html/formatter.go diff --git a/html/formatter_test.go b/pkg/html/formatter_test.go similarity index 100% rename from html/formatter_test.go rename to pkg/html/formatter_test.go diff --git a/html/sorter.go b/pkg/html/sorter.go similarity index 100% rename from html/sorter.go rename to pkg/html/sorter.go diff --git a/parser/create_url_test.go b/pkg/parser/create_url_test.go similarity index 100% rename from parser/create_url_test.go rename to pkg/parser/create_url_test.go diff --git a/parser/extension.go b/pkg/parser/extension.go similarity index 100% rename from parser/extension.go rename to pkg/parser/extension.go diff --git a/parser/filename.go b/pkg/parser/filename.go similarity index 100% rename from parser/filename.go rename to pkg/parser/filename.go diff --git a/parser/get_domain_test.go b/pkg/parser/get_domain_test.go similarity index 100% rename from parser/get_domain_test.go rename to pkg/parser/get_domain_test.go diff --git a/parser/path_filename_test.go b/pkg/parser/path_filename_test.go similarity index 100% rename from parser/path_filename_test.go rename to pkg/parser/path_filename_test.go diff --git a/parser/url.go b/pkg/parser/url.go similarity index 100% rename from parser/url.go rename to pkg/parser/url.go diff --git a/parser/url_extension_test.go b/pkg/parser/url_extension_test.go similarity index 100% rename from parser/url_extension_test.go rename to pkg/parser/url_extension_test.go diff --git a/parser/url_filename_test.go b/pkg/parser/url_filename_test.go similarity index 100% rename from parser/url_filename_test.go rename to pkg/parser/url_filename_test.go diff --git a/parser/valid_domain_test.go b/pkg/parser/valid_domain_test.go similarity index 100% rename from parser/valid_domain_test.go rename to pkg/parser/valid_domain_test.go diff --git a/parser/valid_url_test.go b/pkg/parser/valid_url_test.go similarity index 100% rename from parser/valid_url_test.go rename to pkg/parser/valid_url_test.go diff --git a/server/server.go b/pkg/server/server.go similarity index 100% rename from server/server.go rename to pkg/server/server.go