Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rework loadups so that the loadup-all.sh process can be restarted from the various stages. Add template for lfg loadups. #1958

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 49 additions & 35 deletions scripts/copy-all.sh
Original file line number Diff line number Diff line change
@@ -1,46 +1,60 @@
#!/bin/sh
# shellcheck disable=SC2086

main() {
# shellcheck source=./loadup-setup.sh
. "${LOADUP_SCRIPTDIR}/loadup-setup.sh"

echo ">>>>> START ${script_name}"

/bin/sh "${LOADUP_SCRIPTDIR}/cpv" "${LOADUP_WORKDIR}"/full.sysout "${LOADUP_OUTDIR}" \
| sed -e "s#${MEDLEYDIR}/##g"
/bin/sh "${LOADUP_SCRIPTDIR}/cpv" "${LOADUP_WORKDIR}"/lisp.sysout "${LOADUP_OUTDIR}" \
| sed -e "s#${MEDLEYDIR}/##g"

if [ "${1}" = "-apps" ]; then
/bin/sh "${LOADUP_SCRIPTDIR}/cpv" "${LOADUP_WORKDIR}"/apps.sysout "${LOADUP_OUTDIR}" \
| sed -e "s#${MEDLEYDIR}/##g"
fi

/bin/sh "${LOADUP_SCRIPTDIR}/cpv" "${LOADUP_WORKDIR}"/whereis.hash "${LOADUP_OUTDIR}" \
| sed -e "s#${MEDLEYDIR}/##g"
/bin/sh "${LOADUP_SCRIPTDIR}/cpv" "${LOADUP_WORKDIR}"/exports.all "${LOADUP_OUTDIR}" \
| sed -e "s#${MEDLEYDIR}/##g"

/bin/sh "${LOADUP_SCRIPTDIR}/cpv" "${LOADUP_WORKDIR}"/init.dribble "${LOADUP_OUTDIR}" \
| sed -e "s#${MEDLEYDIR}/##g"
/bin/sh "${LOADUP_SCRIPTDIR}/cpv" "${LOADUP_WORKDIR}"/lisp.dribble "${LOADUP_OUTDIR}" \
| sed -e "s#${MEDLEYDIR}/##g"
/bin/sh "${LOADUP_SCRIPTDIR}/cpv" "${LOADUP_WORKDIR}"/full.dribble "${LOADUP_OUTDIR}" \
| sed -e "s#${MEDLEYDIR}/##g"
/bin/sh "${LOADUP_SCRIPTDIR}/cpv" "${LOADUP_WORKDIR}"/whereis.dribble "${LOADUP_OUTDIR}" \
| sed -e "s#${MEDLEYDIR}/##g"

if [ "${1}" = "-apps" ]; then
/bin/sh "${LOADUP_SCRIPTDIR}/cpv" "${LOADUP_WORKDIR}"/apps.dribble "${LOADUP_OUTDIR}" \
| sed -e "s#${MEDLEYDIR}/##g"
fi


/bin/sh "${LOADUP_SCRIPTDIR}/cpv" "${LOADUP_WORKDIR}"/RDSYS library \
| sed -e "s#${MEDLEYDIR}/##g"
/bin/sh "${LOADUP_SCRIPTDIR}/cpv" "${LOADUP_WORKDIR}"/RDSYS.LCOM library \
| sed -e "s#${MEDLEYDIR}/##g"

start=$1
end=$2
noaux="$3"

if [ $start -le 3 ] && [ $end -ge 3 ]
then
/bin/sh "${LOADUP_SCRIPTDIR}/cpv" "${LOADUP_WORKDIR}"/lisp.sysout "${LOADUP_OUTDIR}" \
| sed -e "s#${MEDLEYDIR}/##g"
fi


if [ $start -le 4 ] && [ $end -ge 4 ]
then
/bin/sh "${LOADUP_SCRIPTDIR}/cpv" "${LOADUP_WORKDIR}"/full.sysout "${LOADUP_OUTDIR}" \
| sed -e "s#${MEDLEYDIR}/##g"
fi

if [ $end -eq 5 ]
then
/bin/sh "${LOADUP_SCRIPTDIR}/cpv" "${LOADUP_WORKDIR}"/apps.sysout "${LOADUP_OUTDIR}" \
| sed -e "s#${MEDLEYDIR}/##g"
fi

if [ $end -eq 6 ]
then
/bin/sh "${LOADUP_SCRIPTDIR}/cpv" "${LOADUP_WORKDIR}"/lfg.sysout "${LOADUP_OUTDIR}" \
| sed -e "s#${MEDLEYDIR}/##g"
fi

if [ -z "$noaux" ]
then
/bin/sh "${LOADUP_SCRIPTDIR}/cpv" "${LOADUP_WORKDIR}"/whereis.hash "${LOADUP_OUTDIR}" \
| sed -e "s#${MEDLEYDIR}/##g"
/bin/sh "${LOADUP_SCRIPTDIR}/cpv" "${LOADUP_WORKDIR}"/exports.all "${LOADUP_OUTDIR}" \
| sed -e "s#${MEDLEYDIR}/##g"
fi

if [ -f "${LOADUP_WORKDIR}"/RDSYS ]
then
/bin/sh "${LOADUP_SCRIPTDIR}/cpv" "${LOADUP_WORKDIR}"/RDSYS "${MEDLEYDIR}/library" \
| sed -e "s#${MEDLEYDIR}/##g"
fi

if [ -f "${LOADUP_WORKDIR}"/RDSYS ]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this be checking for RDSYS.LCOM before trying to cpv it?

then
/bin/sh "${LOADUP_SCRIPTDIR}/cpv" "${LOADUP_WORKDIR}"/RDSYS.LCOM "${MEDLEYDIR}/library" \
| sed -e "s#${MEDLEYDIR}/##g"
fi

echo "<<<<< END ${script_name}"
echo ""
Expand Down
195 changes: 163 additions & 32 deletions scripts/loadup-all.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,42 +6,173 @@ main() {
# shellcheck source=./loadup-setup.sh
. "${LOADUP_SCRIPTDIR}/loadup-setup.sh"

# look thru args looking to see if -apps, --apps, or -a was specified in args
apps=""
j=1
jmax=$#
while [ "$j" -le "$jmax" ]
do
if [ "$(eval "printf %s \${${j}}")" = "-a" ] || \
[ "$(eval "printf %s \${${j}}")" = "-apps" ] || \
[ "$(eval "printf %s \${${j}}")" = "--apps" ]
then
apps="-apps"
break
fi
# process args
noaux=""
start=0
start_s=init
start_sysout=""
end=4
end_s=full
while [ "$#" -ne 0 ];
do
case "$1" in
-n | -noaux | --noaux)
noaux=true
;;
-g | -lfg | --lfg)
end=6
end_s=lfg
;;
-a | -apps | --apps)
end=5
end_s=apps
;;
-f | -full | --full | -4)
end=4
end_s=full
;;
-l | -lisp | --lisp | -3)
end=3
end_s=lisp
;;
-m | -mid | --mid | -2)
end=2
end_s=mid
;;
-i | -init | --init | -1)
end=1
end_s=init
;;
-s | -start | --start)
case "$2" in
s | scratch | 0)
start=0
start_s=scratch
start_sysout=starter.sysout
;;
i | init | 1)
start=1
start_s=init
start_sysout=init.dlinit
;;
m | mid | 2)
start=2
start_s=mid
start_sysout=init-mid.sysout
;;
l | lisp | 3)
start=3
start_s=lisp
start_sysout=lisp.sysout
;;
f | full | 4)
start=4
start_s=full
start_sysout=full.sysout
;;
*)
echo "Error: unknown parameter to --start (-s) flag: $2"
echo "Exiting"
exit 1
;;
esac
shift
;;
*)
echo "Error: unknown flag: $1"
echo "Exiting"
exit 1
;;
esac
shift
done

