From 35a6e8b934df719e58d094c482e3d7b5f0da8d30 Mon Sep 17 00:00:00 2001 From: Thomas Walker Lynch Date: Mon, 9 Dec 2024 10:52:48 +0000 Subject: [PATCH] pencil updates for developer module --- developer/shell/Mosaic | 2 ++ .../tool\360\237\226\211/bash_wrapper_list" | 2 +- .../clean_build_directories" | 13 ++++++---- .../tool\360\237\226\211/clean_javac_output" | 2 +- .../tool\360\237\226\211/clean_make_output" | 6 ++--- .../tool\360\237\226\211/clean_release" | 6 ++--- .../tool\360\237\226\211/distribute_source" | 4 +-- "developer/tool\360\237\226\211/make" | 12 ++++----- "developer/tool\360\237\226\211/release" | 8 +++--- release/Mosaic.jar | Bin 9222 -> 13996 bytes tester/jvm/Test_Mosaic.jar | Bin 0 -> 7738 bytes .../document\360\237\226\211/install.txt" | 23 +++++++++++++----- 12 files changed, 47 insertions(+), 31 deletions(-) create mode 100755 developer/shell/Mosaic rename "developer/tool\360\237\226\211/shell_wrapper_list" => "developer/tool\360\237\226\211/bash_wrapper_list" (82%) create mode 100644 tester/jvm/Test_Mosaic.jar diff --git a/developer/shell/Mosaic b/developer/shell/Mosaic new file mode 100755 index 0000000..ba5b241 --- /dev/null +++ b/developer/shell/Mosaic @@ -0,0 +1,2 @@ +#!/bin/bash +java com.ReasoningTechnology."Mosaic".Mosaic diff --git "a/developer/tool\360\237\226\211/shell_wrapper_list" "b/developer/tool\360\237\226\211/bash_wrapper_list" similarity index 82% rename from "developer/tool\360\237\226\211/shell_wrapper_list" rename to "developer/tool\360\237\226\211/bash_wrapper_list" index 22e5ed2..7f07215 100755 --- "a/developer/tool\360\237\226\211/shell_wrapper_list" +++ "b/developer/tool\360\237\226\211/bash_wrapper_list" @@ -11,5 +11,5 @@ script_afp=$(realpath "${BASH_SOURCE[0]}") cd "$REPO_HOME"/developer -# list of classes that have main calls and get shell wrappers +# list of classes that have main calls and get bash wrappers echo Mosaic diff --git "a/developer/tool\360\237\226\211/clean_build_directories" "b/developer/tool\360\237\226\211/clean_build_directories" index b03a6a9..a32578f 100755 --- "a/developer/tool\360\237\226\211/clean_build_directories" +++ "b/developer/tool\360\237\226\211/clean_build_directories" @@ -2,9 +2,9 @@ script_afp=$(realpath "${BASH_SOURCE[0]}") # Removes all files found in the build directories. It asks no questions as to -# how or why the files got there. Be especially careful with the 'shell' -# directory if you have authored scripts for release, add a `shell-leaf` -# directory instead of putting them in `shell`. +# how or why the files got there. Be especially careful with the 'bash' +# directory if you have authored scripts for release, add a `bash🖉` +# directory instead of putting them in `bash`. # input guards env_must_be="developer/tool🖉/env" @@ -16,9 +16,12 @@ script_afp=$(realpath "${BASH_SOURCE[0]}") # remove files set -x cd "$REPO_HOME"/developer - rm_na -r scratchpad/* + + # rm_na currently does not handle links correctly + rm -r scratchpad/* + rm_na jvm/* - rm_na shell/* + rm_na bash/* set +x echo "$(script_fn) done." diff --git "a/developer/tool\360\237\226\211/clean_javac_output" "b/developer/tool\360\237\226\211/clean_javac_output" index 5ebeb51..82835c7 100755 --- "a/developer/tool\360\237\226\211/clean_javac_output" +++ "b/developer/tool\360\237\226\211/clean_javac_output" @@ -3,7 +3,7 @@ script_afp=$(realpath "${BASH_SOURCE[0]}") # remove all files created by make's call to `javac` # input guards - env_must_be="developer/tool/env" + env_must_be="developer/tool🖉/env" if [ "$ENV" != "$env_must_be" ]; then echo "$(script_fp):: error: must be run in the $env_must_be environment" exit 1 diff --git "a/developer/tool\360\237\226\211/clean_make_output" "b/developer/tool\360\237\226\211/clean_make_output" index a7c6ebf..094552b 100755 --- "a/developer/tool\360\237\226\211/clean_make_output" +++ "b/developer/tool\360\237\226\211/clean_make_output" @@ -4,7 +4,7 @@ script_afp=$(realpath "${BASH_SOURCE[0]}") # input guards - env_must_be="developer/tool/env" + env_must_be="developer/tool🖉/env" if [ "$ENV" != "$env_must_be" ]; then echo "$(script_fp):: error: must be run in the $env_must_be environment" exit 1 @@ -12,7 +12,7 @@ script_afp=$(realpath "${BASH_SOURCE[0]}") # wrappers to clean (this list space separated list will grow) - wrapper=$(shell_wrapper_list) + wrapper=$(bash_wrapper_list) # remove files @@ -20,7 +20,7 @@ script_afp=$(realpath "${BASH_SOURCE[0]}") cd "$REPO_HOME"/developer rm -r scratchpad/com/ReasoningTechnology/"$PROJECT" rm jvm/"$PROJECT".jar - rm shell/{$wrapper} + rm bash/{$wrapper} set +x echo "$(script_fn) done." diff --git "a/developer/tool\360\237\226\211/clean_release" "b/developer/tool\360\237\226\211/clean_release" index a33f19a..8744730 100755 --- "a/developer/tool\360\237\226\211/clean_release" +++ "b/developer/tool\360\237\226\211/clean_release" @@ -4,7 +4,7 @@ script_afp=$(realpath "${BASH_SOURCE[0]}") # input guards - env_must_be="developer/tool/env" + env_must_be="developer/tool🖉/env" if [ "$ENV" != "$env_must_be" ]; then echo "$(script_fp):: error: must be run in the $env_must_be environment" exit 1 @@ -13,14 +13,14 @@ script_afp=$(realpath "${BASH_SOURCE[0]}") # things to clean release_dir="$REPO_HOME"/release - wrapper=$(shell_wrapper_list) + wrapper=$(bash_wrapper_list) # remove files set -x cd "$REPO_HOME"/developer rm -r scratchpad/com/ReasoningTechnology/"$PROJECT" rm jvm/"$PROJECT".jar - rm shell/{$wrapper} + rm bash/{$wrapper} rm -f "$release_dir"/"$PROJECT".jar rm -f "$release_dir"/{$wrapper} set +x diff --git "a/developer/tool\360\237\226\211/distribute_source" "b/developer/tool\360\237\226\211/distribute_source" index faf844d..ca5c9eb 100755 --- "a/developer/tool\360\237\226\211/distribute_source" +++ "b/developer/tool\360\237\226\211/distribute_source" @@ -5,7 +5,7 @@ script_afp=$(realpath "${BASH_SOURCE[0]}") # Input guards - env_must_be="developer/tool/env" + env_must_be="developer/tool🖉/env" if [ "$ENV" != "$env_must_be" ]; then echo "$(script_fp):: error: must be run in the $env_must_be environment" exit 1 @@ -20,7 +20,7 @@ script_afp=$(realpath "${BASH_SOURCE[0]}") echo "Package: $package_tree" echo -n "Linking:" - for source_file in javac/*.java; do + for source_file in javac🖉/*.java; do echo -n " $(basename "$source_file")" link_target="$package_tree/$(basename "$source_file")" if [ ! -L "$link_target" ]; then diff --git "a/developer/tool\360\237\226\211/make" "b/developer/tool\360\237\226\211/make" index 9bc03e2..64602b6 100755 --- "a/developer/tool\360\237\226\211/make" +++ "b/developer/tool\360\237\226\211/make" @@ -13,7 +13,7 @@ script_afp=$(realpath "${BASH_SOURCE[0]}") echo "Compiling files..." set -x - javac -g -d scratchpad javac/*.java + javac -g -d scratchpad javac🖉/*.java set +x if [ $? -ne 0 ]; then echo "Compilation failed." @@ -33,16 +33,16 @@ echo "Creating JAR file..." exit 1 fi -echo "Creating shell wrappers..." - mkdir -p shell +echo "Creating bash wrappers..." + mkdir -p bash # wrapper is a space separated list - wrapper=$(shell_wrapper_list) + wrapper=$(bash_wrapper_list) for file in $wrapper;do - cat > shell/$file << EOL + cat > bash/$file << EOL #!/bin/bash java com.ReasoningTechnology."$PROJECT".$file EOL - chmod +x shell/$file + chmod +x bash/$file done echo "$(script_fp) done." diff --git "a/developer/tool\360\237\226\211/release" "b/developer/tool\360\237\226\211/release" index 43d2d9f..81966ad 100755 --- "a/developer/tool\360\237\226\211/release" +++ "b/developer/tool\360\237\226\211/release" @@ -17,9 +17,9 @@ script_afp=$(realpath "${BASH_SOURCE[0]}") # script local environment release_dir="$REPO_HOME/release" - shell_dir="$REPO_HOME/developer/shell" + bash_dir="$REPO_HOME/developer/bash" project_jar_fp="$REPO_HOME/developer/jvm/"$PROJECT".jar" - wrapper=$(shell_wrapper_list) + wrapper=$(bash_wrapper_list) if [ ! -d "$release_dir" ]; then @@ -54,9 +54,9 @@ script_afp=$(realpath "${BASH_SOURCE[0]}") # Install the JAR file install_file "$project_jar_fp" "$release_dir" "ug+r" - # Install shell wrappers + # Install bash wrappers for wrapper in $wrapper; do - install_file "$shell_dir/$wrapper" "$release_dir" "ug+r+x" + install_file "$bash_dir/$wrapper" "$release_dir" "ug+r+x" done echo "$(script_fp) done." diff --git a/release/Mosaic.jar b/release/Mosaic.jar index a0efc574ff7f486f700bdb3ebed573ec2349c9c9..098f5815c9fd7dc3e13204543b2d5cc07ec412f2 100644 GIT binary patch literal 13996 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 literal 9222 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 mhd%@32~K}Y+T*7FI@51(RhC0UdQw1rd