38 lines
904 B
Bash
Executable file
38 lines
904 B
Bash
Executable file
#!/bin/bash
|
|
|
|
# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
# This script takes a checksum file and merges it into the packages
|
|
# checksum file in ../packages/packages.checksum.
|
|
|
|
# This script is thread-safe.
|
|
|
|
set -e
|
|
|
|
function main () {
|
|
local merge_file="$1"
|
|
local packages_dir="$(dirname $0)/../packages"
|
|
local checksum_file="${packages_dir}/packages.checksum"
|
|
|
|
# Preparatory work.
|
|
mkdir -p "${packages_dir}"
|
|
touch ${checksum_file}
|
|
|
|
if [ ! -f "${merge_file}" ]; then
|
|
return
|
|
fi
|
|
|
|
# This operation is performed using an flock on the packages dir
|
|
# to allow it to run concurrently.
|
|
flock "${packages_dir}" \
|
|
-c "sort -k2,2 -u ${merge_file} ${checksum_file} -o ${checksum_file}"
|
|
}
|
|
|
|
if [ $# != 1 ]; then
|
|
echo "Not enough arguments."
|
|
exit 1
|
|
fi
|
|
|
|
main $1
|