Compare commits

...

59 Commits

Author SHA1 Message Date
219236f167 Move PHP comments into PHP tags since they do not need to be on the website and were in front of the Doc Start tag. 2025-10-17 14:27:53 -07:00
2feb3e88cc Move comment to be after document start. 2025-10-17 14:19:57 -07:00
a1a02500e4 Fix formatting and add back the removed div. 2025-10-17 14:19:04 -07:00
5d9f57fec4 Remove stray a closure. 2025-10-17 14:15:48 -07:00
30a8041fa8 Change order of i and h2 tags, specify that i should be purple in this context. 2025-10-17 14:14:26 -07:00
ff1cf74a00 Remove unnecessary trailing slashes from meta attributes. 2025-10-17 14:12:36 -07:00
5ad44a8056 Remove excess div closure. 2025-10-17 14:10:11 -07:00
b5ea457491 Remove comments which may have some malformed portions showing up on the site. 2025-10-15 09:52:04 -07:00
eaf8d2e0bb Update wording now that there are multiple links. 2025-10-15 06:52:38 -07:00
616663ffe0 Move photo checking out of run.sh and into its own script. 2025-10-15 05:01:33 -07:00
1cd182b3a9 Rename cronjob.sh to check_git.sh. Eventually do the same with the photo checker code so that it can be called from check_git. 2025-10-14 15:13:24 -07:00
ccd4f4d051 Of course I think of something AFTER the release, lol! Reset the photo index file so that any changed CSS is adapted. 2025-10-14 15:10:14 -07:00
8a8845d898 Merge pull request '¡Hyperling.com 2.0!' (#16) from dev into main
Reviewed-on: #16
2025-10-14 14:54:53 -07:00
65be246673 Remove idea, working fine without it. 2025-10-14 14:38:27 -07:00
eabf56ed93 Specify that this is not a TODO, just listing TODO items. 2025-10-14 14:38:01 -07:00
d55b13ecbf Add more comments. 2025-10-14 14:03:28 -07:00
cc8a7710a1 Enhance comment on WHY there is nothing to do. :) 2025-10-14 14:01:52 -07:00
ad83090b05 Add further comments for future self and others. 2025-10-14 14:01:08 -07:00
684c237ac1 Remove excess exit and provide output var in case it's helpful in later debugging. 2025-10-14 13:57:33 -07:00
23c0090a47 Only run apt install command once. 2025-10-14 13:51:58 -07:00
e57ec6de50 Add automatic restart if a primary program is updated. 2025-10-14 13:47:38 -07:00
c790dd6736 Reword the output. 2025-10-14 13:41:46 -07:00
6e3666cea2 Begin watching git's status too, not just the grep status of not already being up to date. Add more conditional branches so that errors are logged properly. 2025-10-14 13:37:55 -07:00
7379df38de Make output even more succint. Remove duplicate cd command. 2025-10-14 13:11:37 -07:00
2a915fec69 Fancify script. 2025-10-14 13:06:21 -07:00
fa0e9907ee Use full executable path. Move the ps information out of the loop to prevent log spam. 2025-10-14 13:06:11 -07:00
2c3b5056ae Use a single echo command to announce the program's run. 2025-10-14 12:52:07 -07:00
f5e0c39458 Change announcement wording. Refactor code HTML. 2025-10-14 12:51:06 -07:00
645093da36 Add the announcement video to Freedom page. 2025-10-14 12:48:39 -07:00
f57583b1a9 Refactor comments and output. 2025-10-14 12:46:57 -07:00
51b2ebf8e6 Do not do a full kill, allows website to keep uptime while getting updates. 2025-10-14 12:36:57 -07:00
5a6d91296d Change label for local cronjob. 2025-10-14 12:23:28 -07:00
5306cb78d3 Change to the proper package name for ps. 2025-10-14 12:17:17 -07:00
749a018a6e Remove rebase since files/ is being ignored in Docker container. 2025-10-14 12:16:59 -07:00
f212c41734 Add ps requirement, missing from Docker container! 2025-10-14 11:53:13 -07:00
cba46bfc23 Add explicit rebase. 2025-10-14 11:51:19 -07:00
b734be4054 Enable kill mode. 2025-10-14 11:50:50 -07:00
45915d2914 Add comment on how to stop the 2025-10-14 11:48:55 -07:00
1fa30724d2 Use a parent process checker for both forked jobs. 2025-10-14 11:43:03 -07:00
6def1a3007 Echo the killed processes. 2025-10-14 11:26:43 -07:00
ed7c2b8b29 Add automatic execution of cronjob through run script. 2025-10-14 11:25:35 -07:00
3fcd6af3a9 Move cd to be more in the program. 2025-10-14 11:24:14 -07:00
8507cbd189 Add dedicated cronjob file for keeping the project in sync on docker containers. 2025-10-14 11:18:39 -07:00
8207702442 Make the dates pop a bit more. 2025-10-14 10:30:22 -07:00
0ec47180e2 Add part about testing. 2025-10-14 10:30:08 -07:00
c28f7a92d9 Break open HTML so it is more readable. Add comment for gap. 2025-10-14 10:19:02 -07:00
2d270542f0 Add subtitles of eBooks, as well as a small gap between the list items. 2025-10-14 10:17:51 -07:00
ba0cfe8b56 Show advisory on this page since they are no longer related. 2025-10-14 10:17:24 -07:00
fa8eef51ff Reword and refactor advisory. 2025-10-14 10:12:27 -07:00
730940b003 Remove All, seems too wordy. 2025-10-14 09:58:35 -07:00
58fab1850b Place subtitle header in its own row. 2025-10-14 06:39:28 -07:00
a5b6227fef Remove indentation on centered link. Remove comment with Markdown link. 2025-10-14 06:37:14 -07:00
999a919a7f Remove title image. 2025-10-14 06:33:27 -07:00
9afec80742 Remove title image. 2025-10-14 06:33:18 -07:00
550485093c Remove TBD. 2025-10-14 06:33:04 -07:00
3a736dec82 Remove TBD. 2025-10-14 06:32:54 -07:00
15bbb2e33e Add links to announcement videos. 2025-10-14 06:30:24 -07:00
c2193c9651 Refactor banner image CSS. 2025-10-14 06:30:03 -07:00
e0ae65304d Get the banner images to play MUCH better thanks to midnight epiphany of using background. :) 2025-10-14 06:00:26 -07:00
22 changed files with 274 additions and 151 deletions

