#
# **************************************************************
# *                  SIMUSOL PROYECT                           *
# *                                                            *
# *         simpack o simusol-pack for SIMUSOL                                    *
# *                                                            *
# *                                                            *
# *   Developed by                                             *
# *   Diego.Saravia@gmail.com, 2016                            *
# *   and could be used with GPL                               *
# *   or every free license with copyleft needed.              *
# *   http://www.simusol.org                                   *
# **************************************************************

# YA NO#needs makefile.inc
# necesita summapack



#simpack r skeleton-1.3-other  pone paquete en dir a repositorio local
#simpack u skeleton-1.3-other  pone paquete en repolocal a RED

# This file is part of simusol-pack
#
#    Table is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    Table is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with Table.  If not, see <http://www.gnu.org/licenses/>.


#prefix=/usr/local

# ver rinse rpm para debian

# hacer de test y skeleton proyectos independientes en el svn
#chmod: cambiando los permisos de «/tmp/simpack»: Operación no permitida
# esto pasa en simpack k resolver eso con mktemp

NAME=simusol-pack
VERSION=0.2


DISTRO=$(shell distro.sh)
$(info DISTRO $(DISTRO))

USERNAME=${USER}
$(info USERNAME $(USERNAME))
HOMEDIR=$(shell getent passwd "$(USERNAME)" | cut -d: -f6 )
$(info HOMEDIR $(HOMEDIR))

PREFIX=/usr/local/
BINDIR=bin/
ETCDIR=etc/simusol
DATADIR=share/simusol/data/
PKGDIR=share/simusol/pkg-data/$(NAME)/
SUDO=sudo

ifeq ($(ASUSER),1)                          #llamar make ASUSER=1
		PREFIX=$(HOMEDIR)/
		SUDO=
	        #DOT=/.
	        #DOC=simpack/docs
	        #SHARE=
		#PATH en ubuntu incluye ~/bin en otros casos ver /etc/environment, pero el agregado de bin se hace en  ~/.profile
endif

BINDIRSRC=bin/
ETCDIRSRC=etc/
DATADIRSRC=data/
PKGDIRSRC=


BINFILES =$(shell /bin/ls -l $(BINDIRSRC)  | grep '^-' |  awk -F' ' '{print $$9}' | grep -v '^\#' | grep -v '~$$')
DATAFILES=$(shell /bin/ls -l $(DATADIRSRC) | grep '^-' |  awk -F' ' '{print $$9}' | grep -v '^\#' | grep -v '~$$')
ETCFILES=$(shell /bin/ls -l $(ETCDIRSRC) | grep '^-' |  awk -F' ' '{print $$9}' | grep -v '^\#' | grep -v '~$$')
PKGFILES =$(shell /bin/ls -l $(PKGDIRSRC)  | grep '^-' |  awk -F' ' '{print $$9}' | grep -v '^\#' | grep -v '~$$')
#PKGFILES = AUTHORS COPYING.WEB  LICENSE  README  THANKS ChangeLog  COPYING INSTALL.txt NEWS  TODO COPYING.DOC Makefile  simusol-summapack.summa

$(info BINFILES $(BINFILES))
$(info BINFILES $(DATAFILES))
$(info BINFILES $(PKGFILES))
$(info BINFILES $(ETCFILES))





all: install

########################################3#include ../bin/simusol-make   # no se puede poner el instalado pq no esta todavia

#SP = $(NAME)-$(VERSION)
#TARDIR = /tmp/simpackinst/$(NAME)-$(VERSION)

# INSTALL.txt es porque cygwin confunde con make install

#FILES = AUTHORS COPYING.WEB  LICENSE  README  THANKS ChangeLog  COPYING INSTALL.txt NEWS  TODO COPYING.DOC Makefile simusol-pack.summa




# habilitar mod_dav_svn mod_dav mod_dav_fs mod_ssl


#basedir=${SRV}/$(NAME)



#hace:
#	touch INSTALA_dia



#depinstall: hace
#	#@if test -e INSTALA_dia ; then \
#	#  rm INSTALA_dia ;\
#
#	#fi



#clean:
#	#rm -f  $(NAME)-$(VERSION).tar.gz

#distclean esta en simusol-make
# Crypt::SSLeay  ya no es necesario usar LWP::Protocol::https

