Compare commits
32 Commits
5306cb78d3
...
prod
| Author | SHA1 | Date | |
|---|---|---|---|
| 219236f167 | |||
| 2feb3e88cc | |||
| a1a02500e4 | |||
| 5d9f57fec4 | |||
| 30a8041fa8 | |||
| ff1cf74a00 | |||
| 5ad44a8056 | |||
| b5ea457491 | |||
| eaf8d2e0bb | |||
| 616663ffe0 | |||
| 1cd182b3a9 | |||
| ccd4f4d051 | |||
| 8a8845d898 | |||
| 65be246673 | |||
| eabf56ed93 | |||
| d55b13ecbf | |||
| cc8a7710a1 | |||
| ad83090b05 | |||
| 684c237ac1 | |||
| 23c0090a47 | |||
| e57ec6de50 | |||
| c790dd6736 | |||
| 6e3666cea2 | |||
| 7379df38de | |||
| 2a915fec69 | |||
| fa0e9907ee | |||
| 2c3b5056ae | |||
| f5e0c39458 | |||
| 645093da36 | |||
| f57583b1a9 | |||
| 51b2ebf8e6 | |||
| 5a6d91296d |
@@ -25,7 +25,7 @@ cd www
|
||||
|
||||
Then in a web browser, navigate to `localhost:8080`.
|
||||
|
||||
## TODO
|
||||
## TODO Items
|
||||
|
||||
All goals are currently completed.
|
||||
|
||||
|
||||
68
check_git.sh
Executable file
68
check_git.sh
Executable file
@@ -0,0 +1,68 @@
|
||||
#!/usr/bin/env bash
|
||||
# 2025-10-14 Hyperling
|
||||
# Copied cronjob.sh from env-docker/Config/Hugo-Example/files/ to use for this
|
||||
# project so that docker container can do periodic git pulls rather than having
|
||||
# to reload /rebuild the container each time a release is pushed out.
|
||||
|
||||
## Setup ##
|
||||
|
||||
DIR="$(dirname -- "${BASH_SOURCE[0]}")"
|
||||
PROG="$(basename -- "${BASH_SOURCE[0]}")"
|
||||
cd $DIR
|
||||
DIR="`pwd`"
|
||||
NAME="'$PROG'"
|
||||
|
||||
function log {
|
||||
echo -e "`date` : $NAME - $1"
|
||||
}
|
||||
|
||||
function kill-project {
|
||||
# Kill node.js which will complete run.sh and restart any Docker containers.
|
||||
# This is more intended towards Development and Stage sites since Production
|
||||
# will only see git changes when a pull request is manually completed.
|
||||
log "Stopping continuous processes!"
|
||||
pkill node
|
||||
}
|
||||
|
||||
function reload-project {
|
||||
# Not much to do, run.sh and main.js automatically uses the latest files.
|
||||
rm -v files/photos/index.html
|
||||
# TBD/TODO: Call check_photos.sh once it has been pulled from run.sh.
|
||||
log "Project reloaded successfully!"
|
||||
}
|
||||
|
||||
## Main ##
|
||||
|
||||
# Pull any updates, and if the project is already up to date, exit successfully.
|
||||
output="`git pull`"
|
||||
git_status="$?"
|
||||
|
||||
echo "$output" | grep -v "up to date"
|
||||
grep_status="$?"
|
||||
|
||||
log "Pull status is '$git_status', checking for changes is '$grep_status'."
|
||||
|
||||
# Check whether the continuously running jobs have been updated.
|
||||
echo "$output" | grep "main.js"
|
||||
main_changed="$?"
|
||||
echo "$output" | grep "run.sh"
|
||||
run_changed="$?"
|
||||
|
||||
# Determine where we've landed and whether we need to do anything.
|
||||
if [[ $git_status != 0 ]]; then
|
||||
log "*** ERROR: Git reported a failure! ***"
|
||||
exit 1
|
||||
elif [[ $git_status == 0 && ($main_changed == 0 || $run_changed == 0) ]]; then
|
||||
log "Either main ('$main_changed'), or run ('$run_changed') were changed!"
|
||||
kill-project
|
||||
elif [[ $git_status == 0 && $grep_status == 0 ]]; then
|
||||
reload-project
|
||||
elif [[ $git_status == 0 && $grep_status != 0 ]]; then
|
||||
log "Nothing to do. '$output'"
|
||||
else
|
||||
log "*** WARNING: Unknown Situation ***"
|
||||
fi
|
||||
|
||||
## Success! ##
|
||||
|
||||
exit 0
|
||||
46
check_photos.sh
Executable file
46
check_photos.sh
Executable file
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env bash
|
||||
# 2025-10-15 Hyperling
|
||||
# Create script which does the photo checking so that it can be called by
|
||||
# scripts other than just run.sh, such as if it needs used in check_git.sh.
|
||||
|
||||
## Setup ##
|
||||
|
||||
DIR="$(dirname -- "${BASH_SOURCE[0]}")"
|
||||
PROG="$(basename -- "${BASH_SOURCE[0]}")"
|
||||
cd $DIR
|
||||
DIR="`pwd`"
|
||||
NAME="'$PROG'"
|
||||
|
||||
function log {
|
||||
echo -e "`date` : $NAME - $1"
|
||||
}
|
||||
|
||||
## Parameters ##
|
||||
|
||||
ports="$1"
|
||||
|
||||
## Main ##
|
||||
|
||||
count=1
|
||||
http_code=0
|
||||
port="${ports%% *}"
|
||||
photos_uri=":$port/photos/"
|
||||
beg_time="$SECONDS"
|
||||
while [[ $http_code != "200" ]]; do
|
||||
log "Sleeping for '$count' while waiting for $photos_uri to come up."
|
||||
sleep $count
|
||||
log "Checking if $photos_uri is available."
|
||||
http_code="`curl --silent --fail -w '\n%{http_code}' localhost$photos_uri | tail -n 1`"
|
||||
log "Check for $photos_uri responded with '$http_code'."
|
||||
if (( $count >= 10 )); then
|
||||
log "Giving up on loading $photos_uri after '$count' attempts."
|
||||
break
|
||||
else
|
||||
count=$(( count + 1 ))
|
||||
fi
|
||||
done
|
||||
end_time="$SECONDS"
|
||||
time="$(( $end_time - $beg_time ))"
|
||||
log "Finished checking for /photos/ after '$time' seconds."
|
||||
|
||||
exit 0
|
||||
26
cronjob.sh
26
cronjob.sh
@@ -1,26 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# 2025-10-14 Hyperling
|
||||
# Copied cronjob.sh from env-docker/Config/Hugo-Example/files/ to use for this
|
||||
# project so that docker container can do periodic git pulls rather than having
|
||||
# to reload /rebuild the container each time a release is pushed out.
|
||||
|
||||
DIR="$(dirname -- "${BASH_SOURCE[0]}")"
|
||||
PROG="$(basename -- "${BASH_SOURCE[0]}")"
|
||||
echo "$DIR/$PROG"
|
||||
|
||||
echo "*** Running cronjob @ `date` ***"
|
||||
cd $DIR
|
||||
|
||||
# Pull any updates, and if the project is already up to date, exit successfully.
|
||||
git pull | grep -v "up to date"
|
||||
status="$?"
|
||||
echo "* Pull status is '$status'."
|
||||
if [[ $status != 0 ]]; then
|
||||
echo "* Site is already up to date, exiting."
|
||||
exit 0
|
||||
else
|
||||
# Kill node.js which will complete run.sh and restart any Docker containers.
|
||||
pkill node
|
||||
fi
|
||||
|
||||
exit 0
|
||||
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/php
|
||||
<!--
|
||||
Synonym for home page.
|
||||
-->
|
||||
<?php
|
||||
/* Synonym for home page. */
|
||||
if (!isset($GLOBALS["HEADER_TITLE"])) {
|
||||
$GLOBALS["HEADER_TITLE"] = "Apps";
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/php
|
||||
<!--
|
||||
Alias for where Books menu item should go.
|
||||
-->
|
||||
<?php
|
||||
/* Alias for where Books menu item should go. */
|
||||
if (!isset($GLOBALS["HEADER_TITLE"])) {
|
||||
$GLOBALS["HEADER_TITLE"] = "Books";
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/php
|
||||
<!--
|
||||
Alias for the support page with a more common name.
|
||||
-->
|
||||
<?php
|
||||
/* Alias for the support page with a more common name. */
|
||||
if (!isset($GLOBALS["HEADER_TITLE"])) {
|
||||
$GLOBALS["HEADER_TITLE"] = "Donate";
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/php
|
||||
<!--
|
||||
Page to provide links for Freedom eBook.
|
||||
-->
|
||||
<?php
|
||||
/* Page to provide links for Freedom eBook. */
|
||||
$GLOBALS["ADVISORY"] = false;
|
||||
if (!isset($GLOBALS["HEADER_TITLE"])) {
|
||||
$GLOBALS["HEADER_TITLE"] = "Freedom";
|
||||
@@ -29,7 +27,7 @@
|
||||
<div class="row">
|
||||
<div class="col-12 text">
|
||||
<p>
|
||||
Click the link below to download the 4-page PDF:
|
||||
Use the links below to download the 4-page PDF:
|
||||
</p>
|
||||
<ul class="indent">
|
||||
<li>
|
||||
@@ -58,13 +56,28 @@
|
||||
<p>
|
||||
Curious how I made it? Check out its Git repository:
|
||||
</p>
|
||||
<ul class="indent"><li>
|
||||
<ul class="indent">
|
||||
<li>
|
||||
<a href="https://git.hyperling.com/me/ebook-freedom-flyer"
|
||||
target="_blank" rel="noopener noreferrer"
|
||||
>
|
||||
[CODE] | Source Code
|
||||
</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Here is the video it was announced in:
|
||||
</p>
|
||||
<ul class="indent">
|
||||
<li>
|
||||
<a href="https://odysee.com/@HyperVegan:2/20251003-Announcements:0"
|
||||
target="_blank" rel="noopener noreferrer"
|
||||
>
|
||||
[Odysee] | HyperVegan: "Announcements: Skipped Midfest, Voluntary Sovereignty eBook, CheapRVLiving Interview"
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/php
|
||||
<!--
|
||||
Page to provide ways people can support me.
|
||||
-->
|
||||
<?php
|
||||
/* Page to provide ways people can support me. */
|
||||
//$GLOBALS["ADVISORY"] = false;
|
||||
if (!isset($GLOBALS["HEADER_TITLE"])) {
|
||||
$GLOBALS["HEADER_TITLE"] = "Health";
|
||||
@@ -30,7 +28,7 @@
|
||||
<div class="row">
|
||||
<div class="col-12 text">
|
||||
<p>
|
||||
Click the link below to download the 10-page PDF:
|
||||
Use the links below to download the 10-page PDF:
|
||||
</p>
|
||||
<ul class="indent">
|
||||
<li>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
</div>
|
||||
|
||||
<div class="row center title" id="advisory">
|
||||
<i><h2 class="col-12 title">Latest Announcement</h2></i>
|
||||
<h2 class="col-12 title"><i class="purple">Latest Announcement</i></h2>
|
||||
<a href="/freedom/">
|
||||
<div class="col-12 text">
|
||||
<u class="orange">2025-09-28</u>
|
||||
|
||||
@@ -6,20 +6,11 @@
|
||||
}
|
||||
$show_pics = $GLOBALS["SHOW_BANNER_PICS"];
|
||||
$banner_width = $show_pics ? 6 : 12;
|
||||
|
||||
// TBD / TODO:
|
||||
// Check if user has vertical screen?
|
||||
// Is that possible in this environment?
|
||||
//$image_width = $vertical_screen ? 6 : 3;
|
||||
?>
|
||||
<a href='/about/'>
|
||||
<div class="row">
|
||||
<?php if ($show_pics) echo '
|
||||
<div class="col-3 header center banner-image banner-image01">
|
||||
<!-<img src="/files/media/icons/home.jpg"
|
||||
alt="<<banner01.jpg>>"
|
||||
>-->
|
||||
</div>
|
||||
<div class="col-3 header center banner-image banner-image01"></div>
|
||||
';?>
|
||||
<div class="col-<?php echo "$banner_width"; ?> header">
|
||||
<div class="banner-top">Peace</div>
|
||||
@@ -27,11 +18,7 @@
|
||||
<div class="banner-bottom">Happiness</div>
|
||||
</div>
|
||||
<?php if ($show_pics) echo '
|
||||
<div class="col-3 header center banner-image banner-image02">
|
||||
<!--<img src="/files/media/icons/contact.jpg"
|
||||
alt="<<banner02.jpg>>"
|
||||
>-->
|
||||
</div>
|
||||
<div class="col-3 header center banner-image banner-image02"></div>
|
||||
';?>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
@@ -30,16 +30,16 @@
|
||||
<?php include "banner.css"; ?>
|
||||
</style>
|
||||
|
||||
<meta property="og:title" content="Hyperling"/>
|
||||
<meta property="og:description" content="Apps, eBooks, media, and other resources from the brands Hyperling and HyperVegan."/>
|
||||
<meta property="og:site_name" content="Hyperling"/>
|
||||
<meta property="og:url" content="https://hyperling.com/"/>
|
||||
<meta property="og:type" content="website"/>
|
||||
<meta property="og:image" content="https://hyperling.com/files/media/icons/home.jpg"/>
|
||||
<meta name="referrer" content="same-origin"/>
|
||||
<meta property="og:title" content="Hyperling">
|
||||
<meta property="og:description" content="Apps, eBooks, media, and other resources from the brands Hyperling and HyperVegan.">
|
||||
<meta property="og:site_name" content="Hyperling">
|
||||
<meta property="og:url" content="https://hyperling.com/">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:image" content="https://hyperling.com/files/media/icons/home.jpg">
|
||||
<meta name="referrer" content="same-origin">
|
||||
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:title" content="Hyperling" />
|
||||
<meta name="twitter:description" content="Apps, eBooks, media, and other resources from the brands Hyperling and HyperVegan." />
|
||||
<meta name="twitter:image" content="https://hyperling.com/files/media/icons/home.jpg" />
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:title" content="Hyperling">
|
||||
<meta name="twitter:description" content="Apps, eBooks, media, and other resources from the brands Hyperling and HyperVegan.">
|
||||
<meta name="twitter:image" content="https://hyperling.com/files/media/icons/home.jpg">
|
||||
</head>
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/php
|
||||
<!--
|
||||
Landing page, keeping it apps and development projects like old WordPress site.
|
||||
-->
|
||||
<?php
|
||||
/* Landing page, keeping it apps and development projects like old WordPress site. */
|
||||
if (!isset($GLOBALS["HEADER_TITLE"])) {
|
||||
$GLOBALS["HEADER_TITLE"] = "Announcements";
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/php
|
||||
<!--
|
||||
Page for my video links.
|
||||
-->
|
||||
<?php
|
||||
/* Page for my video links. */
|
||||
if (!isset($GLOBALS["HEADER_TITLE"])) {
|
||||
$GLOBALS["HEADER_TITLE"] = "Media";
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/php
|
||||
<!--
|
||||
Lists of items which I'd like to share such as gear and frequently used apps.
|
||||
-->
|
||||
<?php
|
||||
/* Lists of items which I'd like to share such as gear and frequently used apps. */
|
||||
if (!isset($GLOBALS["HEADER_TITLE"])) {
|
||||
$GLOBALS["HEADER_TITLE"] = "Resources";
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/php
|
||||
<!--
|
||||
Page for my resume and work skill links.
|
||||
-->
|
||||
<?php
|
||||
/* Page for my resume and work skill links. */
|
||||
if (!isset($GLOBALS["HEADER_TITLE"])) {
|
||||
$GLOBALS["HEADER_TITLE"] = "Resume";
|
||||
}
|
||||
|
||||
@@ -54,7 +54,6 @@
|
||||
>Watch the announcement here | (HyperVegan: "Expense Tracker App")</a>
|
||||
</p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
#!/usr/bin/php
|
||||
<!--
|
||||
Page to provide ways people can support me.
|
||||
-->
|
||||
<?php
|
||||
/* Page to provide ways people can support me. */
|
||||
if (!isset($GLOBALS["HEADER_TITLE"])) {
|
||||
$GLOBALS["HEADER_TITLE"] = "Support";
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
#!/usr/bin/php
|
||||
<!--
|
||||
<?php
|
||||
/*
|
||||
Old page for my video links.
|
||||
Deprecated 2024-03-06 for /media.
|
||||
-->
|
||||
<?php
|
||||
*/
|
||||
if (!isset($GLOBALS["HEADER_TITLE"])) {
|
||||
$GLOBALS["HEADER_TITLE"] = "Videos";
|
||||
}
|
||||
|
||||
56
run.sh
56
run.sh
@@ -6,7 +6,12 @@
|
||||
|
||||
DIR="$(dirname -- "${BASH_SOURCE[0]}")"
|
||||
PROG="$(basename -- "${BASH_SOURCE[0]}")"
|
||||
echo "$DIR/$PROG"
|
||||
|
||||
# Ensure we are executing from this file's directory.
|
||||
cd $DIR
|
||||
DIR="`pwd`"
|
||||
NAME="'$DIR/$PROG'"
|
||||
echo $NAME
|
||||
|
||||
## Functions ##
|
||||
|
||||
@@ -27,13 +32,15 @@ function log {
|
||||
echo -e "`date` - $message"
|
||||
}
|
||||
|
||||
log "Local process information:"
|
||||
ps $$
|
||||
function check_main {
|
||||
if [[ -z "$1" ]]; then
|
||||
echo "ERROR: Subprocess name was not provided. $1"
|
||||
exit 0
|
||||
fi
|
||||
log "Subprocess '$1' checking if main process is still running..."
|
||||
ps $$
|
||||
ps $$ >/dev/null
|
||||
status=$?
|
||||
if [[ $status != 0 ]]; then
|
||||
log "Process '$$' not found, '$1' from '$DIR/$PROG' exiting."
|
||||
@@ -62,9 +69,6 @@ fi
|
||||
|
||||
## Build Environment ##
|
||||
|
||||
# Ensure we are executing from this file's directory.
|
||||
cd $DIR
|
||||
|
||||
sudo=""
|
||||
if [[ -z $LOGNAME ]]; then
|
||||
LOGNAME="`whoami`"
|
||||
@@ -75,25 +79,29 @@ if [[ $LOGNAME != "root" ]]; then
|
||||
fi
|
||||
|
||||
log "Check if any system dependencies need installed."
|
||||
progs=""
|
||||
if [[ ! `which php` ]]; then
|
||||
echo "- Installing PHP"
|
||||
$sudo apt-get install -y php-cli
|
||||
progs="$progs php-cli"
|
||||
fi
|
||||
if [[ ! `which node` ]]; then
|
||||
echo "- Installing Node"
|
||||
$sudo apt-get install -y nodejs
|
||||
progs="$progs nodejs"
|
||||
fi
|
||||
if [[ ! `which npm` ]]; then
|
||||
echo "- Installing NPM"
|
||||
$sudo apt-get install -y npm
|
||||
progs="$progs npm"
|
||||
fi
|
||||
if [[ ! `which curl` ]]; then
|
||||
echo "- Installing Curl"
|
||||
$sudo apt-get install -y curl
|
||||
progs="$progs curl"
|
||||
fi
|
||||
if [[ ! `which ps` ]]; then
|
||||
echo "- Installing PS"
|
||||
$sudo apt-get install -y procps
|
||||
progs="$progs procps"
|
||||
fi
|
||||
if [[ -n "$progs" ]]; then
|
||||
$sudo apt-get install -y $progs
|
||||
fi
|
||||
|
||||
# Directories and allowed page types are executable, others are not.
|
||||
@@ -115,35 +123,15 @@ log "Removing old index files."
|
||||
find files/photos/ -name "*".html -print -delete
|
||||
{
|
||||
check_main photos
|
||||
count=1
|
||||
http_code=0
|
||||
port="${ports%% *}"
|
||||
photos_uri=":$port/photos/"
|
||||
beg_time="$SECONDS"
|
||||
while [[ $http_code != "200" ]]; do
|
||||
log "Sleeping for '$count' while waiting for $photos_uri to come up."
|
||||
sleep $count
|
||||
log "Checking if $photos_uri is available."
|
||||
http_code="`curl --silent --fail -w '\n%{http_code}' localhost$photos_uri | tail -n 1`"
|
||||
log "Check for $photos_uri responded with '$http_code'."
|
||||
if (( $count >= 10 )); then
|
||||
log "Giving up on loading $photos_uri after '$count' attempts."
|
||||
break
|
||||
else
|
||||
count=$(( count + 1 ))
|
||||
fi
|
||||
done
|
||||
end_time="$SECONDS"
|
||||
time="$(( $end_time - $beg_time ))"
|
||||
log "Finished checking for /photos/ after '$time' seconds."
|
||||
$DIR/check_photos.sh "$ports"
|
||||
} &
|
||||
|
||||
## Main ##
|
||||
|
||||
log "Start repo updater."
|
||||
log "Start check_git."
|
||||
while true; do
|
||||
check_main cronjob
|
||||
$DIR/cronjob.sh
|
||||
check_main check_git
|
||||
$DIR/check_git.sh
|
||||
sleep 30
|
||||
done &
|
||||
|
||||
|
||||
Reference in New Issue
Block a user