View File

@@ -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
View 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
View 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

View File

@@ -29,7 +29,6 @@
planted at least one fruit tree or had a small square foot
garden. We would be in paradise!
</p>
<!-- TBD change this to 'Coding, videos, and art' :) -->
<p>
Coding and videos aren't my only hobbies, I'm also big into
health. I see it as humanity's most important asset and take a

View File

@@ -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";
}
@@ -11,7 +9,6 @@
<div class="row" id="experience">
<h2 class="col-12 title">My Profession</h2>
</div>
<!-- TBD/TODO: Add image? Me at laptop with Cleo? Or none like other Media pages? -->
<div class="row">
<div class="col-12 header">
<p>
@@ -19,9 +16,9 @@
Linux system administration from a young age.
Much of my career has focused on back-end / database systems
and optimizing workflows.
I feel that I specialize in building systems with "no sharp edges",
meaning that I make sure there isn't a way the user can hurt
themselves or the system.
I feel that I specialize in building systems with "no sharp
edges", meaning that I test rigorously to ensure there aren't any
ways the user can hurt themselves or the system.
In my free time I enjoy learning new
languages and writing apps for Android.
</p>

View File

@@ -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";
}

View File

@@ -7,9 +7,6 @@
?>
<div class="row">
<h1 class="col-12 title">Current Diet</h1>
<div class="col-12 header center" >
<img src="/files/media/icons/tbd.jpg" alt="Image TBD">
</div>
</div>
<div class="row">
<div class="col-12 text">

View File

@@ -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";
}

View File

@@ -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

View File

