本文整理汇总了Golang中github.com/fxnn/gopath.GoPath.Path方法的典型用法代码示例。如果您正苦于以下问题:Golang GoPath.Path方法的具体用法?Golang GoPath.Path怎么用?Golang GoPath.Path使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/fxnn/gopath.GoPath
的用法示例。
在下文中一共展示了GoPath.Path方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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
}
示例2: 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)
}
示例3: 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())
}
示例4: 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
}
示例5: 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
}
示例6: 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
}
示例7: assertPathValidForWriteAccess
// assertPathValidForWriteAccess sets the error flag when the path may not be
// opened for writing by this process.
func (i *pathIO) assertPathValidForWriteAccess(p gopath.GoPath) {
if i.hasErr() {
return
}
if p.HasErr() {
i.setErr(p.Err())
return
}
if p.IsExists() {
if !p.IsRegular() || !isPathWriteable(p) {
i.setErr(store.NewAccessDeniedError(fmt.Sprintf(
"path '%s' with mode %s denotes no regular file or no writeable directory",
p.Path(), p.FileMode())))
}
} else {
var d = p.Dir()
if !isPathWriteable(d) {
i.setErr(store.NewAccessDeniedError(
"parent directory of '" + p.Path() + "' is not writeable"))
}
}
}
示例8: isPathWriteable
func isPathWriteable(p gopath.GoPath) bool {
return unix.Access(p.Path(), unix.W_OK) == nil
}