本文整理汇总了Golang中github.com/fxnn/gopath.GoPath类的典型用法代码示例。如果您正苦于以下问题:Golang GoPath类的具体用法?Golang GoPath怎么用?Golang GoPath使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了GoPath类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: WriteAllTemplates
func (l *StaticLoader) WriteAllTemplates(targetDir gopath.GoPath) error {
if err := os.MkdirAll(targetDir.Path(), 0777); err != nil {
return fmt.Errorf("couldn't create dir %s: %s", targetDir, err)
}
for _, name := range resources.AllFileNames {
var targetFile = targetDir.JoinPath(name)
if targetFile.HasErr() {
return fmt.Errorf("couldn't create path for template %s: %s", name, targetFile.Err())
}
content, err := resources.FSString(l.useLocalTemplates, name)
if err != nil {
return fmt.Errorf("couldn't open template %s: %s", name, err)
}
err = os.MkdirAll(targetFile.Dir().Path(), 0777)
if err != nil {
return fmt.Errorf("couldn't create directory %s: %s", targetFile.Dir().Path(), err)
}
out, err := os.Create(targetFile.Path())
if err != nil {
return fmt.Errorf("couldn't create file %s: %s", targetFile, err)
}
out.WriteString(content)
if out.Close(); err != nil {
return fmt.Errorf("couldn't close file %s: %s", targetFile, err)
}
}
return nil
}
开发者ID:fxnn,项目名称:gone,代码行数:34,代码来源:static.go
示例2: isPathWriteable
func isPathWriteable(p gopath.GoPath) bool {
if p.IsDirectory() {
return isDirWriteable(p)
}
return isFileWriteable(p)
}
开发者ID:fxnn,项目名称:gone,代码行数:7,代码来源:pathio_windows.go
示例3: guessExtension
// guessExtension tries to append the file extension, if missing.
// If the given path points to a valid file, simply returns the argument.
// Otherwise, it looks for all files in the directory beginning with the
// filename and a dot ("."), and returns the first match in alphabetic order.
func (i *pathIO) guessExtension(p gopath.GoPath) gopath.GoPath {
var match = p.Append(".*").GlobAny().PrependErr("couldn't guess extension")
if match.Path() != "" {
return i.syncedErrs(match)
}
return p
}
开发者ID:fxnn,项目名称:gone,代码行数:11,代码来源:pathio.go
示例4: assertPathValidForAnyAccess
// assertPathValidForAnyAccess sets the error flag when the path may not be
// accessed through this application in general.
// User-specific access permissions are NOT regarded here.
func (i *pathIO) assertPathValidForAnyAccess(p gopath.GoPath) {
if p.HasErr() {
i.syncedErrs(p)
} else {
i.assertFileIsNotHidden(p)
i.assertPathInsideContentRoot(p)
}
}
开发者ID:fxnn,项目名称:gone,代码行数:11,代码来源:pathio.go
示例5: indexForDirectory
// indexForDirectory finds the index document inside the given directory.
// On success, it returns the path to the index document, otherwise it simply
// returns the given path.
//
// Doesn't set the Err() value.
func (i *pathIO) indexForDirectory(dir gopath.GoPath) gopath.GoPath {
var index = dir.JoinPath("index").Do(i.guessExtension).AssertExists()
if index.HasErr() {
return dir
}
return index
}
开发者ID:fxnn,项目名称:gone,代码行数:13,代码来源:pathio.go
示例6: htpasswdFilePath
func htpasswdFilePath(contentRoot gopath.GoPath) gopath.GoPath {
htpasswdFile := contentRoot.JoinPath(".htpasswd")
if !htpasswdFile.IsExists() {
log.Printf("no .htpasswd found")
} else {
log.Printf("using authentication data from .htpasswd")
}
return htpasswdFile
}
开发者ID:fxnn,项目名称:gone,代码行数:9,代码来源:gone.go
示例7: syncedErrs
// syncedErrs couples GoPath's error handling with errStore's error handling.
// When the GoPath contained an error, it will be stored in the errStore, so
// that all following ops become no-ops.
// When however the errStore contains an error, an errorneous GoPath will be
// returned.
func (s *errStore) syncedErrs(p gopath.GoPath) gopath.GoPath {
if s.hasErr() {
return gopath.FromErr(s.err)
}
if p.HasErr() {
s.setErr(p.Err())
}
return p
}
开发者ID:fxnn,项目名称:gone,代码行数:14,代码来源:errStore.go
示例8: openReaderAtPath
func (i *pathIO) openReaderAtPath(p gopath.GoPath) (reader io.ReadCloser) {
i.assertPathValidForAnyAccess(p)
if i.hasErr() {
i.prependErr(fmt.Sprintf("cannot open reader for '%s'", p))
return nil
}
reader, err := os.Open(p.Path())
i.setErr(err)
i.prependErr(fmt.Sprintf("couldn't open reader for '%s'", p))
return
}
开发者ID:fxnn,项目名称:gone,代码行数:13,代码来源:pathio.go
示例9: openWriterAtPath
func (i *pathIO) openWriterAtPath(p gopath.GoPath) (writer io.WriteCloser) {
i.assertPathValidForAnyAccess(p)
i.assertPathValidForWriteAccess(p)
if i.hasErr() {
i.prependErr(fmt.Sprintf("cannot open writer for '%s'", p))
return nil
}
writer, err := os.Create(p.Path())
i.setErr(err)
i.prependErr(fmt.Sprintf("couldn't open writer for '%s'", p))
return
}
开发者ID:fxnn,项目名称:gone,代码行数:14,代码来源:pathio.go
示例10: first512BytesForPath
func (m *mimeDetector) first512BytesForPath(p gopath.GoPath) []byte {
if p.HasErr() {
return nil
}
var readCloser = m.openReaderAtPath(p)
if m.hasErr() {
return nil
}
var buf = make([]byte, 512)
var n int
n, m.err = readCloser.Read(buf)
readCloser.Close()
return buf[:n]
}
开发者ID:fxnn,项目名称:gone,代码行数:16,代码来源:mimeDetector.go
示例11: isDirWriteable
func isDirWriteable(p gopath.GoPath) bool {
var nonExistantFile = p.JoinPath("githubcom-fxnn-gone")
for !nonExistantFile.HasErr() && nonExistantFile.IsExists() {
nonExistantFile = nonExistantFile.Append("-" + strconv.Itoa(rand.Int()))
}
if nonExistantFile.HasErr() {
return false
}
var closer, err = os.Create(nonExistantFile.Path())
if closer != nil {
closer.Close()
os.Remove(nonExistantFile.Path())
}
return err == nil
}
开发者ID:fxnn,项目名称:gone,代码行数:17,代码来源:pathio_windows.go
示例12: createBasicAuth
func createBasicAuth(realmName string, htpasswdFile gopath.GoPath) *auth.BasicAuth {
var secretProvider = noSecrets
if !htpasswdFile.HasErr() && !htpasswdFile.IsEmpty() {
secretProvider = auth.HtpasswdFileProvider(htpasswdFile.Path())
}
return auth.NewBasicAuthenticator(realmName, secretProvider)
}
开发者ID:fxnn,项目名称:gone,代码行数:7,代码来源:http.go
示例13: templatePath
func templatePath(contentRoot gopath.GoPath, cfg config.Config) (result gopath.GoPath) {
// configuration
result = gopath.FromPath(cfg.TemplatePath)
if !result.IsEmpty() {
if !result.IsDirectory() {
log.Fatalf("configured template path is no directory: %s", result.Path())
}
log.Printf("using templates from %s (by configuration)", result.Path())
return result
}
// convention
result = contentRoot.JoinPath(defaultTemplateDirectoryName)
if result.IsDirectory() {
log.Printf("using templates from %s (by convention)", result.Path())
return result
}
// default
log.Printf("using default templates")
return gopath.Empty()
}
开发者ID:fxnn,项目名称:gone,代码行数:22,代码来源:gone.go
示例14: mimeTypeForPath
func (m *mimeDetector) mimeTypeForPath(p gopath.GoPath) string {
p = p.EvalSymlinks()
if p.IsDirectory() || p.HasErr() {
return store.FallbackMimeType
}
var ext = p.Ext()
if mimeType := mime.TypeByExtension(ext); mimeType != "" {
return mimeType
}
var first512Bytes = m.first512BytesForPath(p)
m.errAndClear() // clear error flag, as DetectContentType always returns something
return http.DetectContentType(first512Bytes)
}
开发者ID:fxnn,项目名称:gone,代码行数:16,代码来源:mimeDetector.go
示例15: relevantFileModeForPath
// getRelevantFileModeForPath returns the FileMode for the given file or, when
// the file does not exist, its containing directory.
func (a *accessControl) relevantFileModeForPath(p gopath.GoPath) os.FileMode {
if a.hasErr() || p.HasErr() {
return 0
}
var pStat = p.Stat()
if !pStat.IsExists() {
// HINT: Inspect permissions of containing directory
pStat = p.Dir().Stat()
}
a.setErr(pStat.Err())
return pStat.FileMode()
}
开发者ID:fxnn,项目名称:gone,代码行数:14,代码来源:accessControl.go
示例16: isFileWriteable
func isFileWriteable(p gopath.GoPath) bool {
if p.IsExists() {
var closer, err = os.OpenFile(p.Path(), os.O_WRONLY, 0)
if closer != nil {
closer.Close()
}
return err == nil
}
return isDirWriteable(p.Dir())
}
开发者ID:fxnn,项目名称:gone,代码行数:12,代码来源:pathio_windows.go
示例17: NewFilesystemLoader
// NewFilesystemLoader creates a new instance with templates located in the
// given root path.
func NewFilesystemLoader(root gopath.GoPath) *FilesystemLoader {
if root.HasErr() {
panic(fmt.Sprintf("NewFilesystemLoader: root has error: %s", root.Err()))
}
if !root.IsExists() {
panic(fmt.Sprintf("NewFilesystemLoader: root %s does not exist", root.Path()))
}
watcher, err := fsnotify.NewWatcher()
if err != nil {
panic(fmt.Sprintf("NewFilesystemLoader: can't open watcher: %s", err))
}
var loader = &FilesystemLoader{
root,
watcher,
make(map[string]chan *template.Template),
make(map[string]string)}
go loader.processEvents()
return loader
}
开发者ID:fxnn,项目名称:gone,代码行数:23,代码来源:file.go
示例18: assertFileIsNotHidden
func (i *pathIO) assertFileIsNotHidden(p gopath.GoPath) {
if i.hasErr() {
return
}
if p.HasErr() {
i.syncedErrs(p)
return
}
if strings.HasPrefix(p.Base(), ".") {
i.setErr(store.NewPathNotFoundError(fmt.Sprintf("%s is a hidden file and may not be displayed", p)))
}
// HINT: recursive call, ending at content root
if i.isPathInsideContentRoot(p) {
i.assertFileIsNotHidden(p.ToSlash().Dir())
}
}
开发者ID:fxnn,项目名称:gone,代码行数:18,代码来源:pathio.go
示例19: isPathWriteable
func isPathWriteable(p gopath.GoPath) bool {
return unix.Access(p.Path(), unix.W_OK) == nil
}
开发者ID:fxnn,项目名称:gone,代码行数:3,代码来源:pathio_unix.go
示例20: canWriteFile
func (a *accessControl) canWriteFile(p gopath.GoPath) bool {
if p.HasErr() || !p.IsRegular() {
return false
}
return a.hasWorldWritePermission(p.FileMode())
}
开发者ID:fxnn,项目名称:gone,代码行数:6,代码来源:accessControl.go
注:本文中的github.com/fxnn/gopath.GoPath类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论