aboutsummaryrefslogtreecommitdiff
path: root/project
diff options
context:
space:
mode:
Diffstat (limited to 'project')
-rwxr-xr-xproject62
1 files changed, 57 insertions, 5 deletions
diff --git a/project b/project
index b6f17bb..f696f26 100755
--- a/project
+++ b/project
@@ -71,6 +71,7 @@ print_help() {
# Print the output.
cat <<EOF
Usage: $scriptname configure [OPTIONS]
+ $scriptname shell [OPTIONS]
$scriptname make [OPTIONS]
Top-level script to manage the reproducible project. The high-level
@@ -151,7 +152,7 @@ func_operation_set() {
if [ x$operation = x ]; then
operation=$1
else
- echo "Only one operation ('configure' or 'make') may be given."
+ echo "Only one operation ('configure', 'make' or 'shell') may be given."
exit 1
fi
}
@@ -247,11 +248,62 @@ being built.
EOF
- # Run the infinite loop.
+ # Run the infinite loop. To be able to find the last built programs, we
+ # need to put all the Python programs and high-level program into one
+ # directory.
+ checkdir=.local/version-info/.for-check-config
while true; do
+
+ # Make sure the '.build' directory has already been created.
echo;
- echo "$(date) [[press CTRL-C to stop]]";
- ls $coloropt .build/software/build-tmp || junk=1;
+ echo "========================"
+ if [ -d .build ]; then
+ echo "$(date) [[press CTRL-C to stop]]";
+ echo "--- Currently being built:"
+ if [ -d .build/software/build-tmp ]; then
+ ls $coloropt .build/software/build-tmp || junk=1;
+ fi
+
+ # Make the temporary directory, delete its contents, then put new
+ # links of all built software.
+ if ! [ -d $checkdir ]; then mkdir $checkdir; fi
+ rm -f $checkdir/*
+
+ # Check if any programs exist in the given directory yet.
+ printresults=0
+ check=$(ls .local/version-info/python/)
+ if ! [ "x$check" = x ]; then
+ printresults=1
+ ln -s .local/version-info/python/* $checkdir/
+ fi
+ check=$(ls .local/version-info/proglib/)
+ if ! [ "x$check" = x ]; then
+ printresults=1
+ ln -s $(pwd)/.local/version-info/proglib/* $checkdir/
+ fi
+
+ # If something was actually found, then print them.
+ if [ $printresults = 1 ]; then
+ echo "--- Last 5 packages that were built:"
+
+ # Then sort all the links based on the most recent dates of the
+ # files they link to (with '-L').
+ ls -Llt $checkdir \
+ | awk '/^-/ && c++<5 {printf "[at %s] %s\n", $(NF-1), $NF}'
+ fi
+ else
+ cat <<EOF
+The connection to the build directory (.build) is not yet created.
+
+If you have just ran './project configure', it should be created and will
+be used in a few seconds to report the build status of various software.
+If not, please run './project configure' (in another terminal) and you will
+see the results shortly afterwards.
+EOF
+ fi
+ echo "========================"
+
+ # Wait for the next round of checks.
sleep 1;
done
exit 0
@@ -480,7 +532,7 @@ case $operation in
No operation defined!
Please run with '--help' for more information.
-(TIP: available operations are: 'configure' or 'make').
+(TIP: available operations are: 'configure', 'make', or 'shell').
EOF
exit 1