mirror of https://github.com/kubernetes/kops.git
56 lines
1.5 KiB
Go
56 lines
1.5 KiB
Go
/* Copyright 2018 The Bazel Authors. All rights reserved.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
package proto
|
|
|
|
import "path/filepath"
|
|
|
|
// Package contains metadata for a set of .proto files that have the
|
|
// same package name. This translates to a proto_library rule.
|
|
type Package struct {
|
|
Name string
|
|
Files map[string]FileInfo
|
|
Imports map[string]bool
|
|
Options map[string]string
|
|
HasServices bool
|
|
}
|
|
|
|
func newPackage(name string) *Package {
|
|
return &Package{
|
|
Name: name,
|
|
Files: map[string]FileInfo{},
|
|
Imports: map[string]bool{},
|
|
Options: map[string]string{},
|
|
}
|
|
}
|
|
|
|
func (p *Package) addFile(info FileInfo) {
|
|
p.Files[info.Name] = info
|
|
for _, imp := range info.Imports {
|
|
p.Imports[imp] = true
|
|
}
|
|
for _, opt := range info.Options {
|
|
p.Options[opt.Key] = opt.Value
|
|
}
|
|
p.HasServices = p.HasServices || info.HasServices
|
|
}
|
|
|
|
func (p *Package) addGenFile(dir, name string) {
|
|
p.Files[name] = FileInfo{
|
|
Name: name,
|
|
Path: filepath.Join(dir, filepath.FromSlash(name)),
|
|
}
|
|
}
|