func GetLogs(app *GoInk.App) []*logItem { dir := app.Get("log_dir") logs := make([]*logItem, 0) filepath.Walk(dir, func(_ string, info os.FileInfo, err error) error { if err == nil { if info.IsDir() { return nil } ext := filepath.Ext(info.Name()) if ext != ".log" { return nil } bytes, e := ioutil.ReadFile(filepath.Join(dir, info.Name())) if e != nil { return nil } l := new(logItem) l.Name = info.Name() l.CreateTime = info.ModTime().Unix() l.Text = string(bytes) logs = append([]*logItem{l}, logs...) } return nil }) return logs }
func upgrade_20140130(app *GoInk.App) bool { // change settings model.LoadSettings() model.SetSetting("c_footer_ga", "<!-- google analytics or other -->") model.SetSetting("enable_go_markdown", "false") model.SetSetting("enable_go_markdown_def", "false") model.SetSetting("site_theme", "default") model.SetSetting("site_theme_def", "default") model.SetSetting("c_home_avatar", "/static/img/site.png") model.SyncSettings() // init plugin plugin.Init() model.Storage.Dir("plugin") // remove static files os.RemoveAll(app.Get("view_dir")) os.RemoveAll(path.Join(app.Get("static_dir"), "less")) os.RemoveAll(path.Join(app.Get("static_dir"), "css")) os.RemoveAll(path.Join(app.Get("static_dir"), "img")) os.RemoveAll(path.Join(app.Get("static_dir"), "js")) os.RemoveAll(path.Join(app.Get("static_dir"), "lib")) os.Remove(path.Join(app.Get("static_dir"), "favicon.ico")) // extract current static files cmd.ExtractBundleBytes() // "c_footer_ga": "<!-- google analytics or other -->", // "enable_go_markdown": "true", // "enable_go_markdown_def": "false", // "site_theme": "ling", // "site_theme_def": "default", return true }
func upgrade_20140209(app *GoInk.App) bool { // clean template vDir := app.Get("view_dir") os.Remove(path.Join(vDir, "admin.layout")) os.Remove(path.Join(vDir, "cmd.layout")) // write default menu setting model.DefaultNavigators() // write message storage model.Storage.Set("messages", []*model.Message{}) cmd.ExtractBundleBytes() return true }
func Update(app *GoInk.App) { pluginHandlers, routeHandlers := Handlers() if len(routeHandlers) > 0 { for n, h := range routeHandlers { if usedHandler["route"][n] { continue } app.Route(h.Method, h.Pattern, h.Handler) usedHandler["route"][n] = true } } if len(pluginHandlers["middle"]) > 0 { for n, h := range pluginHandlers["middle"] { if usedHandler["middle"][n] { continue } app.Use(h) usedHandler["middle"][n] = true //println("use plugin middle handler",n) } //fmt.Println(usedHandler) } if len(pluginHandlers["inter"]) > 0 { for name, h := range pluginHandlers["inter"] { if usedHandler["inter"][name] { continue } if name == "static" { app.Static(h) usedHandler["inter"][name] = true continue } if name == "recover" { app.Recover(h) usedHandler["inter"][name] = true continue } if name == "notfound" { app.NotFound(h) usedHandler["inter"][name] = true continue } } } }
func upgrade_20140131(app *GoInk.App) bool { // re-write all data to non-indent json /*model.All() model.SyncContents() model.SyncFiles() model.SyncReaders() model.SyncSettings() model.SyncTokens() model.SyncUsers() model.SyncVersion()*/ // update ling template os.RemoveAll(path.Join(app.Get("view_dir"), "ling")) cmd.ExtractBundleBytes() return true }
// DoBackup backups whole files to zip archive. // If withData is false, it compresses static files to zip archive without data files, config files and install lock file. func DoBackup(app *GoInk.App, withData bool) (string, error) { os.Mkdir(backupDir, os.ModePerm) // create zip file name from time unix filename := path.Join(backupDir, utils.DateTime(time.Now(), "YYYYMMDDHHmmss")) if withData { filename += ".zip" } else { filename += "_static.zip" } z, e := zip.Create(filename) if e != nil { return "", e } root, _ := os.Getwd() if withData { // if with data, add install lock file and config file lockFile := path.Join(root, "install.lock") if utils.IsFile(lockFile) { z.AddFile("install.lock", lockFile) } configFile := path.Join(root, "config.json") if utils.IsFile(configFile) { z.AddFile("config.json", configFile) } } z.AddDir("static/css", path.Join(root, "static", "css")) z.AddDir("static/img", path.Join(root, "static", "img")) z.AddDir("static/js", path.Join(root, "static", "js")) z.AddDir("static/lib", path.Join(root, "static", "lib")) z.AddFile("static/favicon.ico", path.Join(root, "static", "favicon.ico")) if withData { // if with data, backup data files and uploaded files z.AddDir("data", path.Join(root, "data")) z.AddDir("static/upload", path.Join(root, "static", "upload")) } z.AddDir(app.View().Dir, path.Join(root, app.View().Dir)) e = z.Flush() if e != nil { return "", e } println("backup success in " + filename) return filename, nil }
func RemoveLogFile(app *GoInk.App, file string) { f := filepath.Join(app.Get("log_dir"), file) os.Remove(f) }