1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package sqlpath
- import (
- "fmt"
- "os"
- "path/filepath"
- "strings"
- "github.com/kyleconroy/sqlc/internal/migrations"
- )
- // Return a list of SQL files in the listed paths. Only includes files ending
- // in .sql. Omits hidden files, directories, and migrations.
- func Glob(paths []string) ([]string, error) {
- var files []string
- for _, path := range paths {
- f, err := os.Stat(path)
- if err != nil {
- return nil, fmt.Errorf("path %s does not exist", path)
- }
- if f.IsDir() {
- listing, err := os.ReadDir(path)
- if err != nil {
- return nil, err
- }
- for _, f := range listing {
- files = append(files, filepath.Join(path, f.Name()))
- }
- } else {
- files = append(files, path)
- }
- }
- var sqlFiles []string
- for _, file := range files {
- if !strings.HasSuffix(file, ".sql") {
- continue
- }
- if strings.HasPrefix(filepath.Base(file), ".") {
- continue
- }
- if migrations.IsDown(filepath.Base(file)) {
- continue
- }
- sqlFiles = append(sqlFiles, file)
- }
- return sqlFiles, nil
- }
|