install:
	packinstall.pl $(DISTRO) libhttp-dav-perl Getopt::Long YAML::Any Time::localtime File::stat Config File::HomeDir File::Find HTTP::DAV HTTP::Request LWP::UserAgent File::Basename Pod::Usage HTML::TagParser Term::ReadKey Text::ASCIITable File::Path  LWP::Simple;
	$(call copytree,$(PREFIX),$(SUDO),$(DATADIR),$(BINDIR),$(PKGDIR),$(ETCDIR),/,)
	sudo mv $(PREFIX)$(BINDIR)simpack.pl  $(PREFIX)$(BINDIR)simpack

#curdir es builtin
dist: 
	echo DIST INC ${NAME}-${VERSION}
	rm -rf /tmp/dist/${NAME}-${VERSION}
	mkdir -p /tmp/dist/${NAME}-${VERSION}
	$(call copytree,/tmp/dist/${NAME}-${VERSION}/,,$(DATADIRSRC),$(BINDIRSRC),$(PKGDIRSRC),$(ETCDIRSRC),/tmp/dist/${NAME}-${VERSION}/) 
	#cp -La . /tmp/dist/${NAME}-${VERSION}  #usar link, ver tar
	cd /tmp/dist; tar -zcvf $(CURDIR)/../${NAME}_${VERSION}.tar.gz ${NAME}-${VERSION}


upload: dist 
	md5sum  ../${NAME}_${VERSION}.tar.gz>../${NAME}_${VERSION}.tar.gz.md5
	wget -O SP.md5 http://www.simusol.org/downloads/${NAME}_${VERSION}.tar.gz.md5; exit 0;
	DIF=`diff SP.md5  ../${NAME}_${VERSION}.tar.gz.md5` ;\
	rm -f diff SP.md5 ; \
	if test x"$$DIF" != x ; then \
	   echo "DIF= $$DIF"; \
	   scp ../${NAME}_${VERSION}.tar.gz.md5  ../${NAME}_${VERSION}.tar.gz www-data@simusol.org:/var/www/simusol.org/public_html/downloads ;\
	   ssh www-data@simusol.org "cd /var/www/simusol.org/public_html/downloads; rm -f ${NAME}_last.tar.gz; ln -s ${NAME}_${VERSION}.tar.gz ${NAME}_last.tar.gz; rm -f ${NAME}_last.tar.gz.md5; ln -s ${NAME}_${VERSION}.tar.gz.md5 ${NAME}_last.tar.gz.md5";\
	fi;
	rm -f *.md5; exit 0


define copytree
        $2 install -d $1$3
	$2 install -d $1$4
	$2 install -d $1$5
	$2 install -d $7$6
	for F in $(DATAFILES) ; do \
	  $2 install $(DATADIRSRC)$$F   $1$3 ;\
	done;
	for F in $(BINFILES) ; do \
	  $2 install $(BINDIRSRC)$$F   $1$4 ;\
	done;
	for F in $(PKGFILES) ; do \
	  $2 install $(PKGDIRSRC)$$F   $1$5 ;\
	done;
	for F in $(ETCFILES) ; do \
	  $2 install $(ETCDIRSRC)$$F   $7$6 ;\
	done;
endef



viejo$(NAME)-$(VERSION).tar.gz: $(FILES) simpack.pl simusol_clasi.pl procesa.sh
	rm -f *.md5 simpack-last.tar.gz simpack-$(VERSION).tar.gz; exit 0
	#rm -f test-1.3-other.s.tgz
	#rm -f *~	
	#mkdir 
	#install simpack.pl $(prefix)/bin/simpack
	$(info dist)
	rm -rf /tmp/simpackinst
	install -d $(TARDIR)
	install simpack.pl $(TARDIR)
	install simusol_clasi.pl $(TARDIR)
	install procesa.sh $(TARDIR)
	for F in $(FILES) ; do \
	  install $$F  $(TARDIR) ;\
	done;
	#cp -r skeleton.ori $(TARDIR)
	#cp -r ssp_test $(TARDIR)
	tar -C /tmp/simpackinst --exclude .svn -zcf simpack-$(VERSION).tar.gz simpack-$(VERSION)
	ln -s simpack-$(VERSION).tar.gz simpack-last.tar.gz
	#chmod -R 777  /tmp/simpackinst
	#chmod -R 777  /tmp/simpack
	rm -rf /tmp/simpackinst
	rm -rf /tmp/simpack



# con sudo, hacer all (make) sin sudo, antes, chmod por las dudas

