#!/usr/bin/env bash

# Package up a custom port from the ports source directory
# Copyright (c) 2012, Matthew Reschke
# mReschke 2013-08-27

me="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
previous="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd .. && pwd )"
repo="${previous##*/}"

if [ -e PORTBUILD ]; then
	source PORTBUILD
	sed -i "s/rel=.*/rel=$(($rel + 1))/g" PORTBUILD
	source PORTBUILD
	verrel="$ver"
	if [ "$rel" != "" ]; then verrel="$ver-$rel"; fi
	if [ -d source/$name-$ver ]; then
		file="$name-$verrel.tar.gz"
		echo "Packaging $file from source/$name-$ver"
		rm $name-$ver*

		if [ "$keep_symlinks" = true ]; then
			# Do NOT follow symlinks, sometimes I want links, no the data
			cd source && tar -czvf ../$file --exclude .git $name-$ver
		else
			# -h means follow symlinks, default behavior of all PORTBUILDS
			cd source && tar -czvhf ../$file --exclude .git $name-$ver
		fi
		cd ..
		ln -sf $file $name-current.tar.gz

		echo; echo "Updating PORTBUILD file"
		sed -i "s/md5sum=.*/md5sum=\"$(md5sum $file | cut -d\  -f1)\"/g" PORTBUILD
		sed -i "s/filesize=.*/filesize=$(stat -c%s $file)/g" PORTBUILD
		sed -i "s/fileurl=.*/fileurl=\"http:\/\/manup.mreschke.net\/$repo\/$name\/$file\"/g" PORTBUILD
		
		echo
		cd ../../ && ./buildtree $repo

		echo; echo "Done"

	else
		# Port has no source folder, so simply update the PORTBUILD filesize and md5...
		# fixme
		echo "Source directory source/$name-$ver does not exist"
	fi
else
	echo "This script is not meant to be run from here or PORTBUILD file missing"
fi