@@ -1,9 +1,7 @@
#!/usr/bin/php
<!--
Page to provide ways people can support me.
-->
<?php
$GLOBALS["ADVISORY"] = false;
/* 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>

View File

@@ -1,15 +1,13 @@
#!/usr/bin/php
<?php
$show_advisory = false;
$show_advisory = true;
if ($show_advisory) echo '
<div class="row">
<p><!-- Gap Area --></p>
</div>
<div class="row center" id="advisory">
<div class="col-12 title">
<i><h2>Announcements</h2></i>
</div>
<div class="row center title" id="advisory">
<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>

View File

@@ -4,7 +4,7 @@
.banner-top, .banner-middle, .banner-bottom {
color: white;
width: 100%;
/* height: 69px; TBD/TODO: Still testing this removal. */
height: 69px;
font-size: 50px;
text-align: center;
}
@@ -21,3 +21,16 @@
.banner-bottom {
background-color: #33CC33;
}
.banner-image {
background-repeat: no-repeat;
background-position: center, center;
height: 237px; /* 69*3[banner stripes] + 15*2[padding top+bot] */
}
.banner-image01 {
background-image: url("/files/media/icons/home.jpg");
}
.banner-image02 {
background-image: url("/files/media/icons/contact.jpg");
}

View File

@@ -8,23 +8,17 @@
$banner_width = $show_pics ? 6 : 12;
?>
<a href='/about/'>
<div class="row">
<?php if ($show_pics) echo '
<div class="row col-3 header center">
<img src="/files/media/icons/home.jpg"
alt="<<banner01.jpg>>" style="width:100%"
>
</div>
<div class="col-3 header center banner-image banner-image01"></div>
';?>
<div class="row col-<?php echo "$banner_width"; ?> header">
<div class="col-<?php echo "$banner_width"; ?> header">
<div class="banner-top">Peace</div>
<div class="banner-middle">Love</div>
<div class="banner-bottom">Happiness</div>
</div>
<?php if ($show_pics) echo '
<div class="row col-3 header center">
<img src="/files/media/icons/contact.jpg"
alt="<<banner02.jpg>>" style="width:100%"
>
</div>
<div class="col-3 header center banner-image banner-image02"></div>
';?>
</div>
</a>

View File

@@ -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>

View File

@@ -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";
}

View File

@@ -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";
}
@@ -35,11 +33,18 @@
<p>
I enjoy writing! Find my free eBooks below.
</p>
<ul class="indent"><li>
2025-09-28: <a href="/freedom/">Voluntary Sovereignty</a>
</li><li>
2024-03-07: <a href="/health/">My Health Protocol</a>
</li></ul>
<ul class="indent">
<li>
2025-09-28: <a href="/freedom/">Voluntary Sovereignty</a> |
Existing in a statist society with the least amount of friction.
</li>
<li><p><!-- Small Gap --></p></li>
<li>
2024-03-07: <a href="/health/">Hyperling's Health Protocol</a> |
Health is a lifestyle, not a diet. Align yourself with Nature
to receive its blessings.
</li>
</ul>
</div>
</div>

View File

@@ -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";
}

View File

@@ -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";
}
@@ -10,9 +8,8 @@
?>
<div class="row">
<h1 class="col-12 title">Resume</h1>
<div class="col-12 header center" >
<img src="/files/media/icons/home.jpg" alt="<<home.jpg>>"> <!-- TBD use a new photo -->
</div>
<div class="row">
<h2 class="col-12 title center">Current Status : Traveling Full Time</h2>
</div>
<div class="row">
@@ -20,22 +17,13 @@
<p>
Interested in hiring me? View my resume below!
</p>
<ul class="indent"><li>
<!--<ul class="indent"><li>-->
<a href="https://hyperling.com/files/media/documents/Resume.pdf"
target="_blank" rel="noopener noreferrer"
>
[PDF] | Direct Download
</a>
</li></ul>
<!-- For those sneaky folks who look at source code. ;)
<ul class="indent"><li>
<a href="https://hyperling.com/files/media/documents/resume.md"
target="_blank" rel="noopener noreferrer"
>
[Markdown] | Direct Download
</a>
</li></ul>
-->
<!--</li></ul>-->
</div>
</div>
<?php

View File