# Do loadup components
/bin/sh "${LOADUP_SCRIPTDIR}/loadup-init.sh" \
&& /bin/sh "${LOADUP_SCRIPTDIR}/loadup-mid-from-init.sh" \
&& /bin/sh "${LOADUP_SCRIPTDIR}/loadup-lisp-from-mid.sh" \
&& /bin/sh "${LOADUP_SCRIPTDIR}/loadup-full-from-lisp.sh" \
&& { \
if [ -n "${apps}" ]; \
then \
/bin/sh "${LOADUP_SCRIPTDIR}/loadup-apps-from-full.sh"; \
fi; \
} \
&& /bin/sh "${LOADUP_SCRIPTDIR}/loadup-aux.sh" \
&& /bin/sh "${LOADUP_SCRIPTDIR}/copy-all.sh" "${apps}"

if [ $? -eq 0 ]
then
echo "+++++ loadup-all.sh: SUCCESS +++++"
else
echo "----- loadup-all.sh: FAILURE -----"
# check arguments
if [ $end -le $start ]
then
echo "Error: The final stage ($end_s) comes before or is the same as the start stage ($start_s)"
echo "Exiting"
exit 1
fi

# find and place starting sysout
if [ $start -gt 0 ]
then
if [ ! -f "${LOADUP_WORKDIR}"/"${start_sysout}" ]
then
if [ -f "${LOADUP_OUTDIR}"/"${start_sysout}" ]
then
cp -p "${LOADUP_OUTDIR}"/"${start_sysout}" "${LOADUP_WORKDIR}"/"${start_sysout}"
else
echo "Error: Cannot find starting sysout ($start_sysout) in either ${LOADUP_WORKDIR} or ${LOADUP_WORKDIR}"
echo "Exiting"
exit 1
fi
fi
fi

