add script to watch changes of summary web page
This commit is contained in:
		
							
								
								
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,3 +1,5 @@
 | 
				
			|||||||
*.swp
 | 
					*.swp
 | 
				
			||||||
*.csv
 | 
					cache
 | 
				
			||||||
log
 | 
					log
 | 
				
			||||||
 | 
					*.csv
 | 
				
			||||||
 | 
					*.html
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								clean
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								clean
									
									
									
									
									
								
							@@ -1,3 +1,5 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					rm -rf cache
 | 
				
			||||||
rm -rf log
 | 
					rm -rf log
 | 
				
			||||||
rm -f *.csv
 | 
					rm -f *.csv
 | 
				
			||||||
 | 
					rm -f *.html
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										12
									
								
								update
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								update
									
									
									
									
									
								
							@@ -5,7 +5,7 @@ CSV_URL="https://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv"
 | 
				
			|||||||
MAIL_TO="$USER"
 | 
					MAIL_TO="$USER"
 | 
				
			||||||
MAIL_FROM="info@holiday.kareha.org"
 | 
					MAIL_FROM="info@holiday.kareha.org"
 | 
				
			||||||
MAIL_SUBJECT="Holiday CSV Updated"
 | 
					MAIL_SUBJECT="Holiday CSV Updated"
 | 
				
			||||||
MAIL_BODY="Holiday CSV file has been Updated."
 | 
					MAIL_BODY="Holiday CSV file has been updated."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Constants
 | 
					# Constants
 | 
				
			||||||
EXIT_SUCCESS=0
 | 
					EXIT_SUCCESS=0
 | 
				
			||||||
@@ -25,10 +25,10 @@ verify_command "awk"
 | 
				
			|||||||
verify_command "mailx"
 | 
					verify_command "mailx"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Logging
 | 
					# Logging
 | 
				
			||||||
CURRENT_MONTH=$(date "+%Yw%U%z")
 | 
					CURRENT_MONTH=$(date "+%Y-%m%z")
 | 
				
			||||||
SCRIPT_NAME=$(basename $0)
 | 
					SCRIPT_NAME=$(basename $0)
 | 
				
			||||||
LOG_DIR="log"
 | 
					LOG_DIR="log"
 | 
				
			||||||
LOG_FILE="$LOG_DIR/$SCRIPT_NAME_$CURRENT_MONTH"
 | 
					LOG_FILE="$LOG_DIR/$SCRIPT_NAME-$CURRENT_MONTH"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
