summaryrefslogtreecommitdiff
path: root/fs.go
diff options
context:
space:
mode:
Diffstat (limited to 'fs.go')
-rw-r--r--fs.go128
1 files changed, 14 insertions, 114 deletions
diff --git a/fs.go b/fs.go
index 86de16b..b76f182 100644
--- a/fs.go
+++ b/fs.go
@@ -45,121 +45,12 @@ func directoryExists(path string) bool {
return info.IsDir()
}
-// Find the configuration directory
-// Uses:
-// 1. PlANR_DIRECTORY env if set
-// 2. planr
-// 3. .planr
-func ConfigDir() string {
-
- // Return environmental override if set
- if dir, isSet := os.LookupEnv("PLANR_DIRECTORY"); isSet {
-
- if !directoryExists(dir) {
- log.Fatalf("Cannot find planr directory %s", dir);
- }
-
- return dir;
- }
-
- cwd, err := os.Getwd()
-
- if err != nil {
- log.Fatal(err)
- }
-
- var rubricDir string
-
- rubric_search_dirs := [2]string{
- "planr",
- ".planr",
- }
-
- found := traverseUp(cwd, func (path string) bool {
-
- for _, dir := range rubric_search_dirs {
- rubricDir = filepath.Join(path, dir)
-
- if directoryExists(rubricDir) {
- return true
- }
- }
-
- return false
- });
-
- if !found {
- log.Fatal("Could not find planr directory");
- }
-
- return rubricDir
-}
-
-func JoinConfigDir(path_ string, file string) string {
- if path.IsAbs(path_) {
- return path.Join(path_, file)
- }
-
- return path.Join(ConfigDir(), path_, file)
-}
-
-func RootDir() string {
- return path.Join(ConfigDir(), "..")
-}
-
-// Find rubric directory at PLANR_DIR/rubric
-func RubricDir() string {
- rubricDir := path.Join(ConfigDir(), "rubric");
-
- if !directoryExists(rubricDir) {
- log.Fatal("Could not find the rubric directory inside of planr")
- }
-
- return rubricDir
-}
-
-func BuildDir() string {
- buildDir := path.Join(ConfigDir(), "build")
-
- if !directoryExists(buildDir) {
- err := os.Mkdir(buildDir, 0755)
-
- if err != nil {
- log.Fatalf("Cannot create build directory %v\n", err)
- }
- }
-
- return buildDir
-}
-
-func CleanBuildDir() {
- buildDir := path.Join(ConfigDir(), "build")
- if err := os.RemoveAll(buildDir); err != nil {
- log.Fatalf("Cannot clean (removeAll) in build directory %v\n", err)
- }
-}
-
-func (ac AdapterConfig) Dir() string {
- dir := BuildDir()
- dir = path.Join(dir, ac.Name)
-
- if !directoryExists(dir) {
- err := os.Mkdir(dir, 0755)
-
- if err != nil {
- log.Fatalf("Cannot create build/%s directory %v\n", ac.Name, err)
- }
- }
-
- return dir
-}
-
func basename(path string) string {
ext := filepath.Ext(path)
return path[0:len(path) - len(ext)]
}
-func cname(root string, path string) string {
+func Cname(root string, path string) string {
rel, err := filepath.Rel(root, path)
if err != nil {
@@ -185,7 +76,8 @@ func collectUnits(root string, cfgs []AdapterConfig) []TestCase {
collectFromDir(root, nil, cfgs, &tcs)
for i := range tcs {
- tcs[i].Cname = cname(root, tcs[i].Path)
+ tcs[i].Cname = Cname(root, tcs[i].Path)
+ tcs[i].readIdx = i
}
return tcs
@@ -208,7 +100,7 @@ func collectFromDir(
// Process defaults for this directory if a defaults.toml is found
defaultsPath := path.Join(dir, DEFAULTS)
if info, err := os.Stat(defaultsPath); err == nil && !info.IsDir() {
- d, err := DecodeDefaults(defaultsPath, cfgs)
+ d, err := DecodeRubricDefaults(defaultsPath, cfgs)
if err != nil {
log.Fatalf("Error encounter in %s: %v\n", defaultsPath, err);
@@ -244,13 +136,15 @@ func collectFromDir(
}
// Decode a unit
- config, err := DecodeConfig(child, cfgs)
+ config, err := DecodeRubricConfig(child, cfgs)
if err != nil {
log.Fatalf("Error encountered in %s: %v", child, config)
}
- config.Inherit(*defaults)
+ if defaults != nil {
+ config.Inherit(*defaults)
+ }
tc := TestCase {
Path: child,
@@ -262,3 +156,9 @@ func collectFromDir(
}
}
}
+
+func safeCd(newWd string) {
+ if err := os.Chdir(newWd); err != nil {
+ log.Fatalf("Could not change into directory %v\n", err)
+ }
+}