# Do individual loadups as requested
if [ $start -lt 1 ] && [ $end -ge 1 ]
then
/bin/sh "${LOADUP_SCRIPTDIR}/loadup-init.sh"
exit_if_failure $?
fi

if [ $start -lt 2 ] && [ $end -ge 2 ]
then
/bin/sh "${LOADUP_SCRIPTDIR}/loadup-mid-from-init.sh"
exit_if_failure $?
fi

if [ $start -lt 3 ] && [ $end -ge 3 ]
then
/bin/sh "${LOADUP_SCRIPTDIR}/loadup-lisp-from-mid.sh"
exit_if_failure $?
fi

aux_not_run=true
if [ $start -lt 4 ] && [ $end -ge 4 ]
then
/bin/sh "${LOADUP_SCRIPTDIR}/loadup-full-from-lisp.sh"
exit_if_failure $?
if [ -z "$noaux" ]
then
/bin/sh "${LOADUP_SCRIPTDIR}/loadup-aux.sh"
exit_if_failure $?
aux_not_run=""
fi
fi

if [ $end -eq 5 ]
then
/bin/sh "${LOADUP_SCRIPTDIR}/loadup-apps-from-full.sh"
exit_if_failure $?
fi

if [ $end -eq 6 ]
then
/bin/sh "${LOADUP_SCRIPTDIR}/loadup-lfg-from-full.sh"
exit_if_failure $?
fi

# Nothing to copy to loadups until we've produced lisp.sysout
if [ $end -ge 3 ]
then
/bin/sh "${LOADUP_SCRIPTDIR}/copy-all.sh" $start $end "$aux_not_run"
exit_if_failure $?
fi

echo "+++++ loadup-all.sh: SUCCESS +++++"
exit 0

}

exit_if_failure() {
if [ "$1" -ne 0 ]
then
echo "----- loadup-all.sh: FAILURE -----"
exit 1
fi
}