get_current_time() {
 | 
					get_current_time() {
 | 
				
			||||||
  date "+%Y-%m-%d %H:%M:%S%z"
 | 
					  date "+%Y-%m-%d %H:%M:%S%z"
 | 
				
			||||||
@@ -48,7 +48,7 @@ send_mail() {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Acquire the lock or exit
 | 
					# Acquire the lock or exit
 | 
				
			||||||
LOCK_DIR="lock"
 | 
					LOCK_DIR="$SCRIPT_NAME-lock"
 | 
				
			||||||
if ! mkdir "$LOCK_DIR" 2>/dev/null; then
 | 
					if ! mkdir "$LOCK_DIR" 2>/dev/null; then
 | 
				
			||||||
  echo "Another process is holding the lock. Exiting."
 | 
					  echo "Another process is holding the lock. Exiting."
 | 
				
			||||||
  exit $EXIT_FAILURE
 | 
					  exit $EXIT_FAILURE
 | 
				
			||||||
@@ -65,6 +65,10 @@ CSV_FILE="holidays-jp.csv"
 | 
				
			|||||||
# Run
 | 
					# Run
 | 
				
			||||||
curl -sS -L -o $TMP_CSV_FILE $CSV_URL
 | 
					curl -sS -L -o $TMP_CSV_FILE $CSV_URL
 | 
				
			||||||
if ! diff -q $RAW_CSV_FILE $TMP_CSV_FILE >/dev/null 2>&1; then
 | 
					if ! diff -q $RAW_CSV_FILE $TMP_CSV_FILE >/dev/null 2>&1; then
 | 
				
			||||||
 | 
					  CACHE_DIR="cache"
 | 
				
			||||||
 | 
					  mkdir -p "$CACHE_DIR"
 | 
				
			||||||
 | 
					  CURRENT_DATETIME=$(date "+%Y-%m-%d_%H:%M:%S%z")
 | 
				
			||||||
 | 
					  cp $TMP_CSV_FILE "$CACHE_DIR/holidays-jp-$CURRENT_DATETIME.csv"
 | 
				
			||||||
  mv $TMP_CSV_FILE $RAW_CSV_FILE
 | 
					  mv $TMP_CSV_FILE $RAW_CSV_FILE
 | 
				
			||||||
  nkf -w $RAW_CSV_FILE >$ALL_CSV_FILE
 | 
					  nkf -w $RAW_CSV_FILE >$ALL_CSV_FILE
 | 
				
			||||||
  current_year=$(date +'%Y')
 | 
					  current_year=$(date +'%Y')
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										80
									
								
								watch
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										80
									
								
								watch
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,80 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Settings
 | 
				
			||||||
 | 
					SITE_URL="https://www8.cao.go.jp/chosei/shukujitsu/gaiyou.html"
 | 
				
			||||||
 | 
					MAIL_TO="$USER"
 | 
				
			||||||
 | 
					MAIL_FROM="info@holiday.kareha.org"
 | 
				
			||||||
 | 
					MAIL_SUBJECT="Holiday Site Updated"
 | 
				
			||||||
 | 
					MAIL_BODY="Holiday web site has been updated."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Constants
 | 
				
			||||||
 | 
					EXIT_SUCCESS=0
 | 
				
			||||||
 | 
					EXIT_FAILURE=1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Verify the required runtime environment
 | 
				
			||||||
 | 
					verify_command() {
 | 
				
			||||||
 | 
					  if ! command -v $1 >/dev/null; then
 | 
				
			||||||
 | 
					    echo "This script requires \"$1\" to be installed. Please install it and try again."
 | 
				
			||||||
 | 
					    exit $EXIT_FAILURE
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					verify_command "curl"
 | 
				
			||||||
 | 
					verify_command "mailx"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Logging
 | 
				
			||||||
 | 
					CURRENT_MONTH=$(date "+%Y-%m%z")
 | 
				
			||||||
 | 
					SCRIPT_NAME=$(basename $0)
 | 
				
			||||||
 | 
					LOG_DIR="log"
 | 
				
			||||||
 | 
					LOG_FILE="$LOG_DIR/$SCRIPT_NAME-$CURRENT_MONTH"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					get_current_time() {
 | 
				
			||||||
 | 
					  date "+%Y-%m-%d %H:%M:%S%z"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					log() {
 | 
				
			||||||
 | 
					  local timestamp=$(get_current_time)
 | 
				
			||||||
 | 
					  local message=$1
 | 
				
			||||||
 | 
					  echo "$timestamp $message" >>$LOG_FILE
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					send_mail() {
 | 
				
			||||||
 | 
					  echo "$MAIL_BODY" | mailx -r "$MAIL_FROM" -s "$MAIL_SUBJECT" "$MAIL_TO"
 | 
				
			||||||
 | 
					  if [ $? -ne 0 ]; then
 | 
				
			||||||
 | 
					    log "Failed to send email"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Acquire the lock or exit
 | 
				
			||||||
 | 
					LOCK_DIR="$SCRIPT_NAME-lock"
 | 
				
			||||||
 | 
					if ! mkdir "$LOCK_DIR" 2>/dev/null; then
 | 
				
			||||||
 | 
					  echo "Another process is holding the lock. Exiting."
 | 
				
			||||||
 | 
					  exit $EXIT_FAILURE
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir -p $LOG_DIR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Internal configuration settings
 | 
				
			||||||
 | 
					TMP_HTML_FILE="summary-jp-tmp.html"
 | 
				
			||||||
 | 
					HTML_FILE="summary-jp.html"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Run
 | 
				
			||||||
 | 
					curl -sS -L -o $TMP_HTML_FILE $SITE_URL
 | 
				
			||||||
 | 
					if ! diff -q $HTML_FILE $TMP_HTML_FILE >/dev/null 2>&1; then
 | 
				
			||||||
 | 
					  CACHE_DIR="cache"
 | 
				
			||||||
 | 
					  mkdir -p "$CACHE_DIR"
 | 
				
			||||||
 | 
					  CURRENT_DATETIME=`date "+%Y-%m-%d_%H:%M:%S%z"`
 | 
				
			||||||
 | 
					  cp $TMP_HTML_FILE "$CACHE_DIR/summary-jp-$CURRENT_DATETIME.html"
 | 
				
			||||||
 | 
					  mv $TMP_HTML_FILE $HTML_FILE
 | 
				
			||||||
 | 
					  log "Changed"
 | 
				
			||||||
 | 
					  send_mail
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					  log "No Change"
 | 
				
			||||||
 | 
					  rm $TMP_HTML_FILE
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Release the lock
 | 
				
			||||||
 | 
					rmdir "$LOCK_DIR"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Exit
 | 
				
			||||||
 | 
					exit $EXIT_SUCCESS
 | 
				
			||||||
		Reference in New Issue
	
	Block a user