···5555 return false
5656}
57575858+// ExistsOrCreate will create a directory unless it already Exists
5959+func ExistsOrCreate(path string) (err error) {
6060+ if !Exists(path) {
6161+ log.WithFields(log.Fields{"path": path}).Info("creating directory")
6262+ err = os.MkdirAll(path, os.ModePerm)
6363+ }
6464+ return
6565+}
6666+5867// LastModified returns the time the file on the path was last modified,
5968// if file lookup fails the current time is returned.
6069func LastModified(path string) time.Time {
···3838 BookScoreTempl string // Override for the partial book template placing scores
3939 LatexResources []string // Files to be copied to compile the book template
4040 KeepBookTemplate bool // Leave the LaTeX source for the book in the output directory
4141+ FlatOutputDir bool // Keep all output file in a flat output directory
4142}
42434344// FromFile reads a settings file in json format and returns the Settings struct