summaryrefslogtreecommitdiff
path: root/readonly.go
diff options
context:
space:
mode:
Diffstat (limited to 'readonly.go')
-rw-r--r--readonly.go101
1 files changed, 0 insertions, 101 deletions
diff --git a/readonly.go b/readonly.go
deleted file mode 100644
index 9d0c1e9..0000000
--- a/readonly.go
+++ /dev/null
@@ -1,101 +0,0 @@
-package forgepb
-
-import (
- "strings"
-)
-
-func (all *Repos) UpdateGoPath(name string, gopath string) bool {
- oldr := all.DeleteByPath(name)
- if oldr == nil {
- // nothing to update
- return false
- }
-
- // update gopath and append it back to the list
- oldr.GoPath = gopath
- return all.Append(oldr)
-}
-
-// returns true if gopath is readonly()
-func (all *Repos) IsReadOnly(gopath string) bool {
- var match *Repo
-
- loop := all.SortByPath() // get the list of repos
- for loop.Scan() {
- r := loop.Repo()
- if r.GoPath == gopath {
- // exact gopath match
- if r.Writable {
- return false
- }
- if r.ReadOnly {
- return true
- }
- // private is assumed to be r/w unless above is specifically set
- if r.Private {
- return false
- }
- }
- // search for potential dir matches
- if r.Directory {
- // test the dir
- if strings.HasPrefix(gopath, r.GoPath) {
- match = r
- }
- }
- }
-
- if match == nil {
- // log.Info("did not match in IsReadOnly()", gopath)
- return true
- }
-
- // take the settings from the directory match
- if match.Writable {
- return false
- }
- if match.ReadOnly {
- return true
- }
- // private is assumed to be r/w unless above is specifically set
- if match.Private {
- return false
- }
-
- // always assume readonly
- return true
-}
-
-// is this a non-publishable repo?
-func (all *Repos) IsPrivate(gopath string) bool {
- var match *Repo
-
- // sort by path means the simple 'match' logic
- // here works in the sense the last directory match
- // is the one that is used
- loop := all.SortByPath() // get the list of repos
- for loop.Scan() {
- r := loop.Repo()
- if r.GoPath == gopath {
- // if private is set here, then ok, otherwise
- // still check if a Directory match exists
- if r.Private {
- return true
- }
- }
- // search for potential dir matches
- if r.Directory {
- // test the dir
- if strings.HasPrefix(gopath, r.GoPath) {
- match = r
- }
- }
- }
- if match == nil {
- // log.Info("did not match in IsPrivate()", gopath)
- return false
- }
-
- // otherwise, assume not private
- return match.Private
-}