viejoinstall: 
	$(info install)
	#rm -rf /tmp/simpackinst
	install -d  $(DESTDIR)${PREFIXBIN}
	install bin/simpack.pl $(DESTDIR)${PREFIXBIN}/simpack
	install bin/simusol_clasi.pl $(DESTDIR)${PREFIXBIN}/simusol_clasi
	install procesa.sh ${PREFIXBIN}/procesa
	install -d  $(DESTDIR)${PREFIXDOCS}
	for F in $(FILES) ; do \
	  install $$F  $(DESTDIR)${PREFIXDOCS} ;\
	done;


#rm -rf /tmp/simpack
	#chmod a+x simpack.pl readsumma.sh
	#install -d $(DESTDIR)${PREFIXSIM}/var
	#install -d $(DESTDIR)${PREFIXSIM}/pkg
	#procesa no se distribuye
	# usar simpack
	#rm -f skeleton-*-other.s.tgz	
	#rm -f ssp_test-*-other.s.tgz	
	#./simpack.pl c ssp_test  >/dev/null
	#./simpack.pl c skeleton.ori >/dev/null
	#./simpack.pl r ssp_test  #>/dev/null
	#./simpack.pl r skeleton #>/dev/null
	#tar --exclude .svn -zcvf skeleton-1.0-other.s.tgz skeleton.ori
	#tar --exclude .svn -zcvf ssp_test-1.5-other.s.tgz ssp_test
	#install skeleton-*-other.s.tgz $(DESTDIR)${PREFIXSIM}/pkg
	#install ssp_test-*-other.s.tgz $(DESTDIR)${PREFIXSIM}/pkg
	#rm -f skeleton-*-other.s.tgz	
	#rm -f ssp_test-*-other.s.tgz	
	#chmod a+w ssp_test-1.5-other.s.tgz
	#install -d $(DESTDIR)$(prefix)/simusol/etc
	#install simpack.conf $(DESTDIR)$(prefix)/simusol/etc
	#install -d ~/.simusol/var
	#chmod a+w  ~/.simusol/var 




# puede no estar todavia instalado
   #apache from targz
#   ifeq ($(DISTRO),SOURCE)

	#./simpack.pl -c ssp_test
	#./simpack.pl -c skeleton.ori
	#./simpack.pl -p ssp_test-1.4-other.s.tgz
	#./simpack.pl -p skeleton-1.1-other.s.tgz
	#chown
	#simusol -p test   ultima version
	#simusol -p skeleton

# lo mismo que hacer is y luego  p
#installele:
	#install -d ~/.simusol/pkg no los puede hacer install si es root
	#chmod a+w  ~/.simusol/pkg
	#chown   ~/.simusol/pkg 
	#install readsumma.sh $(prefix)/bin/readsumma


# ifeq ($(EXGRP),www-data)
# expat libexpat1 libxml-sax-expat-perl	
# endif
#ifeq ($(EXGRP),www)

#endif



# presupone instalado el makefile!!!!!!!!!!!!!

   #XML::Parser.pm LWP::Protocol::https  LWP::UserAgent  LWP::Simple Text::ASCIITable libfile-homedir-perl  Data::Dumper
        #File::Path y CPAN  en perl-modules del cual perl depende
        #getopt::long en perl-base del cual perl depende
# File::Find y File::Basename viene con perl

#cpan-libcpanplus-perl http://debian.pkgs.cpan.org/
#cpan-libcpanplus-dist-build
#cpan-libcpanplus-dist-deb
# ### add this line to your /etc/apt/sources.list
#    ### note these packages are not signed, see the LICENSE section
#    deb http://debian.pkgs.cpan.org/debian unstable main
#    ### update your sources & search for debified cpan distributions
#    apt-get update
#    apt-cache search libtest-harness-perl
#    ### to create them yourself
#    apt-get install cpan-libcpanplus-perl            
#    apt-get install cpan-libcpanplus-dist-build-perl
#    apt-get install cpan-libcpanplus-dist-deb-perl


#cpan -f -i Module::Foo
#perlbrew para instalar modulos para cada usuario
#local::lib

