Re: mk/git-package.mk (eliminates caching if no updates)

Aleksej Saushev <[email protected]>
Newsgroups gmane.os.netbsd.devel.pkgsrc.wip.general
Message-ID <[email protected]>
Makoto Fujiwara <[email protected]> writes:

> I would like to add some modification to mk/git-package.mk.

If you're going to introduce this, do the same for all other 
VCS-based packages. The code needs refactoring, and all such
non-synchronous changes complicate it.

> The changes eliminates storing cache tar file if Git found
> no update since unpacked version of existing cache tar file.
>
> To detect 'Already up-to-date' string when 'git pull origin master'
> issued, I have used 'grep' 'tee' and /tmp/git-package.$$ temporary file.
>
> I don't think to use hardcoded those names is the right thing.
> But at least these works with one example with me.
>
> Please advice to the good Makefile authoring,
> Thank you,
> (by the way, deleting temporary file is not implemented. I will
> add it later)
> ---
> [email protected]
> Makoto Fujiwara, 
> Chiba, Japan, Narita Airport and Disneyland prefecture.
>
> Index: mk/git-package.mk
> ===================================================================
> RCS file: /cvsroot/pkgsrc-wip/wip/mk/git-package.mk,v
> retrieving revision 1.6
> diff -u -r1.6 git-package.mk
> --- mk/git-package.mk	30 Dec 2010 09:50:41 -0000	1.6
> +++ mk/git-package.mk	29 Aug 2011 01:53:03 -0000
> @@ -24,6 +24,7 @@
>  
>  BUILD_DEPENDS+=		scmgit-base>=1.6.4:../../devel/scmgit-base
>  USE_TOOLS+=		pax
> +_GIT_TMP_RESULT=	/tmp/git-package.$$

Follow TMPDIR settings, please!

>  # switch either (from scratch) clone is necessary or (already cloned) checkout is enough
>  _GIT_NEED_CLONE=	${WRKDIR}/.need_clone
> @@ -142,12 +143,17 @@
>  	${STEP_MSG} "(3b) git pull origin master from "${GIT_MODULE.${_repo_}:Q} "." ;	\
>  		(cd ${GIT_MODULE};					\
>  		${_GIT_CMD} pull ${GIT_FLAGS} origin master &&	 	\
> -		${_GIT_CMD} checkout --quiet -f master ; )		\
> +		${_GIT_CMD} checkout --quiet -f master  		\
> +		|  tee ${_GIT_TMP_RESULT}                             )	\
>  	fi;								\
> +	if [ x`grep 'Already up-to-date' ${_GIT_TMP_RESULT}` != x ]; then \

if grep -F "Already up-to-date" >/dev/null 2>&1; then

>  	if [ "$$p" != ${_GIT_DISTFILE.${_repo_}:Q} ] || [ -r ${_GIT_NEED_CLONE} ]; then	\
>  	        ${_GIT_CREATE_CACHE.${_repo_}};				\
>  	else								\
>           ${STEP_MSG} "(5) Skipping write cache, the same date or newly cloned";\
> +	fi								\
> +	else								\
> +         ${STEP_MSG} "(6) Skipping write cache, Alread up-to-date.";\
>  	fi
>  .endfor


-- 
HE CE3OH...


------------------------------------------------------------------------------
EMC VNX: the world's simplest storage, starting under $10K
The only unified storage solution that offers unified management 
Up to 160% more powerful than alternatives and 25% more efficient. 
Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.