本文整理汇总了Golang中github.com/Unknwon/com.IsFile函数的典型用法代码示例。如果您正苦于以下问题:Golang IsFile函数的具体用法?Golang IsFile怎么用?Golang IsFile使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了IsFile函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: needCheckUpdate
func needCheckUpdate() bool {
// Does not have record for check update.
stamp, err := Cfg.Int64("app", "update_check_time")
if err != nil {
return true
}
if !com.IsFile("conf/docTree.json") || !com.IsFile("conf/blogTree.json") {
return true
}
return time.Unix(stamp, 0).Add(5 * time.Minute).Before(time.Now())
}
示例2: copyAssets
// copy static assets
func (b *Builder) copyAssets(ctx *Context, srcDir string, dstDir string) error {
return filepath.Walk(srcDir, func(p string, fi os.FileInfo, err error) error {
if err != nil {
return err
}
if fi.IsDir() {
return nil
}
// if file exist, check mod time
rel, _ := filepath.Rel(srcDir, p)
toFile := filepath.Join(dstDir, rel)
if com.IsFile(toFile) {
if fi2, _ := os.Stat(toFile); fi2 != nil {
if fi2.ModTime().Sub(fi.ModTime()).Seconds() > 0 {
ctx.Diff.Add(toFile, DIFF_KEEP, fi2.ModTime())
return nil
}
if err := helper.CopyFile(p, toFile); err != nil {
return err
}
ctx.Diff.Add(toFile, DIFF_UPDATE, time.Now())
return nil
}
}
// not exist, just copy
if err := helper.CopyFile(p, toFile); err != nil {
return err
}
ctx.Diff.Add(toFile, DIFF_ADD, time.Now())
return nil
})
}
示例3: LoadPkgNameList
func LoadPkgNameList(filePath string) {
PackageNameList = make(map[string]string)
// If file does not exist, simply ignore.
if !com.IsFile(filePath) {
return
}
data, err := ioutil.ReadFile(filePath)
if err != nil {
log.Error("Package name list", "Fail to read file")
log.Fatal("", err.Error())
}
pkgs := strings.Split(string(data), "\n")
for i, line := range pkgs {
infos := strings.Split(line, "=")
if len(infos) != 2 {
// Last item might be empty line.
if i == len(pkgs)-1 {
continue
}
log.Error("", "Fail to parse package name: "+line)
log.Fatal("", "Invalid package name information")
}
PackageNameList[strings.TrimSpace(infos[0])] =
strings.TrimSpace(infos[1])
}
}
示例4: TarGzDownload
func TarGzDownload(ctx *middleware.Context, params martini.Params) {
commitId := ctx.Repo.CommitId
archivesPath := filepath.Join(ctx.Repo.GitRepo.Path, "archives/targz")
if !com.IsDir(archivesPath) {
if err := os.MkdirAll(archivesPath, 0755); err != nil {
ctx.Handle(404, "TarGzDownload -> os.Mkdir(archivesPath)", err)
return
}
}
archivePath := filepath.Join(archivesPath, commitId+".tar.gz")
if com.IsFile(archivePath) {
ctx.ServeFile(archivePath, ctx.Repo.Repository.Name+".tar.gz")
return
}
err := ctx.Repo.Commit.CreateArchive(archivePath, git.AT_TARGZ)
if err != nil {
ctx.Handle(404, "TarGzDownload -> CreateArchive "+archivePath, err)
return
}
ctx.ServeFile(archivePath, ctx.Repo.Repository.Name+".tar.gz")
}
示例5: Pages
func Pages(ctx *middleware.Context) {
toc := models.Tocs[ctx.Locale.Language()]
if toc == nil {
toc = models.Tocs[setting.Docs.Langs[0]]
}
pageName := strings.ToLower(strings.TrimSuffix(ctx.Req.URL.Path[1:], ".html"))
for i := range toc.Pages {
if toc.Pages[i].Name == pageName {
page := toc.Pages[i]
if !com.IsFile(page.FileName) {
ctx.Data["IsShowingDefault"] = true
page = models.Tocs[setting.Docs.Langs[0]].Pages[i]
}
if !setting.ProdMode {
page.ReloadContent()
}
ctx.Data["Title"] = page.Title
ctx.Data["Content"] = fmt.Sprintf(`<script type="text/javascript" src="/%s/%s?=%d"></script>`, toc.Lang, page.DocumentPath+".js", page.LastBuildTime)
ctx.Data["Pages"] = toc.Pages
renderEditPage(ctx, page.DocumentPath)
ctx.HTML(200, "docs")
return
}
}
NotFound(ctx)
}
示例6: regenerate
func (p *FileProvider) regenerate(oldsid, sid string) (err error) {
p.lock.Lock()
defer p.lock.Unlock()
filename := p.filepath(sid)
if com.IsExist(filename) {
return fmt.Errorf("new sid '%s' already exists", sid)
}
oldname := p.filepath(oldsid)
if !com.IsFile(oldname) {
data, err := EncodeGob(make(map[interface{}]interface{}))
if err != nil {
return err
}
if err = os.MkdirAll(path.Dir(oldname), os.ModePerm); err != nil {
return err
}
if err = ioutil.WriteFile(oldname, data, os.ModePerm); err != nil {
return err
}
}
if err = os.MkdirAll(path.Dir(filename), os.ModePerm); err != nil {
return err
}
if err = os.Rename(oldname, filename); err != nil {
return err
}
return nil
}
示例7: InitSetting
func InitSetting() {
var err error
WorkDir, err = os.Getwd()
if err != nil {
log.Fatal("Fail to get work directory: %v", err)
}
confPath := path.Join(WorkDir, ".bra.toml")
if !com.IsFile(confPath) {
log.Fatal(".bra.toml not found in work directory")
} else if _, err = toml.DecodeFile(confPath, &Cfg); err != nil {
log.Fatal("Fail to decode .bra.toml: %v", err)
}
if Cfg.Run.InterruptTimeout == 0 {
Cfg.Run.InterruptTimeout = 15
}
// Init default ignore lists.
Cfg.Run.IgnoreDirs = com.AppendStr(Cfg.Run.IgnoreDirs, ".git")
Cfg.Run.IgnoreRegexps = make([]*regexp.Regexp, len(Cfg.Run.IgnoreFiles))
for i, regStr := range Cfg.Run.IgnoreFiles {
Cfg.Run.IgnoreRegexps[i], err = regexp.Compile(regStr)
if err != nil {
log.Fatal("Invalid regexp[%s]: %v", regStr, err)
}
}
}
示例8: ExampleIsFile
func ExampleIsFile() {
if com.IsFile("file.go") {
fmt.Println("file.go exists")
return
}
fmt.Println("file.go is not a file or does not exist")
}
示例9: TestRegister
func TestRegister(t *testing.T) {
e := s.Register(new(School), 55)
if e != nil {
t.Error(e)
return
}
name := strings.ToLower(fmt.Sprint(reflect.TypeOf(new(School)).Elem()))
sc := s.schema[name]
if sc == nil {
printError(t, "RegisterNoSchema", name, nil)
return
}
if sc.PK != "Id" {
printError(t, "RegisterPk", "Id", sc.PK)
return
}
if sc.Index[0] != "Rank" {
printError(t, "RegisterIndexHas", "Rank", sc.Index[1])
return
}
file := path.Join(directory, name, "rank.idx")
if !com.IsFile(file) {
printError(t, "RegisterHasFile:"+file, true, false)
return
}
if sc.ChunkSize != 55 {
printError(t, "RegisterChunkSize", 55, sc.ChunkSize)
}
}
示例10: DeleteUploads
func DeleteUploads(uploads ...*Upload) (err error) {
if len(uploads) == 0 {
return nil
}
sess := x.NewSession()
defer sessionRelease(sess)
if err = sess.Begin(); err != nil {
return err
}
ids := make([]int64, len(uploads))
for i := 0; i < len(uploads); i++ {
ids[i] = uploads[i].ID
}
if _, err = sess.In("id", ids).Delete(new(Upload)); err != nil {
return fmt.Errorf("delete uploads: %v", err)
}
for _, upload := range uploads {
localPath := upload.LocalPath()
if !com.IsFile(localPath) {
continue
}
if err := os.Remove(localPath); err != nil {
return fmt.Errorf("remove upload: %v", err)
}
}
return sess.Commit()
}
示例11: init
func init() {
var err error
Cfg, err = ini.Load(CFG_PATH)
if err != nil {
panic(fmt.Errorf("fail to load config file '%s': %v", CFG_PATH, err))
}
if com.IsFile(CFG_CUSTOM_PATH) {
if err = Cfg.Append(CFG_CUSTOM_PATH); err != nil {
panic(fmt.Errorf("fail to load config file '%s': %v", CFG_CUSTOM_PATH, err))
}
}
appNames := Cfg.Section("").Key("apps").Strings(",")
Apps = make([]App, len(appNames))
for i, name := range appNames {
Apps[i] = App{name, Cfg.Section(name).Key("repo_name").String()}
}
sec := Cfg.Section("app")
if sec.Key("run_mode").MustString("dev") == "prod" {
macaron.Env = macaron.PROD
}
HttpPort = sec.Key("http_port").MustInt(8091)
Https = sec.Key("https").MustBool()
HttpsCert = sec.Key("https_cert").String()
HttpsKey = sec.Key("https_key").String()
Langs = Cfg.Section("i18n").Key("langs").Strings(",")
Names = Cfg.Section("i18n").Key("names").Strings(",")
setGithubCredentials(Cfg.Section("github").Key("client_id").String(), Cfg.Section("github").Key("client_secret").String())
}
示例12: GetCurrentTheme
// get current theme
func GetCurrentTheme() (*Theme, error) {
themeSetting, err := GetSettings("theme")
if err != nil {
return nil, err
}
t := new(Theme)
t.Directory = themeSetting["theme"]
t.IsCurrent = true
tomlFile := path.Join("static", t.Directory, "theme.toml")
if com.IsFile(tomlFile) {
if _, err := toml.DecodeFile(tomlFile, t); err != nil {
log.Error("Db|GetCurrentTheme|%s|%s", tomlFile, err.Error())
return nil, err
}
}
// fill data
if t.Name == "" {
t.Name = t.Directory
}
if t.Version == "" {
t.Version = "0.0"
}
return t, nil
}
示例13: Download
func Download(ctx *middleware.Context) {
ext := "." + ctx.Params(":ext")
var archivePath string
switch ext {
case ".zip":
archivePath = path.Join(ctx.Repo.GitRepo.Path, "archives/zip")
case ".tar.gz":
archivePath = path.Join(ctx.Repo.GitRepo.Path, "archives/targz")
default:
ctx.Error(404)
return
}
if !com.IsDir(archivePath) {
if err := os.MkdirAll(archivePath, os.ModePerm); err != nil {
ctx.Handle(500, "Download -> os.MkdirAll(archivePath)", err)
return
}
}
archivePath = path.Join(archivePath, ctx.Repo.CommitId+ext)
if !com.IsFile(archivePath) {
if err := ctx.Repo.Commit.CreateArchive(archivePath, git.ZIP); err != nil {
ctx.Handle(500, "Download -> CreateArchive "+archivePath, err)
return
}
}
ctx.ServeFile(archivePath, ctx.Repo.Repository.Name+"-"+base.ShortSha(ctx.Repo.CommitId)+ext)
}
示例14: makeLink
func makeLink(srcPath, destPath string) error {
// Check if Windows version is XP.
if getWindowsVersion() >= 6 {
cmd := exec.Command("cmd", "/c", "mklink", "/j", destPath, srcPath)
return cmd.Run()
}
// XP.
isWindowsXP = true
// if both are ntfs file system
if volumnType(srcPath) == "NTFS" && volumnType(destPath) == "NTFS" {
// if has junction command installed
file, err := exec.LookPath("junction")
if err == nil {
path, _ := filepath.Abs(file)
if com.IsFile(path) {
cmd := exec.Command("cmd", "/c", "junction", destPath, srcPath)
return cmd.Run()
}
}
}
os.RemoveAll(destPath)
return com.CopyDir(srcPath, destPath, func(filePath string) bool {
return strings.Contains(filePath, doc.VENDOR)
})
}
示例15: validPath
// validPath checks if the information of the package is valid.
func validPath(info string) (string, string) {
infos := strings.Split(info, ":")
l := len(infos)
switch {
case l == 1:
// for local imports
if com.IsFile(infos[0]) {
return doc.LOCAL, infos[0]
}
return doc.BRANCH, ""
case l == 2:
switch infos[1] {
case doc.TRUNK, doc.MASTER, doc.DEFAULT:
infos[1] = ""
}
return infos[0], infos[1]
default:
log.Error("", "Cannot parse dependency version:")
log.Error("", "\t"+info)
log.Help("Try 'gopm help get' to get more information")
return "", ""
}
}