#!/bin/sh
# Initialize a reprepro package repository

set -e

# Create a new directory named $1 or use the current directory.
dir=${1:-.}
mkdir -p $dir
test -z "$(ls $dir)"

write_distributions () {
	mkdir -p $dir/conf
	cat >$dir/conf/distributions <<-END
		Codename: master
		Suite: unstable
		Components: main
		UDebComponents: main
		Architectures: source armhf armel amd64
		Label: Pragmatux
		Description: <insert description here>
		Log: log
	END
}

write_options () {
	mkdir -p $dir/conf
	cat >$dir/conf/options <<-END
		ignore wrongdistribution
	END
}

write_incoming () {
	mkdir -p $dir/conf $dir/incoming $dir/tmp
	cat >$dir/conf/incoming <<- END
		Name: default
		IncomingDir: incoming
		TempDir: tmp
		Default: unstable
	END
}

write_update_script () {
	name=ingest
	mkdir -p $dir/scripts
	cat >$dir/scripts/$name <<- END
		#!/bin/sh
		group="$(id -ng)"
		export REPREPRO_BASE_DIR=\$(cd "\$(dirname "\$0")" && pwd)/..
		umask 002
		sg \${group} "reprepro processincoming default"
	END
	chmod 775 $dir/scripts/$name
}

write_distributions
write_options
write_incoming
write_update_script
find $dir -type d | xargs chmod g+s
reprepro --basedir $dir createsymlinks