#DateTime	libdatetime-perl
#DBI	libdbi-perl
#DBD::mysql	libdbd-mysql-perl
#Class::Autouse	libclass-autouse-perl
#Digest::MD5	libmd5-perl
#Digest::SHA1	libdigest-sha1-perl
#HTML::Template	libhtml-template-perl
#Image::Size	libimage-size-perl
#MIME::Lite	libmime-lite-perl
#MIME::Words	libmime-perl
#Compress::Zlib	libcompress-zlib-perl
#Net::DNS	libnet-dns-perl
#URI::URL	liburi-perl
#HTML::Tagset	libhtml-tagset-perl
#HTML::Parser	libhtml-parser-perl
#LWP::Simple	libwww-perl
#LWP::UserAgent	libwww-perl
#GD	libgd-gd2-perl
#Mail::Address	libmailtools-perl
#Unicode::MapUTF8	libunicode-maputf8-perl
#XML::Simple	libxml-simple-perl
#IO::WrapTie	libio-stringy-perl
#Unicode::CheckUTF8	�
#Captcha::reCAPTCHA	libcaptcha-recaptcha-perl
#Digest::HMAC_SHA1	libdigest-hmac-perl


# upload ES PARA SUBIRLO DESDE OTRA MAQUINA
# upsimpaksrv ES PARA "SUBIRLO" DESDE EL MISMO SERVIDOR


#install i-simpack.sh ${WEBDOC}/simusol/simusolsite/downloads
#chown ${USR}:${GRP}  ${WEBDOC}/simusol/simusolsite/downloads/i-simpack.sh

# hacer el last con comandos ssh
#upload: dist
#	md5sum  $(NAME)-$(VERSION).tar.gz>$(NAME)-$(VERSION).tar.gz.md5
#	wget -O SP.md5 http://$(SERVER)/downloads/$(NAME)-$(VERSION).tar.gz.md5; exit 0;
#	DIF=`diff SP.md5  $(NAME)-$(VERSION).tar.gz.md5` ;\
#	if test x"$$DIF" != x ; then \
#	  echo $$DIF; \
#	  scp $(NAME)-$(VERSION).tar.gz   $(NAME)-$(VERSION).tar.gz.md5 wwwrun@$(SERVER):/srv/www/htdocs/simusol/simusolsite/downloads ;\
#	  ssh wwwrun@$(SERVER) "cd /srv/www/htdocs/simusol/simusolsite/downloads; rm -f $(NAME)-last.tar.gz; ln -s $(NAME)-$(VERSION).tar.gz $(NAME)-last.tar.gz; rm $(NAME)-last.tar.gz.md5; ln -s $(NAME)-$(VERSION).tar.gz.md5 $(NAME)-last.tar.gz.md5";\
#	fi;
#	rm *.md5; exit 0

#http://www.debian-administration.org/articles/530


#wget http://www.gnu.org/licenses/agpl-3.0.txt
#wget http://www.gnu.org/licenses/fdl-1.3.txt
#wget http://www.gnu.org/licenses/gpl-3.0.txt



# CPAN.pm: Building T/TO/TODDR/XML-Parser-2.41.tar.gz


#Expat must be installed prior to building XML::Parser and I can't find
#it in the standard library directories. Install 'expat-devel' package with your
#OS package manager. See 'README'.
#http://sourceforge.net/projects/expat/
#If expat is installed, but in a non-standard directory, then use the
#following options to Makefile.PL:
#    EXPATLIBPATH=...  To set the directory in which to find libexpat
#    EXPATINCPATH=...  To set the directory in which to find expat.h
#    perl Makefile.PL EXPATLIBPATH=/home/me/lib EXPATINCPATH=/home/me/include
#Note that if you build against a shareable library in a non-standard location
#you may (on some platforms) also have to set your LD_LIBRARY_PATH environment
#variable at run time for perl to find the library.

 

#	if  test x$$DISTRO = xUBUNTU ; then \
#	   sudo -n apt-get --no-upgrade -y install    ;\
#	elif test x$$DISTRO = xDEBIAN ; then \
#	   sudo -n apt-get --no-upgrade -y install  libhttp-dav-perl  ;\
#	elif test x$$DISTRO = xSUSE ; then \
#	   sudo zypper in perl-HTTP-DAV; \
#	elif test x$$DISTRO = xREDHAT ; then   \
#	   sudo -n yum install  perl-HTTP-DAV ;\
#	elif test x$$DISTRO = xMANDRIVA  ; then   \
#	   sudo -n urpmi        perl-HTTP-DAV ;\
#	elif test x$$DISTRO = xUTUTO  ; then  \
 #          cpanm --sudo  HTTP::DAV ;\
#	 elif test x$$DISTRO = xGENTOO  ; then   \
#	   sudo -n emerge  HTTP-DAV 		;\
#	fi   ;\
