Select Git revision
file_system.go
-
Johan de Klerk authoredJohan de Klerk authored
file_system.go 3.33 KiB
package mage_helpers
import (
"context"
"fmt"
"io"
"io/ioutil"
"log"
"os"
"os/exec"
"os/signal"
"path"
"path/filepath"
"strings"
"github.com/thoas/go-funk"
"github.com/magefile/mage/sh"
)
func GetDirs(path string) []os.FileInfo {
filesDir, err := ioutil.ReadDir(path)
// filesDir, err := ioutil.ReadDir("/Users/johan/src/Shiplogic/backends/backend/billing")
if err != nil {
log.Fatal(err)
}
dirs := funk.Filter(filesDir, func(info os.FileInfo) bool {
if info.IsDir() && info.Name() == "build" {
return false
}
return info.IsDir()
}).([]os.FileInfo)
return dirs
}
func copyFilesToBuildDir(currentDir string, buildDir string) error {
files, err := AllFiles(currentDir)
if err != nil {
return err
}
for _, file := range files {
fileExtension := filepath.Ext(file)
if fileExtension == ".go" || fileExtension == ".md" || fileExtension == ".html" || fileExtension == ".mjml" || fileExtension == ".txt" {
continue
}
// Copy files to build DIR
err := Copy(file, buildDir+"/"+path.Base(file))
if err != nil {
return err
}
}
return nil
}
func AllFiles(dir string) ([]string, error) {
files := []string{}
err := filepath.Walk(dir,
func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if info.IsDir() {
return nil
}
files = append(files, path)