kirby@ reminded that portimport(1) was not updated after portcheck(1)
import. Among other things, it allows to run portimport from custom
directory, which was requested by kirby@ in the first place.
Any comments/okays on the following patch then?
--
zhuk@
Index: portimport
===================================================================
RCS file: /cvs/ports/infrastructure/bin/portimport,v
retrieving revision 1.2
diff -u -p -r1.2 portimport
--- portimport 11 Apr 2013 15:18:00 -0000 1.2
+++ portimport 7 Dec 2013 10:58:40 -0000
@@ -18,52 +18,56 @@
# Based on Marc Espie's portimport.
# sthen: Modified to handle imports from mystuff/ and do a dry run first.
# rpe: rewrite based on sthen@'s version
+# zhuk: checks and detection of pkgpath moved to portcheck(1)
set -e
+set -u
usage() {
- echo "usage: $(basename $0) [-u username]" >&2
+ echo "usage: ${0##*/} [-U] [-p portsdir] [-u username]" >&2
exit 1
}
user=$(id -un)
+portcheck_args=
+unset portcheck_args[0]
-while getopts "u:" OPT; do
+while getopts "p:Uu:" OPT; do
case $OPT in
- u) user="$OPTARG";;
+ p) portcheck_args[${#portcheck_args[@]}]="-p$OPTARG";;
+ U) portcheck_args[${#portcheck_args[@]}]="-U";;
+ u) user=$OPTARG;;
*) usage;;
esac
done
[email protected]:/cvs
-error=false
-fulldir=$(pwd)
-importname="ports/${fulldir##*/ports/*(mystuff/|openbsd-wip/|p5-ports-wip/)}"
-timestamp=$(date '+%Y%m%d')
+shift $(($OPTIND - 1))
+(($# > 0)) && usage
-err() { echo "$*"; error=true; }
+error=false
+pkgpath=$(portcheck "${portcheck_args[@]:---}") || error=true
+if $error; then
+ read ans?'Do you want to continue after those errors? [y/N] '
+ [[ $ans == +(y|Y) ]] || exit
+fi
-[[ -f Makefile && -f distinfo && -f pkg/DESCR && -f pkg/PLIST ]] || err "No
ports files?"
-find . -name .git -print|read i && err "You git!"
-find . -name .\*.swp -print|read i && err "Found vim swap file"
-find . -name \*.orig -print|read i && err "Found .orig file, ouch"
-find . -name typescript -print|read i && err "Found typescript file, ouch"
-find . -path ./w-\* -print|read i && err "Please wipe out work
directory before importing"
-find . -type d -name core -print|read i && err "directory named core found,
cvs will ignore it"
-find . -type f -name .todo -print|read i && err "devtodo file found"
-find . -type d -name CVS -print|read i && err "Some CVS stuff already in
there, very funky"
-$error && exit 1
+portsdir=${PWD%"/$pkgpath"}
+timestamp=$(date '+%Y%m%d')
+if [[ $(hostname) == cvs.openbsd.org ]]; then
+ cvsroot=/cvs
+else
+ [email protected]:/cvs
+fi
echo -n "Import would go into: "
-cvs -n -d$cvsroot import $importname $user ${user}_$timestamp 2>/dev/null | \
+cvs -n -d$cvsroot import ports/$pkgpath $user ${user}_$timestamp 2>/dev/null |
\
grep Makefile | head -1 | awk '{print $2}' | xargs dirname
-read ans?'Correct path? [y/n] '
+read ans?'Does this look correct? [y/n] '
if [[ $ans == +(y|Y) ]]; then
- cvs -d$cvsroot import $importname $user ${user}_$timestamp
- cd /usr/$importname/../
- cvs -d$cvsroot update -AdP ${fulldir##*/}
- echo "Don't forget to commit the category Makefile when you're done!"
- cd /usr/$importname/../
+ cvs -d$cvsroot import ports/$pkgpath $user ${user}_$timestamp
+ cd "$portsdir/${pkgpath%/*}"
+ cvs -d$cvsroot update -AdP ${pkgpath##*/}
+ echo "Don't forget to commit the ${pkgpath%/*}/Makefile when you're
done!"
pwd
fi