| #!/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 |