1220020Sdougb#!/bin/sh
2220020Sdougb#
3220020Sdougb# $FreeBSD$
4220020Sdougb#
5220020Sdougb
6220020Sdougb# If there is a global system configuration file, suck it in.
7220020Sdougb#
8220020Sdougbif [ -r /etc/defaults/periodic.conf ]
9220020Sdougbthen
10220020Sdougb    . /etc/defaults/periodic.conf
11220020Sdougb    source_periodic_confs
12220020Sdougbfi
13220020Sdougb
14220020Sdougbrc=0
15220020Sdougb
16220020Sdougbcase "$daily_backup_pkgdb_enable" in
17220020Sdougb    [Yy][Ee][Ss])
18220020Sdougb	bak="${daily_backup_pkgdb_dir:-/var/backups}"
19220020Sdougb	bak_file="${bak}/pkgdb.bak.tbz"
20220020Sdougb
21221475Sdougb	pkg_dbdir=`make -f/usr/share/mk/bsd.port.mk -V PKG_DBDIR 2>/dev/null` ||
22221475Sdougb	  pkg_dbdir=/var/db/pkg
23220020Sdougb
24220020Sdougb	if [ ! -d "$bak" ]
25220020Sdougb	then
26220020Sdougb	    install -d -o root -g wheel -m 750 $bak || {
27220020Sdougb		echo '$daily_backup_pkgdb_enable is enabled but' \
28226470Sse		    "$daily_backup_pkgdb_dir doesn't exist" ;
29220020Sdougb		exit 2 ; }
30220020Sdougb	fi
31220020Sdougb
32220020Sdougb	echo ''
33220020Sdougb	echo 'Backing up package db directory:'
34220020Sdougb
35220020Sdougb	new_bak_file=`mktemp ${bak_file}-XXXXX`
36220020Sdougb
37221475Sdougb	if tar -cjHf "${new_bak_file}" "$pkg_dbdir" 2>/dev/null; then
38220020Sdougb	    chmod 644 "${new_bak_file}"
39220020Sdougb
40220020Sdougb	    if [ -e "${bak_file}.2" -a -e "${bak_file}" ]; then
41220020Sdougb		unlink "${bak_file}.2"
42220020Sdougb		mv "${bak_file}" "${bak_file}.2"
43220020Sdougb	    fi
44220020Sdougb	    [ -e "${bak_file}" ] && mv "${bak_file}" "${bak_file}.2"
45220020Sdougb	    mv "${new_bak_file}" "${bak_file}"
46220020Sdougb	else
47220020Sdougb	    rc=3
48220020Sdougb	fi ;;
49220020Sdougbesac
50220020Sdougb
51220020Sdougbexit $rc
52