13
13
# See the License for the specific language governing permissions and
14
14
# limitations under the License.
15
15
16
- # Update the Godeps/ LICENSES document .
17
- # Generates a table of Godep dependencies and their license .
16
+ # Update the LICENSES directory .
17
+ # Generates a table of Go dependencies and their licenses .
18
18
#
19
19
# Usage:
20
20
# $0 [--create-missing] [/path/to/licenses]
24
24
# additionally created files into the vendor auto-generated tree.
25
25
#
26
26
# Run every time a license file is added/modified within /vendor to
27
- # update /Godeps/ LICENSES
27
+ # update /LICENSES
28
28
29
29
set -o errexit
30
30
set -o nounset
31
31
set -o pipefail
32
32
33
+ KUBE_ROOT=$( dirname " ${BASH_SOURCE[0]} " ) /..
34
+ source " ${KUBE_ROOT} /hack/lib/init.sh"
35
+
33
36
export LANG=C
34
37
export LC_ALL=C
35
38
@@ -130,8 +133,6 @@ process_content () {
130
133
# ############################################################################
131
134
# MAIN
132
135
# ############################################################################
133
- KUBE_ROOT=$( dirname " ${BASH_SOURCE[0]} " ) /..
134
- source " ${KUBE_ROOT} /hack/lib/init.sh"
135
136
136
137
export GO111MODULE=on
137
138
153
154
LICENSE_ROOT=" ${LICENSE_ROOT:- ${KUBE_ROOT} } "
154
155
cd " ${LICENSE_ROOT} "
155
156
156
- VENDOR_LICENSE_FILE=" ${VENDOR_LICENSE_FILE:- " Godeps/LICENSES" } "
157
- TMP_LICENSE_FILE=" /tmp/Godeps.LICENSES.$$ "
157
+ kube::util::ensure-temp-dir
158
+
159
+ # Save the genreated LICENSE file for each package temporarily
160
+ TMP_LICENSE_FILE=" ${KUBE_TEMP} /LICENSES.$$ "
161
+
162
+ # The directory to save all the LICENSE files
163
+ LICENSES_DIR=" ${LICENSES_DIR:- ${LICENSE_ROOT} / LICENSES} "
164
+ mkdir -p " ${LICENSES_DIR} "
165
+
166
+ # The tmp directory to save all the LICENSE files, will move to LICENSES_DIR
167
+ TMP_LICENSES_DIR=" ${KUBE_TEMP} /LICENSES.DIR.$$ "
168
+ mkdir -p " ${TMP_LICENSES_DIR} "
169
+
158
170
DEPS_DIR=" vendor"
159
171
declare -Ag CONTENT
160
172
161
- if [[ -f " ${LICENSE_ROOT} / LICENSE" ]] ; then
162
- # Put the K8S LICENSE on top
173
+ # Put the K8S LICENSE on top
174
+ if [ -f " ${LICENSE_ROOT} / LICENSE" ] ; then
163
175
(
164
- echo " ================================================================================"
165
- echo " = Kubernetes licensed under: ="
166
- echo
167
- cat " ${LICENSE_ROOT} /LICENSE"
168
- echo
169
- echo " = LICENSE $( kube::util::md5 " ${LICENSE_ROOT} /LICENSE" ) "
170
- echo " ================================================================================"
171
- ) > ${TMP_LICENSE_FILE}
176
+ echo " ================================================================================"
177
+ echo " = Kubernetes licensed under: ="
178
+ echo
179
+ cat " ${LICENSE_ROOT} /LICENSE"
180
+ echo
181
+ echo " = LICENSE $( kube::util::md5 " ${LICENSE_ROOT} /LICENSE" ) "
182
+ echo " ================================================================================"
183
+ ) > " ${TMP_LICENSE_FILE} "
184
+ mv " ${TMP_LICENSE_FILE} " " ${TMP_LICENSES_DIR} /LICENSE"
172
185
fi
173
186
174
187
# Loop through every vendored package
175
188
for PACKAGE in $( go list -m -json all | jq -r .Path | sort -f) ; do
176
189
if [[ -e " staging/src/${PACKAGE} " ]]; then
177
- echo " $PACKAGE is a staging package, skipping" > /dev/stderr
190
+ echo " ${ PACKAGE} is a staging package, skipping" > /dev/stderr
178
191
continue
179
192
fi
180
193
if [[ ! -e " ${DEPS_DIR} /${PACKAGE} " ]]; then
181
- echo " $PACKAGE doesn't exist in vendor , skipping" > /dev/stderr
194
+ echo " ${ PACKAGE} doesn't exist in ${DEPS_DIR} , skipping" > /dev/stderr
182
195
continue
183
196
fi
197
+ echo " ${PACKAGE} "
184
198
185
199
process_content " ${PACKAGE} " LICENSE
186
200
process_content " ${PACKAGE} " COPYRIGHT
187
201
process_content " ${PACKAGE} " COPYING
188
202
189
- # display content
190
- echo
191
- echo " ================================================================================"
192
- echo " = ${DEPS_DIR} /${PACKAGE} licensed under: ="
193
- echo
203
+ # copy content and throw error message
204
+ {
205
+ echo " = ${DEPS_DIR} /${PACKAGE} licensed under: ="
206
+ echo
194
207
195
- file=" "
196
- if [[ -n " ${CONTENT[${PACKAGE}-LICENSE]-} " ]]; then
208
+ file=" "
209
+ if [[ -n " ${CONTENT[${PACKAGE}-LICENSE]-} " ]]; then
197
210
file=" ${CONTENT[${PACKAGE}-LICENSE]-} "
198
- elif [[ -n " ${CONTENT[${PACKAGE}-COPYRIGHT]-} " ]]; then
211
+ elif [[ -n " ${CONTENT[${PACKAGE}-COPYRIGHT]-} " ]]; then
199
212
file=" ${CONTENT[${PACKAGE}-COPYRIGHT]-} "
200
- elif [[ -n " ${CONTENT[${PACKAGE}-COPYING]-} " ]]; then
213
+ elif [[ -n " ${CONTENT[${PACKAGE}-COPYING]-} " ]]; then
201
214
file=" ${CONTENT[${PACKAGE}-COPYING]-} "
202
- fi
203
- if [[ -z " ${file} " ]]; then
215
+ fi
216
+ if [[ -z " ${file} " ]]; then
204
217
cat > /dev/stderr << __EOF__
205
218
No license could be found for ${PACKAGE} - aborting.
206
219
@@ -212,13 +225,19 @@ Options:
212
225
3. Do not use this package in Kubernetes.
213
226
__EOF__
214
227
exit 9
215
- fi
216
- cat " ${file} "
228
+ fi
217
229
218
- echo
219
- echo " = ${file} $( kube::util::md5 " ${file} " ) "
220
- echo " ================================================================================"
221
- echo
222
- done >> ${TMP_LICENSE_FILE}
223
-
224
- cat ${TMP_LICENSE_FILE} > " ${VENDOR_LICENSE_FILE} "
230
+ cat " ${file} "
231
+ echo
232
+ echo " = ${file} $( kube::util::md5 " ${file} " ) "
233
+ } >> " ${TMP_LICENSE_FILE} "
234
+
235
+ dest_dir=" ${TMP_LICENSES_DIR} /vendor/${PACKAGE} "
236
+ mkdir -p " ${dest_dir} "
237
+ mv " ${TMP_LICENSE_FILE} " " ${dest_dir} /LICENSE"
238
+ done
239
+
240
+ # Leave things like OWNERS alone.
241
+ rm -f " ${LICENSES_DIR} /LICENSE"
242
+ rm -rf " ${LICENSES_DIR} /vendor"
243
+ mv " ${TMP_LICENSES_DIR} " /* " ${LICENSES_DIR} "
0 commit comments