From 0e0a4d255c901ca874185ff54fb46c0b7d0dfa23 Mon Sep 17 00:00:00 2001 From: Zen Voich Date: Mon, 15 Apr 2024 13:04:56 +0400 Subject: [PATCH 1/2] [cli] optimize `moc-wrapper` --- cli/bin/moc-wrapper.sh | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/cli/bin/moc-wrapper.sh b/cli/bin/moc-wrapper.sh index e1dd02de..28776836 100755 --- a/cli/bin/moc-wrapper.sh +++ b/cli/bin/moc-wrapper.sh @@ -1,3 +1,26 @@ #!/bin/bash -mocPath="$(mops toolchain bin moc --fallback)" -$mocPath "$@" \ No newline at end of file + +# TODO: find nearest mops.toml if we are inside subfolders +rootDir="$(pwd)" +mopsToml="$rootDir/mops.toml" + +if [ ! -f $mopsToml ]; then + echo "$mopsToml not found" + exit 1; +fi; + +mopsTomlHash=$(openssl sha256 $mopsToml | awk -F'= ' '{print $2}') +cached="$rootDir/.mops/moc-$mopsTomlHash" + +if [ -f $cached ]; then + mocPath=$(cat $cached) + if [[ "$mocPath" != *"/moc" ]] ; then + mocPath="$(mops toolchain bin moc --fallback)" + echo -n $mocPath > "$cached" + fi; +else + mocPath="$(mops toolchain bin moc --fallback)" + echo -n $mocPath > "$cached" +fi; + +$mocPath "$@" From 7b8aa9eb8421c30ec8420b1c748a90156b8ff7c4 Mon Sep 17 00:00:00 2001 From: Zen Voich Date: Mon, 22 Apr 2024 13:14:07 +0400 Subject: [PATCH 2/2] [cli] optimize `moc-wrapper` --- cli/bin/moc-wrapper.sh | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/cli/bin/moc-wrapper.sh b/cli/bin/moc-wrapper.sh index 28776836..09e20211 100755 --- a/cli/bin/moc-wrapper.sh +++ b/cli/bin/moc-wrapper.sh @@ -1,15 +1,29 @@ #!/bin/bash -# TODO: find nearest mops.toml if we are inside subfolders -rootDir="$(pwd)" +# set -e + +findRootDir() { + dir="$(pwd)" + while [[ "$dir" != "" && ! -e "$dir/mops.toml" ]]; do + dir=${dir%/*} + done + echo "$dir" +} + +rootDir=$(findRootDir) mopsToml="$rootDir/mops.toml" -if [ ! -f $mopsToml ]; then - echo "$mopsToml not found" +if [[ $rootDir == "" ]] || [[ ! -f $mopsToml ]]; then + echo "mops.toml not found in $rootDir or its parent directories" exit 1; fi; -mopsTomlHash=$(openssl sha256 $mopsToml | awk -F'= ' '{print $2}') +if command -v openssl &> /dev/null; then + mopsTomlHash=$(openssl sha256 $mopsToml | awk -F'= ' '{print $2}') +else + mopsTomlHash=$(shasum $mopsToml -a 256 | awk -F' ' '{print $1}') +fi; + cached="$rootDir/.mops/moc-$mopsTomlHash" if [ -f $cached ]; then