Changeset 8 in code
- Timestamp:
- Dec 5, 2014, 7:03:33 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/zs.go
r7 r8 38 38 "file": path, 39 39 "url": url, 40 "outdir": PUBDIR,41 40 "output": filepath.Join(PUBDIR, url), 42 41 "layout": "index.html", … … 90 89 91 90 func env(vars map[string]string) []string { 92 env := []string{"ZS=" + os.Args[0] }91 env := []string{"ZS=" + os.Args[0], "ZS_OUTDIR=" + PUBDIR} 93 92 env = append(env, os.Environ()...) 94 for k, v := range vars { 95 env = append(env, "ZS_"+strings.ToUpper(k)+"="+v) 93 if vars != nil { 94 for k, v := range vars { 95 env = append(env, "ZS_"+strings.ToUpper(k)+"="+v) 96 } 96 97 } 97 98 return env … … 160 161 } 161 162 162 func copyFile(path string) error { 163 if in, err := os.Open(path); err != nil { 164 return err 165 } else { 163 func copyFile(path string) (err error) { 164 var in, out *os.File 165 if in, err = os.Open(path); err == nil { 166 166 defer in.Close() 167 if stat, err := in.Stat(); err != nil { 168 return err 169 } else { 170 // Directory? 171 if stat.Mode().IsDir() { 172 os.Mkdir(filepath.Join(PUBDIR, path), 0755) 173 return nil 174 } 175 if !stat.Mode().IsRegular() { 176 return nil 177 } 178 } 179 if out, err := os.Create(filepath.Join(PUBDIR, path)); err != nil { 180 return err 181 } else { 167 if out, err = os.Create(filepath.Join(PUBDIR, path)); err == nil { 182 168 defer out.Close() 183 169 _, err = io.Copy(out, in) 184 return err185 186 }170 } 171 } 172 return err 187 173 } 188 174 189 175 func buildAll(once bool) { 190 176 lastModified := time.Unix(0, 0) 177 modified := false 191 178 for { 192 179 os.Mkdir(PUBDIR, 0755) … … 197 184 } 198 185 199 if info.ModTime().After(lastModified) { 186 if info.IsDir() { 187 os.Mkdir(filepath.Join(PUBDIR, path), 0755) 188 return nil 189 } else if info.ModTime().After(lastModified) { 190 if !modified { 191 // About to be modified, so run pre-build hook 192 run(filepath.Join(ZSDIR, "pre"), []string{}, nil, nil) 193 modified = true 194 } 200 195 ext := filepath.Ext(path) 201 196 if ext == ".md" || ext == "mkd" { … … 211 206 if err != nil { 212 207 log.Println("ERROR:", err) 208 } 209 if modified { 210 // Something was modified, so post-build hook 211 run(filepath.Join(ZSDIR, "post"), []string{}, nil, nil) 212 modified = false 213 213 } 214 214 lastModified = time.Now()
Note:
See TracChangeset
for help on using the changeset viewer.