GenGo

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

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:
Mmain.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() {