mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-04 04:46:15 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			130 lines
		
	
	
	
		
			3.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
	
		
			3.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
script_base_dir=`dirname $0`
 | 
						|
 | 
						|
if [ $# != 4 ]; then
 | 
						|
    echo "Usage: $0 PROJECT_NAME DESTINATION ARCHITECTURES CODES"
 | 
						|
    echo " e.g.: $0 mroonga repositories/ 'i386 amd64' 'lenny unstable hardy karmic'"
 | 
						|
    exit 1
 | 
						|
fi
 | 
						|
 | 
						|
PROJECT_NAME=$1
 | 
						|
DESTINATION=$2
 | 
						|
ARCHITECTURES=$3
 | 
						|
CODES=$4
 | 
						|
 | 
						|
run()
 | 
						|
{
 | 
						|
    "$@"
 | 
						|
    if test $? -ne 0; then
 | 
						|
	echo "Failed $@"
 | 
						|
	exit 1
 | 
						|
    fi
 | 
						|
}
 | 
						|
 | 
						|
update_repository()
 | 
						|
{
 | 
						|
    distribution=$1
 | 
						|
    code_name=$2
 | 
						|
    component=$3
 | 
						|
 | 
						|
    rm -rf dists/${code_name}
 | 
						|
    mkdir -p dists/${code_name}/${component}/binary-i386/
 | 
						|
    mkdir -p dists/${code_name}/${component}/binary-amd64/
 | 
						|
    mkdir -p dists/${code_name}/${component}/source/
 | 
						|
 | 
						|
    cat <<EOF > dists/.htaccess
 | 
						|
Options +Indexes
 | 
						|
EOF
 | 
						|
 | 
						|
    cat <<EOF > dists/${code_name}/${component}/binary-i386/Release
 | 
						|
Archive: ${code_name}
 | 
						|
Component: ${component}
 | 
						|
Origin: The ${PROJECT_NAME} project
 | 
						|
Label: The ${PROJECT_NAME} project
 | 
						|
Architecture: i386
 | 
						|
EOF
 | 
						|
 | 
						|
    cat <<EOF > dists/${code_name}/${component}/binary-amd64/Release
 | 
						|
Archive: ${code_name}
 | 
						|
Component: ${component}
 | 
						|
Origin: The ${PROJECT_NAME} project
 | 
						|
Label: The ${PROJECT_NAME} project
 | 
						|
Architecture: amd64
 | 
						|
EOF
 | 
						|
 | 
						|
    cat <<EOF > dists/${code_name}/${component}/source/Release
 | 
						|
Archive: ${code_name}
 | 
						|
Component: ${component}
 | 
						|
Origin: The ${PROJECT_NAME} project
 | 
						|
Label: The ${PROJECT_NAME} project
 | 
						|
Architecture: source
 | 
						|
EOF
 | 
						|
 | 
						|
    cat <<EOF > generate-${code_name}.conf
 | 
						|
Dir::ArchiveDir ".";
 | 
						|
Dir::CacheDir ".";
 | 
						|
TreeDefault::Directory "pool/${code_name}/${component}";
 | 
						|
TreeDefault::SrcDirectory "pool/${code_name}/${component}";
 | 
						|
Default::Packages::Extensions ".deb";
 | 
						|
Default::Packages::Compress ". gzip bzip2";
 | 
						|
Default::Sources::Compress ". gzip bzip2";
 | 
						|
Default::Contents::Compress "gzip bzip2";
 | 
						|
 | 
						|
BinDirectory "dists/${code_name}/${component}/binary-i386" {
 | 
						|
  Packages "dists/${code_name}/${component}/binary-i386/Packages";
 | 
						|
  Contents "dists/${code_name}/Contents-i386";
 | 
						|
  SrcPackages "dists/${code_name}/${component}/source/Sources";
 | 
						|
};
 | 
						|
 | 
						|
BinDirectory "dists/${code_name}/${component}/binary-amd64" {
 | 
						|
  Packages "dists/${code_name}/${component}/binary-amd64/Packages";
 | 
						|
  Contents "dists/${code_name}/Contents-amd64";
 | 
						|
  SrcPackages "dists/${code_name}/${component}/source/Sources";
 | 
						|
};
 | 
						|
 | 
						|
Tree "dists/${code_name}" {
 | 
						|
  Sections "${component}";
 | 
						|
  Architectures "i386 amd64 source";
 | 
						|
};
 | 
						|
EOF
 | 
						|
    apt-ftparchive generate generate-${code_name}.conf
 | 
						|
    chmod 644 dists/${code_name}/Contents-*
 | 
						|
 | 
						|
    rm -f dists/${code_name}/Release*
 | 
						|
    rm -f *.db
 | 
						|
    cat <<EOF > release-${code_name}.conf
 | 
						|
APT::FTPArchive::Release::Origin "The ${PROJECT_NAME} project";
 | 
						|
APT::FTPArchive::Release::Label "The ${PROJECT_NAME} project";
 | 
						|
APT::FTPArchive::Release::Architectures "i386 amd64";
 | 
						|
APT::FTPArchive::Release::Codename "${code_name}";
 | 
						|
APT::FTPArchive::Release::Suite "${code_name}";
 | 
						|
APT::FTPArchive::Release::Components "${component}";
 | 
						|
APT::FTPArchive::Release::Description "${PACKAGE_NAME} packages";
 | 
						|
EOF
 | 
						|
    apt-ftparchive -c release-${code_name}.conf \
 | 
						|
	release dists/${code_name} > /tmp/Release
 | 
						|
    mv /tmp/Release dists/${code_name}
 | 
						|
}
 | 
						|
 | 
						|
for code_name in ${CODES}; do
 | 
						|
    case ${code_name} in
 | 
						|
	jessie|stretch|unstable)
 | 
						|
	    distribution=debian
 | 
						|
	    component=main
 | 
						|
	    ;;
 | 
						|
	*)
 | 
						|
	    distribution=ubuntu
 | 
						|
	    component=universe
 | 
						|
	    ;;
 | 
						|
    esac
 | 
						|
 | 
						|
    mkdir -p ${DESTINATION}${distribution}
 | 
						|
    (cd ${DESTINATION}${distribution}
 | 
						|
	update_repository $distribution $code_name $component) &
 | 
						|
    if [ "${PARALLEL}" != "yes" ]; then
 | 
						|
	wait
 | 
						|
    fi
 | 
						|
done
 | 
						|
 | 
						|
wait
 |