commit 4b011f0ce269c7725ff29f5b4d60059b233363b3
parent 06fea7a78f4a51a30fc5421a47a3515560a7c1fc
Author: Tyler Clark <tyler.clark@foxide.xyz>
Date: Sat, 25 Apr 2026 14:03:24 -0400
Adding the '-i' flag to ignore directories
Adding the '-i' flag to ignore directories within the project that should not be
converted into HTML files.
Diffstat:
| M | main.go | | | 29 | ++++++++++++++++++++++------- |
1 file changed, 22 insertions(+), 7 deletions(-)
diff --git a/main.go b/main.go
@@ -5,7 +5,7 @@
/* DONE: Basic functionality for converting markdown/org to html */
/* DONE: Recursively mirroring dir structure of source files */
/* DONE: Prepend and append header and footer on HTML files */
-/* TODO: Ignore non-valid file types and directories in the src */
+/* DONE: Ignore non-valid file types and directories in the src */
/* TODO: RSS generator built in */
/* TODO: Sitemap generator */
/*****************************************************************/
@@ -24,14 +24,15 @@ import (
"os" // File system and arguments
"os/exec" // For running OS operations
"path" // For removing and detecting file extensions
+ "regexp" // For matching directories
)
/* Version Number */
-const version = "0.0.3: Progress"
+const version = "0.0.4: Almost"
/* This is a test function to try to copy a directory */
-func DirSetup(source string, destination string) error {
+func DirSetup(source string, destination, invalidDir string) error {
srcInfo, err := os.Stat(source)
if os.IsNotExist(err) {
@@ -59,8 +60,15 @@ func DirSetup(source string, destination string) error {
srcPath := source + "/" + entry.Name()
dstPath := destination + "/" + entry.Name()
+ /* Ignore specified directories */
+ re := regexp.MustCompile(invalidDir)
+ if re.MatchString(destination) {
+ fmt.Println("Skipping directory:", srcPath)
+ return nil
+ }
+
if entry.IsDir() {
- err = DirSetup(srcPath, dstPath)
+ err = DirSetup(srcPath, dstPath, invalidDir)
if err != nil {
return err
}
@@ -85,12 +93,12 @@ func RemoveExt(filename string) string {
/* Into the corresponding file */
/* DONE: Add functionality to ignore non valid file types */
-/* TODO: Add functionality to ignore entire directories */
func ConvertFile(filepath, filename, destination string) error {
+ validFile := path.Ext(filename)
+
/* Skipping invalid file types */
/* Add support for .org files later */
- validFile := path.Ext(filename)
if validFile != ".md" {
fmt.Println("Skipping file:", filename)
return nil
@@ -128,12 +136,17 @@ func CallHelp() {
func ArgParser (argument[] string) {
cArgs := len(argument)
+ ignoreDir := os.DevNull
+ var srcDir, destDir string
for i := 0; i < cArgs; i++ {
switch argument[i] {
case "-h", "--help":
CallHelp()
os.Exit(0)
+ case "-i", "--ignore":
+ ignoreDir = argument[i + 1]
+ i++
case "-v", "--version":
println("Version:", version)
os.Exit(0)
@@ -145,10 +158,12 @@ func ArgParser (argument[] string) {
CallHelp()
os.Exit(1)
}
- DirSetup(argument[i], argument[i + 1])
+ srcDir = argument[i]
+ destDir = argument[i + 1]
i++
}
}
+ DirSetup(srcDir, destDir, ignoreDir)
}
func main() {