summaryrefslogtreecommitdiffstats
path: root/make-links.sh
blob: 00b68354a2651a2feb8fb549b6032d4d9eeee05a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/bash
# make-links.sh - script to populate the global .build-id dir with hardlinks.
# Copyright 2009 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
# 
# Author: Will Woods <wwoods@redhat.com>

source config.sh

if [ $# -lt 1 ]; then
    echo "Usage: $0 reponame [reponame...]"
    echo "populates $exportdir/build-id with hardlinks to .debug files."
    exit 1
fi

if [ -z "$libdir" ]; then
    echo "Couldn't find config.sh - exiting."
    exit 1
fi

while [ $# -gt 0 ]; do
    reponame="$1"
    shift

    if [ ! -d "$libdir/$reponame" ]; then
        echo "$libdir/$reponame does not exist - please unpack debuginfo first"
        continue
    fi

    find $libdir/$reponame -regex '.*/usr/lib/debug/\.build-id/.*\.debug' | \
      while read u; do
        target=$(readlink --canonicalize $u)
        linkname=${u#*/usr/lib/debug/.build-id/}
        newlink="$exportdir/build-id/$linkname"
        mkdir -p $(dirname $newlink)
        ln -f $target $newlink
    done
done