From c24bc9076974b7f7ffba011cf47b1f27e5fa0c6f Mon Sep 17 00:00:00 2001 From: Kris Moore Date: Sat, 27 Aug 2016 17:13:54 -0400 Subject: [PATCH] Give sysadm a proper mkport.sh script --- mkport.sh | 125 +++++++---------------- {src/port-files => port-files}/Makefile | 0 {src/port-files => port-files}/distinfo | 0 {src/port-files => port-files}/pkg-descr | 0 {src/port-files => port-files}/pkg-plist | 0 5 files changed, 37 insertions(+), 88 deletions(-) rename {src/port-files => port-files}/Makefile (100%) rename {src/port-files => port-files}/distinfo (100%) rename {src/port-files => port-files}/pkg-descr (100%) rename {src/port-files => port-files}/pkg-plist (100%) diff --git a/mkport.sh b/mkport.sh index 61ea80f..c3bfd28 100755 --- a/mkport.sh +++ b/mkport.sh @@ -2,23 +2,9 @@ # Helper script which will create the port / distfiles # from a checked out git repo -get_last_rev_git() -{ - oPWD=`pwd` - cd "${1}" - rev=0 - rev=`git log -n 1 --date=raw . | grep 'Date:' | awk '{print $2}'` - cd "$oPWD" - if [ -n "$rev" ] ; then - echo "$rev" - return 0 - else - rev=`git log -n 1 --date=raw . | grep 'Date:' | awk '{print $2}'` - echo $rev - return 0 - fi - return 1 -} +# Set the port +port="sysutils/sysadm" +dfile="sysadm" massage_subdir() { cd "$1" @@ -27,6 +13,8 @@ massage_subdir() { continue fi +comment="`cat Makefile | grep 'COMMENT ='`" + echo "# \$FreeBSD\$ # @@ -48,7 +36,7 @@ $comment } if [ -z "$1" ] ; then - echo "Usage: ./mkports.sh " + echo "Usage: ./mkport.sh " exit 1 fi @@ -58,8 +46,12 @@ if [ ! -d "${1}/Mk" ] ; then fi portsdir="${1}" +if [ -z "$portsdir" -o "${portsdir}" = "/" ] ; then + portsdir="/usr/ports" +fi + if [ -z "$2" ] ; then - distdir="${1}/distfiles" + distdir="${portsdir}/distfiles" else distdir="${2}" fi @@ -67,80 +59,37 @@ if [ ! -d "$distdir" ] ; then mkdir -p ${distdir} fi -ODIR=`pwd` - -# Get this jail version -export UNAME_r="`freebsd-version`" - # Get the GIT tag ghtag=`git log -n 1 . | grep '^commit ' | awk '{print $2}'` +# Get the version +if [ -e "version" ] ; then + verTag=$(cat version) +else + verTag=$(date '+%Y%m%d%H%M') +fi -# Read the list of ports and build them now -while read pline -do +# Cleanup old distfiles +rm ${distdir}/${dfile}-* 2>/dev/null - cd "$ODIR" - ldir=`echo $pline | awk '{print $1}'` +# Copy ports files +if [ -d "${portsdir}/${port}" ] ; then + rm -rf ${portsdir}/${port} 2>/dev/null +fi +cp -r port-files ${portsdir}/${port} - # Check for sub-dir - echo "$ldir" | grep -q '/' - if [ $? -eq 0 ] ; then - lsubdir=`echo $ldir | cut -d '/' -f 1` - ltopdir=`echo $ldir | cut -d '/' -f 2` - tOps="-C $lsubdir $ltopdir" - else - unset lsubdir ltopdir - tOps="$ldir" - fi +# Set the version numbers +sed -i '' "s|%%CHGVERSION%%|${verTag}|g" ${portsdir}/${port}/Makefile +sed -i '' "s|%%GHTAG%%|${ghtag}|g" ${portsdir}/${port}/Makefile - tdir=`echo $pline | awk '{print $2}'` - tcat=`echo $tdir | cut -d '/' -f 1` - dfile=`echo $pline | awk '{print $3}'` +# Create the makesums / distinfo file +cd "${portsdir}/${port}" +make makesum +if [ $? -ne 0 ] ; then + echo "Failed makesum" + exit 1 +fi - # Get git revision number - REV=`get_last_rev_git "./$ldir"` - - port=`echo $pline | awk '{print $2}'` - tverfile="/tmp/.pcbsd-tests/`echo $port | sed 's|/|_|g'`" - if [ -e "$tverfile" -a -n "$PCBSD_MKTESTS" ] ; then - # If this file exists, we did a previous build of this port - oVer=`cat $tverfile` - echo "$port - $REV - $oVer -" - if [ "$REV" = "$oVer" ] ; then - echo "No changes to port: $port" - continue - fi - fi - - # Make the dist files - rm ${distdir}/${dfile}-* 2>/dev/null - echo "Creating $tdir dist file for version: $REV" - tar cvJf ${distdir}/${dfile}-${REV}.tar.xz --exclude .git $tOps 2>/dev/null >/dev/null - if [ $? -ne 0 ] ; then - echo "Error creating distfile..." - exit 1 - fi - - # Copy ports files - if [ -d "${portsdir}/$tdir" ] ; then - rm -rf ${portsdir}/$tdir 2>/dev/null - fi - cp -r ${ldir}/port-files ${portsdir}/$tdir - - # Set the version numbers - sed -i '' "s|%%CHGVERSION%%|${REV}|g" ${portsdir}/$tdir/Makefile - sed -i '' "s|%%GHTAG%%|${ghtag}|g" ${portsdir}/$tdir/Makefile - - # Create the makesums / distinfo file - cd "${portsdir}/$tdir" - make makesum PORTSDIR=${portsdir} - if [ $? -ne 0 ] ; then - echo "Failed makesum" - exit 1 - fi - - # Now make sure subdir Makefile is correct - massage_subdir "${portsdir}/$tcat" - -done < mkports-list +# Update port cat Makefile +tcat=$(echo $port | cut -d '/' -f 1) +massage_subdir ${portsdir}/${tcat} diff --git a/src/port-files/Makefile b/port-files/Makefile similarity index 100% rename from src/port-files/Makefile rename to port-files/Makefile diff --git a/src/port-files/distinfo b/port-files/distinfo similarity index 100% rename from src/port-files/distinfo rename to port-files/distinfo diff --git a/src/port-files/pkg-descr b/port-files/pkg-descr similarity index 100% rename from src/port-files/pkg-descr rename to port-files/pkg-descr diff --git a/src/port-files/pkg-plist b/port-files/pkg-plist similarity index 100% rename from src/port-files/pkg-plist rename to port-files/pkg-plist