--- db/prgsrc/Makefile 2001/05/04 02:04:58 1.6 +++ db/prgsrc/Makefile 2010/04/25 13:08:02 1.98 @@ -1,17 +1,43 @@ +HOSTNAME=$(shell hostname) +ifeq ($(HOSTNAME),bilbo) +ROOT=/home/znatoki +endif ifndef ROOT -ROOT = /home/znatoki +ROOT = $(HOME) endif PERL = perl TMPSAV = /tmp PMODE = 775 LMODE = 664 -KULICHKI=kulichki.rambler.ru -RSYNC = rsync -ruvpte ssh --delete --progress --rsync-path='~/bin/rsync' -DESTSRCDIR=~piataev/public_html/dimrub/src/ -SRCDIR=../baza/ -DESTPRGSRC=~piataev/db/prgsrc +KULICHKI=chgk-db-boris@ledorub.chgk.info +RSYNC = rsync -ruvptCe ssh --delete --progress +SCP=scp +DESTSRCDIR=~chgk-db/public_html/dimrub/src/ +SRCDIR=../baza +DICTDIR=../dict +IMAGEDIR=$(SRCDIR)/images +SOUNDDIR=$(SRCDIR)/sounds +DESTIMAGEDIR=~chgk-db/public_html/images/db +INSTALLIMAGEDIR=$(ROOT)/public_html/images/db +DESTSOUNDDIR=~chgk-db/public_html/sounds/db +INSTALLSOUNDDIR=$(ROOT)/public_html/sounds/db +DESTPRGSRC=~chgk-db/db/prgsrc +DESTCGIBIN=~chgk-db/public_html/cgi-bin DUMPDIR=../dump -DESTDUMPDIR=/tmp/ +DESTDUMPDIR=/var/tmp/ +TABLES= Questions Tournaments word2question nf nests Authors \ + P2Q equalto People P2T +INDEXWRITER= rubash@yandex.ru, roma7@zaba.ru +#INDEXWRITER= boris +AUTHORCHECKER = roma7@zaba.ru +#AUTHORCHECKER = boris +DELIVERER = roma7@zaba.ru, boris +#DELIVERER = boris +UPDATELOG = $(DUMPDIR)/update.log +UAUTHORS=$(DUMPDIR)/uauthors +UNSORTED=$(DUMPDIR)/unsorted +RSPARAMS= 2000 150 +TIMESTAMP= $(DUMPDIR)/timestamp DBSCRIPTS = mkdb.pl \ updatem.pl \ @@ -19,22 +45,91 @@ DBSCRIPTS = mkdb.pl \ changecities.pl\ createindex.pl\ updateindex.pl \ - addlinks.pl + addlinks.pl \ + deletefiles.pl\ + renamefile.pl \ + makecheck.pl\ + mkRS.pl\ + delRS.pl\ + updateRS.pl\ + updateRS1.pl\ + updateRS2.pl\ + updateRS3.pl\ + dumpRS.pl\ + findequal.pl\ + dumpin2out.pl\ + dump2dump.pl\ + checkPBS.pl\ + loaddump.pl \ + makeauthors.pl\ + makeeditors.pl\ + makepeople.pl\ + chronicles.pl\ + stats.pl \ + validate.pl + +LIBS = chgkfiles.pm \ + common.pl\ + chgk.cnf\ + dbchgk.pm\ + check.pl + + +CGISCRIPTS = db.cgi\ + dbdefs.pl \ + cw.pl + + +HTMLS = contribute.html \ + copyright.html \ + copyright_mozg.html \ + credits.html \ + dbmain.html \ + footer.html \ + guestbook.html \ + index.html \ + random.html \ + reklama.html \ + reklama_bottom.html\ + dbxml.php\ + search.html + -CGISCRIPTS = db.cgi DBBIN = ../bin MANDIR = ../man +LIBDIR = ../lib CGIBIN = $(ROOT)/public_html/cgi-bin +HTMLDIR = $(ROOT)/public_html/dimrub/db + +TEXTS = $(wildcard $(SRCDIR)/*.txt) $(SRCDIR)/index +IMAGES = $(wildcard $(IMAGEDIR)/*.gif) $(wildcard $(IMAGEDIR)/*.jpg) +SOUNDS = $(wildcard $(SOUNDDIR)/*.mp3) $(wildcard $(SOUNDDIR)/*.mid) +IMAGENAMES= $(notdir $(IMAGES)) +SOUNDNAMES= $(notdir $(SOUNDS)) + + -BININSTALL = ${DBSCRIPTS:%.pl=$(DBBIN)/%.pl} +BININSTALL = ${DBSCRIPTS:%=$(DBBIN)/%} CGIINSTALL = ${CGISCRIPTS:%.cgi=$(CGIBIN)/%.cgi} +LIBINSTALL = ${LIBS:%=$(LIBDIR)/%} +HTMLINSTALL = ${HTMLS:%.html=$(HTMLDIR)/%.html} +IMAGEINSTALL = ${IMAGENAMES:%=$(INSTALLIMAGEDIR)/%} +SOUNDINSTALL = ${SOUNDNAMES:%=$(INSTALLSOUNDDIR)/%} + + +all: $(LIBINSTALL) $(BININSTALL) $(CGIINSTALL) $(HTMLINSTALL) \ + $(IMAGEINSTALL) $(SOUNDINSTALL) + + + $(DBBIN)/%.pl: %.pl ${PERL} -c $< - pod2man --center "Internet Club DB" $< > $*.1 - install -m $(LMODE) $*.1 $(MANDIR)/man1 + - rm $*.1 if [ -f $@ ]; then mv $@ $(TMPSAV); fi cp $< $@ chmod $(PMODE) $@ @@ -44,22 +139,130 @@ $(CGIBIN)/%.cgi: %.cgi ${PERL} -c $< - pod2man --center "Internet Club DB" $< > $*.1 - install -m $(LMODE) $*.1 $(MANDIR)/man1 + - rm $*.1 if [ -f $@ ]; then mv $@ $(TMPSAV); fi cp $< $@ chmod $(PMODE) $@ if [ -f $(TMPSAV)/$(@F) ]; then rm -f $(TMPSAV)/$(@F); fi -all: $(BININSTALL) $(CGIINSTALL) + +$(LIBDIR)/%.pm: %.pm + ${PERL} -c $< + - pod2man --center "Internet Club DB" $< > $*.3 + - install -m $(LMODE) $*.3 $(MANDIR)/man3 + - rm $*.3 + if [ -f $@ ]; then mv $@ $(TMPSAV); fi + cp $< $@ + chmod $(LMODE) $@ + if [ -f $(TMPSAV)/$(@F) ]; then rm -f $(TMPSAV)/$(@F); fi + + +$(LIBDIR)/%.pl: %.pl + ${PERL} -c $< + - pod2man --center "Internet Club DB" $< > $*.3 + - install -m $(LMODE) $*.3 $(MANDIR)/man3 + - rm $*.3 + if [ -f $@ ]; then mv $@ $(TMPSAV); fi + cp $< $@ + chmod $(LMODE) $@ + if [ -f $(TMPSAV)/$(@F) ]; then rm -f $(TMPSAV)/$(@F); fi + + +$(LIBDIR)/%.cnf: %.cnf + ${PERL} -c $< + - pod2man --center "Internet Club DB" $< > $*.5 + - install -m $(LMODE) $*.5 $(MANDIR)/man5 + - rm $*.5 + if [ -f $@ ]; then mv $@ $(TMPSAV); fi + cp $< $@ + chmod $(LMODE) $@ + if [ -f $(TMPSAV)/$(@F) ]; then rm -f $(TMPSAV)/$(@F); fi + + +$(HTMLDIR)/%.html: %.html + cp $< $@ + + +$(INSTALLIMAGEDIR)/%: $(IMAGEDIR)/% + cp $< $@ + + +$(INSTALLSOUNDDIR)/%: $(SOUNDDIR)/% + cp $< $@ + + srcdeliver: $(RSYNC) $(SRCDIR) $(KULICHKI):$(DESTSRCDIR) +imagedeliver: + cvs update $(SRCDIR) + $(RSYNC) $(IMAGEDIR)/ $(KULICHKI):$(DESTIMAGEDIR)/ + +sounddeliver: + cvs update $(SRCDIR) + $(RSYNC) $(SOUNDDIR)/ $(KULICHKI):$(DESTSOUNDDIR)/ + prgdeliver: $(RSYNC) ./ $(KULICHKI):$(DESTPRGSRC) -dbdeliver: - mysqldump -u piataev chgk > $(DUMPDIR)/chgkdump - $(RSYNC) $(DUMPDIR)/chgkdump $(KULICHKI):$(DESTDUMPDIR) +dbdeliver: imagedeliver sounddeliver + echo "Starting delivering" | mail -s"Starting delivering" $(DELIVERER) + mysqldump --default-character-set=koi8r --add-drop-table -u piataev chgk $(TABLES) > $(DUMPDIR)/chgkdump + echo "delete from hash;" >> $(DUMPDIR)/chgkdump + echo "CREATE FULLTEXT INDEX fti ON Questions (Question, Answer, PassCriteria, Comments);" >> $(DUMPDIR)/chgkdump + gzip $(DUMPDIR)/chgkdump + $(SCP) $(DUMPDIR)/chgkdump.gz $(KULICHKI):$(DESTDUMPDIR) + echo "Delivered" | mail -s"Database delivered" $(DELIVERER) + +update: + cvs update + cvs update $(SRCDIR) + cvs update $(DICTDIR) + $(MAKE) all + $(MAKE) $(TIMESTAMP) + +$(TIMESTAMP): $(TEXTS) + mysql -upiataev chgk &1 | tee $(UPDATELOG) + $(DBBIN)/findequal.pl + $(DBBIN)/makepeople.pl + $(DBBIN)/makeauthors.pl + $(DBBIN)/makeeditors.pl + if [ -s $(UAUTHORS) ]; then \ + mail -sUauthors $(AUTHORCHECKER) < $(UAUTHORS); \ + fi + if [ -s $(UNSORTED) ]; then \ + mail -sUnsorted $(INDEXWRITER) <$(UNSORTED);\ + else \ + $(DBBIN)/mkRS.pl; \ + $(DBBIN)/updateRS2.pl $(RSPARAMS);\ + echo "Ready to deliver" | mail -s"Ready to deliver" $(DELIVERER);\ + fi + touch $(TIMESTAMP) + + +authorsdeliver: + mysqldump --add-drop-table -u piataev chgk Authors A2Q equalto > $(DUMPDIR)/chgkdump.0 + sed 's/TYPE=ISAM PACK_KEYS=1//g' $(DUMPDIR)/chgkdump.0 > $(DUMPDIR)/chgkdump + gzip $(DUMPDIR)/chgkdump + rm $(DUMPDIR)/chgkdump.0 + $(SCP) $(DUMPDIR)/chgkdump.gz $(KULICHKI):$(DESTDUMPDIR) + + +dbfill: + echo "Starting filling Kulichki database" | mail -s"Starting dbfill" $(DELIVERER) + ssh $(KULICHKI) "export LANG=ru_RU.KOI8-R; \ + echo 'ВНИМАНИЕ! Идёт заливка Базы вопросов. \ + Результаты поиска в Базе могут быть неполны' \ + > ~/public_html/dimrub/db/date;\ + gunzip -c /var/tmp/chgkdump.gz | mysql -u piataev chgk;\ + date > ~/public_html/dimrub/db/date" + echo "Finished filling Kulichki database" | mail -s"Finished dbfill" $(DELIVERER); \ + $(DBBIN)/stats.pl >> $(SRCDIR)/fill.log; \ + cvs commit -m "Database filled" $(SRCDIR)