kops/hack/verify-goimports

66 lines
1.9 KiB
Python
Executable File

#!/usr/bin/env python
# Copyright 2017 The Kubernetes Authors.
#
# 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.
import os
from os import path
import subprocess
import sys
from lib.kubernetes import devtools
gopath=os.environ['GOPATH']
package_name='k8s.io/kops'
packages = devtools.read_packages_file(package_name)
paths = []
for package in packages:
if package == package_name:
continue
paths.append(package)
# Install goimports from vendor
print('installing goimports from vendor')
process = subprocess.Popen(['go', 'install', 'k8s.io/kops/vendor/golang.org/x/tools/cmd/goimports'], stdout=subprocess.PIPE, cwd=path.join(gopath, 'src'))
stdout, stderr = process.communicate()
if process.returncode != 0:
print("FAIL: installing goimports from vendor failed")
print(stderr)
sys.exit(1)
print("packages %s" % paths)
env = os.environ
process = subprocess.Popen(
['go', 'run', 'k8s.io/kops/vendor/golang.org/x/tools/cmd/goimports', '-l'] + paths,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
cwd=path.join(gopath, 'src'),
env=env
)
stdout, stderr = process.communicate()
if stdout.strip().decode('ascii') != "" or stderr.strip().decode('ascii') != "":
print("FAIL: 'goimports -w' needs to be run on the following files: ")
print("STDOUT:\n" + stdout.decode('ascii'))
print("STDERR:\n" + stderr.decode('ascii'))
print('FAIL: Please run the following command: make goimports')
sys.exit(1)