mirror of
https://github.com/Frail7487Real/laughing-spork.git
synced 2024-11-13 22:24:54 -05:00
check time script instead of fixed hours
hopefully this should work on date bridges since we use Date::getTime which gives a unix timestamp
This commit is contained in:
parent
e97125d49a
commit
948341344f
3 changed files with 55 additions and 5 deletions
4
.github/workflows/runglobal.yml
vendored
4
.github/workflows/runglobal.yml
vendored
|
@ -120,6 +120,10 @@ jobs:
|
|||
|
||||
echo -e '\n====== Setting up and running the long-lived process ======\n'
|
||||
|
||||
cd /mnt/globalData
|
||||
|
||||
wget https://raw.githubusercontent.com/CeciliaKelley33Mm/global/refs/heads/master/checkTime.js
|
||||
|
||||
wget https://raw.githubusercontent.com/CeciliaKelley33Mm/global/refs/heads/master/loop.sh
|
||||
chmod +x loop.sh
|
||||
bash loop.sh ${{ inputs.runNext }} $GH_TOKEN global runglobal.yml master global $WEBHOOK_URL true ${{ inputs.oldTailscaleHostname }}
|
||||
|
|
35
checkTime.js
Normal file
35
checkTime.js
Normal file
|
@ -0,0 +1,35 @@
|
|||
const process = require('process')
|
||||
|
||||
if (process.argv.length < 3) {
|
||||
console.error('Invalid format. Expected HH:MM')
|
||||
process.exit(69)
|
||||
}
|
||||
|
||||
const startTimeString = process.argv[2]
|
||||
const [startHours, startMinutes] = startTimeString.split(':').map(Number)
|
||||
|
||||
if (
|
||||
isNaN(startHours) || isNaN(startMinutes) ||
|
||||
startHours > 23 || startMinutes > 59
|
||||
) {
|
||||
console.error('Invalid time format. Expected HH:MM format WITH VALID TIME')
|
||||
process.exit(69)
|
||||
}
|
||||
|
||||
const startTime = new Date()
|
||||
startTime.setHours(startHours, startMinutes, 0, 0)
|
||||
|
||||
const targetTime = new Date(startTime.getTime() + 5 * 60 * 60 * 1000) // 5 hours after startTime
|
||||
targetTime.setSeconds(0) // fixes the precise time, we don't want them
|
||||
targetTime.setMilliseconds(0)
|
||||
|
||||
const currentTime = new Date()
|
||||
currentTime.setSeconds(0)
|
||||
currentTime.setMilliseconds(0)
|
||||
|
||||
if (currentTime.getTime() === targetTime.getTime()) {
|
||||
console.log('[checkTime] time matches, now exiting with status 0 to make another runtime')
|
||||
process.exit(0)
|
||||
} else {
|
||||
process.exit(1)
|
||||
}
|
21
loop.sh
21
loop.sh
|
@ -1,5 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
START_TIME=$(date +"%H:%M:%S") # the checkTime.js script uses local time
|
||||
|
||||
GH_TOKEN=$2
|
||||
|
||||
REPO=$3
|
||||
|
@ -58,7 +60,10 @@ requestWebhook() {
|
|||
}
|
||||
|
||||
check() {
|
||||
currentTime=$(TZ=Etc/UTC date +"%H-%M")
|
||||
# currentTime=$(TZ=Etc/UTC date +"%H-%M")
|
||||
|
||||
### the following pattern is now deprecated. i am now using checkTime.js
|
||||
### which adds the start time by 5 hours
|
||||
|
||||
# this is the pattern. the old machine will activate the new machine 1 hour before it terminates
|
||||
|
||||
|
@ -82,11 +87,15 @@ check() {
|
|||
# 5 00:00 ACTIVATE 1
|
||||
# 5 01:50 TERMINATE
|
||||
|
||||
targetTimes=("00-00" "05-50" "10-50" "15-50" "20-50")
|
||||
# targetTimes=("00-00" "05-50" "10-50" "15-50" "20-50")
|
||||
|
||||
for target in "${targetTimes[@]}"; do
|
||||
if [[ "$currentTime" != "$target" ]]; then continue; fi
|
||||
# for target in "${targetTimes[@]}"; do
|
||||
# if [[ "$currentTime" != "$target" ]]; then continue; fi
|
||||
|
||||
node checkTime.js $START_TIME
|
||||
exitCode=$?
|
||||
|
||||
if [ $exitCode -eq 0 ]; then
|
||||
alreadyDone=1
|
||||
|
||||
hostname="old-$NAME-$RANDOM"
|
||||
|
@ -133,7 +142,9 @@ check() {
|
|||
fi
|
||||
|
||||
eval "$command"
|
||||
done
|
||||
fi
|
||||
|
||||
# done
|
||||
}
|
||||
|
||||
if [ "$1" == "true" ]; then
|
||||
|
|
Loading…
Reference in a new issue