summaryrefslogtreecommitdiffstats
path: root/cron-jobs/adjust-permissions
blob: c92cb9ef8222d9ea80e1bc0ca545e03ee314b18c (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
#!/bin/bash

if [ -f /tmp/.ftpmaint.lck ]; then
    exit 0
fi

/bin/touch /tmp/.ftpmaint.lck

. "$(dirname $0)/../db-functions"
. "$(dirname $0)/../config"

get_dir_owner() {
    case $1 in
        core)
            echo "ftp:ftp-arch" ;;
        extra)
            echo "ftp:ftp-extra" ;;
        testing)
            echo "ftp:ftp-extra" ;;
        community)
            echo "root:tusers" ;;
        community-testing)
            echo "root:tusers" ;;
        packages/arch)
            echo "ftp:ftp-extra" ;;
        packages/community)
            echo "root:tusers" ;;
    esac
}

#adjust the nice level to run at a lower priority
/usr/bin/renice +10 -p $$ > /dev/null

cd $FTP_BASE
for d in $(get_repos_for_host); do
    owner="$(get_dir_owner $d)"
    /bin/chown -R $owner $d/os/{any,i686,x86_64}
    /bin/chmod -R g+w $d/os/{any,i686,x86_64}
done

for p in $(get_pkgpool_for_host); do
    owner="$(get_dir_owner $p)"
    /bin/chown -R $owner $p/{any,i686,x86_64}
    /bin/chmod -R g+w $p/{any,i686,x86_64}
done

/bin/chmod 555 $FTP_BASE

rm -f /tmp/.ftpmaint.lck