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 @@
-
+
@@ -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