projekty: get-file/get-new-file (NEW) - init

wolvverine wolvverine at pld-linux.org
Tue Jan 15 02:21:53 CET 2008


Author: wolvverine                   Date: Tue Jan 15 01:21:53 2008 GMT
Module: projekty                      Tag: HEAD
---- Log message:
- init

---- Files affected:
projekty/get-file:
   get-new-file (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: projekty/get-file/get-new-file
diff -u /dev/null projekty/get-file/get-new-file:1.1
--- /dev/null	Tue Jan 15 02:21:53 2008
+++ projekty/get-file/get-new-file	Tue Jan 15 02:21:48 2008
@@ -0,0 +1,86 @@
+#!/bin/bash
+# Michał Panasiewicz - GPL v3
+# - skrypt sprawdza czy jest nowa wersja pliku, jesli tak pobiera ja zastepuj±c (opcjonalnie) poprzedni± jesli ma ta sama nazwe
+# - nalezy dodac do cron-a wywołanie
+# TODO: 
+# - check path/file exist
+# - config file(s) for many files
+
+# config for file
+FILENAME="PegazHI_HP.EXE"
+FILEVERSION="/var/tmp/lastversion-"
+URLTOFILE="http://www.pegazatena.pl/Dodatki/"
+RECIPIENT="root"
+PATHTOFILE="/home/services/samba/instalki/pegaz"
+FILECONTENT="application/x-msdos-program"
+REMOVEOLDFILES="yes"
+
+# config for script
+MAILPROG="/bin/mail"
+GETPROG="wget"
+GETOPT="-nv"
+
+DATA=`date +%Y%m%d`
+TIME=`date +%H%M`
+HEADFILE="/tmp/headurl${RANDOM}"
+
+# script
+FILEVERSION="${FILEVERSION}${FILENAME}"
+URLTOFILE="${URLTOFILE}${FILENAME}"
+HEAD "${URLTOFILE}" > "${HEADFILE}"
+URLFILECONTENT=`awk -F": " '$1=="Content-Type" { print $2 }' "${HEADFILE}"`
+
+
+if [ "${URLFILECONTENT}" != "${FILECONTENT}" ]; then
+	exit
+# TODO: info/mail ?
+fi
+
+if [ ! -e "${FILEVERSION}" ]; then
+   touch "${FILEVERSION}"
+fi
+
+if [ ! -e "${PATHTOFILE}" ]; then
+	echo "path ${PATHTOFILE} not exist"
+	if [ "${RECIPIENT}" != "" ]; then
+		echo "path ${PATHTOFILE} not exist" |  "${MAILPROG}" -s "path ${PATHTOFILE} not exist" "${RECIPIENT}"
+	fi
+	exit
+fi
+
+ACTUALDATE=`awk -F": " '$1=="Last-Modified" { print $2 }' "${HEADFILE}"`
+LASTDATE=`awk '{ print }' "${FILEVERSION}"`
+ 
+if [ "${LASTDATE}" != "${ACTUALDATE}" ]; then
+	if [ "${RECIPIENT}" != "" ]; then
+		echo `awk -F": " '$1=="Last-Modified" { print $1 " " $2 }' "${HEADFILE}"| "${MAILPROG}" -s "new file ${FILENAME} - ${DATA}-${TIME}!" "${RECIPIENT}"`
+	fi
+
+cd "${PATHTOFILE}"
+if [ "${REMOVEOLDFILES}" == "yes" ]; then
+    rm -f "${FILENAME}" 
+    rm -f wget-log wget-log.?
+    rm -f "${HEADFILE}"
+fi
+    "${GETPROG}" "${GETOPT}" "${URLTOFILE}"
+    ERROR=$?
+        if [ ! "${ERROR}" -eq 0 ]; then
+		echo "error get ${FILENAME} - ${DATA}-${TIME} !"
+		if [ "${RECIPIENT}" != "" ]; then
+         		"${MAILPROG}" -s "error get ${FILENAME} - ${DATA}-${TIME} !" "${RECIPIENT}"
+		fi
+	else
+		echo  "${ACTUALDATE}" > "${FILEVERSION}"
+		ERROR=$? ;
+		if [ ! "${ERROR}" -eq 0 ]; then
+			echo  "error write version file ${FILEVERSION} for ${FILENAME} - ${DATA}-${TIME} !"
+			if [ "${RECIPIENT}" != "" ]; then
+				"${MAILPROG}" -s "error write version file ${FILEVERSION} for ${FILENAME} - ${DATA}-${TIME} !" "${RECIPIENT}"
+			fi
+		fi
+		echo "OK - get file ${FILENAME} - ${DATA}-${TIME} !"
+		if [ "${RECIPIENT}" != "" ]; then
+			"${MAILPROG}" -s "OK - get file ${FILENAME} - ${DATA}-${TIME} !" "${RECIPIENT}"
+		fi
+        fi
+fi
================================================================


More information about the pld-cvs-commit mailing list