コード例 #1
0
ファイル: log.go プロジェクト: carriercomm/GoBlog
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
}
コード例 #2
0
ファイル: v20140130.go プロジェクト: carriercomm/GoBlog
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
}
コード例 #3
0
ファイル: v20140209.go プロジェクト: carriercomm/GoBlog
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
}
コード例 #4
0
ファイル: plugin.go プロジェクト: flying99999/GoBlog
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
			}
		}
	}
}
コード例 #5
0
ファイル: v20140131.go プロジェクト: flying99999/GoBlog
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
}
コード例 #6
0
ファイル: backup.go プロジェクト: flying99999/GoBlog
// 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
}
コード例 #7
0
ファイル: log.go プロジェクト: carriercomm/GoBlog
func RemoveLogFile(app *GoInk.App, file string) {
	f := filepath.Join(app.Get("log_dir"), file)
	os.Remove(f)
}