@@ -3,12 +3,12 @@
$long = true;
?>
<div class="row" id="obtainium">
<h2 class="col-12 header">All Announcements</h2>
<h2 class="col-12 header">Announcements</h2>
</div>
<div class="row">
<div class="col-12 text">
<a href="/freedom/">2025-09-28</a>
<strong><a href="/freedom/">2025-09-28</a></strong>
<p>
I wrote another short free eBook, "Voluntary Sovereignty", check it out
<a href="/freedom/">here</a>!
@@ -24,16 +24,16 @@
</p>
";?>
<p>
<a href="https://odysee.com/@HyperVegan:2"
<a href="https://odysee.com/@HyperVegan:2/20251003-Announcements:0"
target="_blank" rel="noopener noreferrer"
>Watch the announcement here | (TBD/TODO)</a>
>Watch the announcement here | (HyperVegan: "Announcements: Skipped Midfest, Voluntary Sovereignty eBook, CheapRVLiving Interview")</a>
</p>
</div>
</div>
<div class="row">
<div class="col-12 text">
<a href="/apps/#expense">2025-05-XX</a>
<strong><a href="/apps/#expense">2025-03-27</a></strong>
<p>
My new Android app
<a href="/apps/#expense">"Expense Tracker"</a>
@@ -49,17 +49,16 @@
</p>
";?>
<p>
<a href="https://odysee.com/@HyperVegan:2"
<a href="https://odysee.com/@HyperVegan:2/20250402-HyperVegan-ExpenseTrackerApp:4"
target="_blank" rel="noopener noreferrer"
>Watch the announcement here | (TBD/TODO)</a>
>Watch the announcement here | (HyperVegan: "Expense Tracker App")</a>
</p>
</div>
</a>
</div>
<div class="row">
<div class="col-12 text">
<a href="/health/">2024-03-07</a>
<strong><a href="/health/">2024-03-07</a></strong>
<p>
Find my free eBook, "Hyperling's Health Protocol",
<a href="/health/">here</a>!
@@ -77,16 +76,16 @@
</p>
";?>
<p>
<a href="https://odysee.com/@HyperVegan:2"
<a href="https://odysee.com/@HyperVegan:2/20240306_MyHealthProtocol-Book:9"
target="_blank" rel="noopener noreferrer"
>Watch the announcement here | (TBD/TODO)</a>
>Watch the announcement here | (HyperVegan: "My Health Protocol | eBook")</a>
</p>
</div>
</div>
<div class="row">
<div class="col-12 text">
<a href="/apps/#tictactoe">2024-03-31</a>
<strong><a href="/apps/#tictactoe">2024-03-31</a></strong>
<p>
There's a new app in town,
<a href="/apps/#tictactoe">Tic-Tac-Toe</a>!
@@ -101,9 +100,9 @@
</p>
";?>
<p>
<a href="https://odysee.com/@HyperVegan:2"
<a href="https://odysee.com/@HyperVegan:2/20240401_NewYearNewApp:1"
target="_blank" rel="noopener noreferrer"
>Watch the announcement here | (TBD/TODO)</a>
>Watch the announcement here | (HyperVegan: "New Year, New App")</a>
</p>
</div>
</div>

View File

@@ -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";
}

View File

@@ -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";
}

78
run.sh
View File

@@ -4,8 +4,14 @@
## Setup ##
DIR=`dirname $0`
PROG=`basename $0`
DIR="$(dirname -- "${BASH_SOURCE[0]}")"
PROG="$(basename -- "${BASH_SOURCE[0]}")"
# Ensure we are executing from this file's directory.
cd $DIR
DIR="`pwd`"
NAME="'$DIR/$PROG'"
echo $NAME
## Functions ##
@@ -26,6 +32,22 @@ 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 $$ >/dev/null
status=$?
if [[ $status != 0 ]]; then
log "Process '$$' not found, '$1' from '$DIR/$PROG' exiting."
exit 0
fi
}
## Parameters ##
while getopts ':p:h' opt; do
@@ -47,9 +69,6 @@ fi
## Build Environment ##
# Ensure we are executing from this file's directory.
cd $DIR
sudo=""
if [[ -z $LOGNAME ]]; then
LOGNAME="`whoami`"
@@ -60,21 +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"
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.
@@ -95,36 +122,27 @@ npm install
log "Removing old index files."
find files/photos/ -name "*".html -print -delete
{
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."
check_main photos
$DIR/check_photos.sh "$ports"
} &
## Main ##
log "Start check_git."
while true; do
check_main check_git
$DIR/check_git.sh
sleep 30
done &
log "Start website API."
node ./main.js $ports
status=$?
## Finish ##
log "Kill spawned processes."
pkill -eP $$
log "Exiting with status '$status'."
exit $status