aboutsummaryrefslogtreecommitdiff
path: root/src/cpt-checksum
blob: 951eb344264f6db89ef0492358d2bf6e97a91f88 (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
#!/bin/sh -ef
# Generate checksums

if [ -f ./cpt-lib ]; then . ./cpt-lib; else . cpt-lib; fi

case "$1" in
    --help|-h) out "usage: ${0##*/} [pkg...]"; exit 0 ;;
    --version|-v) version ;;
    '') set -- "${PWD##*/}"; export CPT_PATH=${PWD%/*}:$CPT_PATH ;;
esac

create_cache

for pkg; do pkg_lint    "$pkg" c; done
for pkg; do pkg_sources "$pkg" c; done
for pkg; do
    # Do not generate checksums if the 'sources' file is empty or it doesn't
    # exist.
    [ -s "$(pkg_find "$pkg")/sources" ] || {
        log "$pkg" "No 'sources' file, skipping checksums"
        continue
    }
    pkg_checksums "$pkg" | {
        repo_dir=$(pkg_find "$pkg")

        if [ -w "$repo_dir" ]; then
            tee "$repo_dir/checksums"
        else
            log "$pkg" "Need permissions to generate checksums"
            user=$(_stat "$repo_dir") as_root tee "$repo_dir/checksums"
        fi
    }

    log "$pkg" "Generated checksums"
done