// Copyright 2013, 2014 Canonical Ltd. // Licensed under the LGPLv3, see LICENCE file for details. package errors import ( "go/build" "os" "path/filepath" "strings" "sync/atomic" ) var trimValue atomic.Value var trimDefault = filepath.Join(build.Default.GOPATH, "src") + string(os.PathSeparator) func trimSourcePath(filename string) string { prefix := trimDefault if v := trimValue.Load(); v != nil { prefix = v.(string) } return strings.TrimPrefix(filename, prefix) } func SetSourceTrimPrefix(s string) string { previous := trimDefault if v := trimValue.Load(); v != nil { previous = v.(string) } trimValue.Store(s) return previous }