# shellcheck disable=SC2164,SC2034
Expand Down
37 changes: 18 additions & 19 deletions scripts/loadup-apps-from-full.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,38 +32,37 @@ main() {
exit 1
fi

git_commit_ID "${NOTECARDSDIR}"
NOTECARDS_COMMIT_ID="${COMMIT_ID}"
export NOTECARDS_COMMIT_ID
git_commit_ID "${NOTECARDSDIR}"
NOTECARDS_COMMIT_ID="${COMMIT_ID}"
export NOTECARDS_COMMIT_ID

cat >"${cmfile}" <<-"EOF"
"

(PROGN
(IL:MEDLEY-INIT-VARS 'IL:GREET)
(IL:DRIBBLE (IL:CONCAT (QUOTE {DSK})(IL:UNIX-GETENV (QUOTE LOADUP_WORKDIR))(IL:L-CASE (QUOTE /apps.dribble))))
(IL:LOAD (IL:CONCAT (QUOTE {DSK}) (IL:UNIX-GETENV(QUOTE ROOMSDIR))(QUOTE /ROOMS)) 'IL:SYSLOAD)
(IL:LOAD (IL:CONCAT (QUOTE {DSK}) (IL:UNIX-GETENV(QUOTE NOTECARDSDIR))(QUOTE |/system/NOTECARDS.LCOM|)) 'IL:SYSLOAD)
(IL:LOAD (IL:CONCAT (QUOTE {DSK}) (IL:UNIX-GETENV(QUOTE CLOSDIR))(QUOTE /DEFSYS.DFASL)) 'IL:SYSLOAD)
(IL:LOAD (IL:CONCAT (QUOTE {DSK}) (IL:UNIX-GETENV(QUOTE MEDLEYDIR))(QUOTE |lispusers/BUTTONS.LCOM|)) 'IL:SYSLOAD)
(IL:LOAD (IL:CONCAT (QUOTE {DSK}) (IL:UNIX-GETENV (QUOTE LOADUP_SOURCEDIR)) (QUOTE /LOADUP-APPS.LCOM)) 'IL:SYSLOAD)
(IL:PRINT (IL:UNIX-GETENV (QUOTE NOTECARDS_COMMIT_ID)))
(IL:PUTASSOC (QUOTE IL:MEDLEY) (LIST (IL:UNIX-GETENV (QUOTE LOADUP_COMMIT_ID))) IL:SYSOUTCOMMITS)
(IL:PUTASSOC (QUOTE IL:NOTECARDS) (LIST (IL:UNIX-GETENV (QUOTE NOTECARDS_COMMIT_ID))) IL:SYSOUTCOMMITS)
(IL:PRINT IL:SYSOUTCOMMITS)
(IL:HARDRESET)
(IL:DRIBBLE (IL:CONCAT '{DSK} (IL:UNIX-GETENV 'LOADUP_WORKDIR) (IL:L-CASE '/apps.dribble)))
(IL:LOAD (IL:CONCAT '{DSK} (IL:UNIX-GETENV 'ROOMSDIR) '/ROOMS) 'IL:SYSLOAD)
(IL:LOAD (IL:CONCAT '{DSK} (IL:UNIX-GETENV 'NOTECARDSDIR) '/system/NOTECARDS.LCOM) 'IL:SYSLOAD)
(IL:LOAD (IL:CONCAT '{DSK} (IL:UNIX-GETENV 'CLOSDIR) '/DEFSYS.DFASL) 'IL:SYSLOAD)
(IL:LOAD (IL:CONCAT '{DSK} (IL:UNIX-GETENV 'MEDLEYDIR) 'lispusers/BUTTONS.LCOM) 'IL:SYSLOAD)
(IL:LOAD (IL:CONCAT '{DSK} (IL:UNIX-GETENV 'LOADUP_SOURCEDIR) '/LOADUP-APPS.LCOM) 'IL:SYSLOAD)
)
SHH
(PROGN
(IL:ENDLOADUP)
(CLOS::LOAD-CLOS)
(IL:|Apps.LOADUP|)
(CLOS::LOAD-CLOS)
)
(PROGN
(IL:PUTASSOC 'IL:NOTECARDS
(LIST (IL:UNIX-GETENV 'LOADUP_COMMIT_ID))
(CADR (ASSOC 'IL:MEDLEY IL:SYSOUTCOMMITS)))
(IL:PUTASSOC 'IL:NOTECARDS (LIST (IL:UNIX-GETENV 'NOTECARDS_COMMIT_ID)) IL:SYSOUTCOMMITS)
(IL:DRIBBLE)
(IL:ENDLOADUP)
(IL:MAKESYS
(IL:CONCAT (QUOTE {DSK})(IL:UNIX-GETENV(QUOTE LOADUP_WORKDIR))(IL:L-CASE (QUOTE /apps.sysout)))
(IL:CONCAT '{DSK} (IL:UNIX-GETENV 'LOADUP_WORKDIR) (IL:L-CASE '/apps.sysout))
:APPS)
)
(IL:LOGOUT T)

"
EOF
Expand Down
19 changes: 9 additions & 10 deletions scripts/loadup-aux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,20 @@ main() {
cat >"${cmfile}" <<-"EOF"
"
(PROG
((WORKDIR (IL:CONCAT (QUOTE {DSK}) (IL:UNIX-GETENV (QUOTE LOADUP_WORKDIR)) (QUOTE /))))
((WORKDIR (IL:CONCAT '{DSK} (IL:UNIX-GETENV 'LOADUP_WORKDIR) '/)))
(IL:MEDLEY-INIT-VARS)
(IL:LOAD(QUOTE MEDLEY-UTILS))
(DRIBBLE (QUOTE {DSK}<TMP>FOOBAR))
(IL:MAKE-EXPORTS-ALL (IL:CONCAT WORKDIR (IL:L-CASE (QUOTE exports.all))))
(IL:LOAD 'MEDLEY-UTILS)
(DRIBBLE (IL:CONCAT WORKDIR (IL:L-CASE 'exports-all.dribble)))
(IL:MAKE-EXPORTS-ALL (IL:CONCAT WORKDIR (IL:L-CASE 'exports.all)))
(DRIBBLE)
(IL:PUTASSOC (QUOTE IL:MEDLEY) (LIST (IL:UNIX-GETENV (QUOTE LOADUP_COMMIT_ID))) IL:SYSOUTCOMMITS)
(IL:MAKE-WHEREIS-HASH
(IL:CONCAT WORKDIR (IL:L-CASE (QUOTE whereis.dribble)))
(IL:CONCAT WORKDIR (IL:L-CASE (QUOTE whereis.hash-tmp)))
(IL:CONCAT WORKDIR (IL:L-CASE (QUOTE whereis.hash)))
NIL NIL
(IL:CONCAT WORKDIR (IL:L-CASE 'whereis.dribble))
(IL:CONCAT WORKDIR (IL:L-CASE 'whereis.hash-tmp))
(IL:CONCAT WORKDIR (IL:L-CASE 'whereis.hash))
)
(IL:LOGOUT T)
)
(IL:LOGOUT T)

"
EOF

Expand Down
Loading