From 8a4b5491c3aae0e3981d91cc1526badedbe5c7b8 Mon Sep 17 00:00:00 2001 From: Paul Kuruvilla <rohitpaulk@gmail.com> Date: Mon, 30 Sep 2024 19:20:54 +0100 Subject: [PATCH 1/4] Add build directory existence check in compile scripts for Swift projects. --- compiled_starters/swift/.codecrafters/compile.sh | 14 ++++++++++++++ compiled_starters/swift/your_program.sh | 10 ++++++++++ .../swift/01-jm1/code/.codecrafters/compile.sh | 14 ++++++++++++++ solutions/swift/01-jm1/code/your_program.sh | 10 ++++++++++ .../swift/code/.codecrafters/compile.sh | 14 ++++++++++++++ 5 files changed, 62 insertions(+) diff --git a/compiled_starters/swift/.codecrafters/compile.sh b/compiled_starters/swift/.codecrafters/compile.sh index 3eabd63..5b1db13 100755 --- a/compiled_starters/swift/.codecrafters/compile.sh +++ b/compiled_starters/swift/.codecrafters/compile.sh @@ -8,4 +8,18 @@ set -e # Exit on failure +# Check if the build directory exists +if [ -d "/tmp/codecrafters-build-redis-swift" ]; then + echo "Build directory already exists. Proceeding with the build..." + + # This does NOT trigger a rebuild + mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old + mv /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + + # This DOES trigger a rebuild! inode changes? + # cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift +else + echo "Build directory does not exist." +fi + swift build -c release --build-path /tmp/codecrafters-build-redis-swift diff --git a/compiled_starters/swift/your_program.sh b/compiled_starters/swift/your_program.sh index 1406cde..5b5eb13 100755 --- a/compiled_starters/swift/your_program.sh +++ b/compiled_starters/swift/your_program.sh @@ -14,6 +14,16 @@ set -e # Exit early if any commands fail # - Edit .codecrafters/compile.sh to change how your program compiles remotely ( cd "$(dirname "$0")" # Ensure compile steps are run within the repository directory + if [ -d "/tmp/codecrafters-build-redis-swift" ]; then + echo "Build directory already exists. Proceeding with the build..." + # This does NOT trigger a rebuild + mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old + mv /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + # This DOES trigger a rebuild! inode changes? + # cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + else + echo "Build directory does not exist." + fi swift build -c release --build-path /tmp/codecrafters-build-redis-swift ) diff --git a/solutions/swift/01-jm1/code/.codecrafters/compile.sh b/solutions/swift/01-jm1/code/.codecrafters/compile.sh index 3eabd63..5b1db13 100755 --- a/solutions/swift/01-jm1/code/.codecrafters/compile.sh +++ b/solutions/swift/01-jm1/code/.codecrafters/compile.sh @@ -8,4 +8,18 @@ set -e # Exit on failure +# Check if the build directory exists +if [ -d "/tmp/codecrafters-build-redis-swift" ]; then + echo "Build directory already exists. Proceeding with the build..." + + # This does NOT trigger a rebuild + mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old + mv /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + + # This DOES trigger a rebuild! inode changes? + # cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift +else + echo "Build directory does not exist." +fi + swift build -c release --build-path /tmp/codecrafters-build-redis-swift diff --git a/solutions/swift/01-jm1/code/your_program.sh b/solutions/swift/01-jm1/code/your_program.sh index 1406cde..5b5eb13 100755 --- a/solutions/swift/01-jm1/code/your_program.sh +++ b/solutions/swift/01-jm1/code/your_program.sh @@ -14,6 +14,16 @@ set -e # Exit early if any commands fail # - Edit .codecrafters/compile.sh to change how your program compiles remotely ( cd "$(dirname "$0")" # Ensure compile steps are run within the repository directory + if [ -d "/tmp/codecrafters-build-redis-swift" ]; then + echo "Build directory already exists. Proceeding with the build..." + # This does NOT trigger a rebuild + mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old + mv /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + # This DOES trigger a rebuild! inode changes? + # cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + else + echo "Build directory does not exist." + fi swift build -c release --build-path /tmp/codecrafters-build-redis-swift ) diff --git a/starter_templates/swift/code/.codecrafters/compile.sh b/starter_templates/swift/code/.codecrafters/compile.sh index 3eabd63..5b1db13 100755 --- a/starter_templates/swift/code/.codecrafters/compile.sh +++ b/starter_templates/swift/code/.codecrafters/compile.sh @@ -8,4 +8,18 @@ set -e # Exit on failure +# Check if the build directory exists +if [ -d "/tmp/codecrafters-build-redis-swift" ]; then + echo "Build directory already exists. Proceeding with the build..." + + # This does NOT trigger a rebuild + mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old + mv /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + + # This DOES trigger a rebuild! inode changes? + # cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift +else + echo "Build directory does not exist." +fi + swift build -c release --build-path /tmp/codecrafters-build-redis-swift From 8e0163d421e1307f17c5f03057ef948842ba5d7b Mon Sep 17 00:00:00 2001 From: Paul Kuruvilla <rohitpaulk@gmail.com> Date: Mon, 30 Sep 2024 19:25:22 +0100 Subject: [PATCH 2/4] trigger rebuild --- compiled_starters/swift/.codecrafters/compile.sh | 3 ++- compiled_starters/swift/your_program.sh | 3 ++- solutions/swift/01-jm1/code/.codecrafters/compile.sh | 3 ++- solutions/swift/01-jm1/code/your_program.sh | 3 ++- starter_templates/swift/code/.codecrafters/compile.sh | 3 ++- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/compiled_starters/swift/.codecrafters/compile.sh b/compiled_starters/swift/.codecrafters/compile.sh index 5b1db13..82372f7 100755 --- a/compiled_starters/swift/.codecrafters/compile.sh +++ b/compiled_starters/swift/.codecrafters/compile.sh @@ -17,7 +17,8 @@ if [ -d "/tmp/codecrafters-build-redis-swift" ]; then mv /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift # This DOES trigger a rebuild! inode changes? - # cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old + cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift else echo "Build directory does not exist." fi diff --git a/compiled_starters/swift/your_program.sh b/compiled_starters/swift/your_program.sh index 5b5eb13..ea5ec43 100755 --- a/compiled_starters/swift/your_program.sh +++ b/compiled_starters/swift/your_program.sh @@ -20,7 +20,8 @@ set -e # Exit early if any commands fail mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old mv /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift # This DOES trigger a rebuild! inode changes? - # cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old + cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift else echo "Build directory does not exist." fi diff --git a/solutions/swift/01-jm1/code/.codecrafters/compile.sh b/solutions/swift/01-jm1/code/.codecrafters/compile.sh index 5b1db13..82372f7 100755 --- a/solutions/swift/01-jm1/code/.codecrafters/compile.sh +++ b/solutions/swift/01-jm1/code/.codecrafters/compile.sh @@ -17,7 +17,8 @@ if [ -d "/tmp/codecrafters-build-redis-swift" ]; then mv /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift # This DOES trigger a rebuild! inode changes? - # cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old + cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift else echo "Build directory does not exist." fi diff --git a/solutions/swift/01-jm1/code/your_program.sh b/solutions/swift/01-jm1/code/your_program.sh index 5b5eb13..ea5ec43 100755 --- a/solutions/swift/01-jm1/code/your_program.sh +++ b/solutions/swift/01-jm1/code/your_program.sh @@ -20,7 +20,8 @@ set -e # Exit early if any commands fail mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old mv /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift # This DOES trigger a rebuild! inode changes? - # cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old + cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift else echo "Build directory does not exist." fi diff --git a/starter_templates/swift/code/.codecrafters/compile.sh b/starter_templates/swift/code/.codecrafters/compile.sh index 5b1db13..82372f7 100755 --- a/starter_templates/swift/code/.codecrafters/compile.sh +++ b/starter_templates/swift/code/.codecrafters/compile.sh @@ -17,7 +17,8 @@ if [ -d "/tmp/codecrafters-build-redis-swift" ]; then mv /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift # This DOES trigger a rebuild! inode changes? - # cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old + cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift else echo "Build directory does not exist." fi From ada7d2a001745ae36f0158a5b51d03fa55f7ef6c Mon Sep 17 00:00:00 2001 From: Paul Kuruvilla <rohitpaulk@gmail.com> Date: Mon, 28 Oct 2024 16:46:54 +0000 Subject: [PATCH 3/4] try copying with file modification times --- compiled_starters/swift/.codecrafters/compile.sh | 9 ++++++--- compiled_starters/swift/your_program.sh | 8 +++++--- solutions/swift/01-jm1/code/.codecrafters/compile.sh | 9 ++++++--- solutions/swift/01-jm1/code/your_program.sh | 8 +++++--- starter_templates/swift/code/.codecrafters/compile.sh | 9 ++++++--- 5 files changed, 28 insertions(+), 15 deletions(-) diff --git a/compiled_starters/swift/.codecrafters/compile.sh b/compiled_starters/swift/.codecrafters/compile.sh index 82372f7..fea98ae 100755 --- a/compiled_starters/swift/.codecrafters/compile.sh +++ b/compiled_starters/swift/.codecrafters/compile.sh @@ -13,12 +13,15 @@ if [ -d "/tmp/codecrafters-build-redis-swift" ]; then echo "Build directory already exists. Proceeding with the build..." # This does NOT trigger a rebuild - mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old - mv /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + # mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old + # mv /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift # This DOES trigger a rebuild! inode changes? + # mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old + # cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old - cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + cp -p -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift else echo "Build directory does not exist." fi diff --git a/compiled_starters/swift/your_program.sh b/compiled_starters/swift/your_program.sh index ea5ec43..77d88c8 100755 --- a/compiled_starters/swift/your_program.sh +++ b/compiled_starters/swift/your_program.sh @@ -17,11 +17,13 @@ set -e # Exit early if any commands fail if [ -d "/tmp/codecrafters-build-redis-swift" ]; then echo "Build directory already exists. Proceeding with the build..." # This does NOT trigger a rebuild - mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old - mv /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + # mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old + # mv /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift # This DOES trigger a rebuild! inode changes? + # mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old + # cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old - cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + cp -p -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift else echo "Build directory does not exist." fi diff --git a/solutions/swift/01-jm1/code/.codecrafters/compile.sh b/solutions/swift/01-jm1/code/.codecrafters/compile.sh index 82372f7..fea98ae 100755 --- a/solutions/swift/01-jm1/code/.codecrafters/compile.sh +++ b/solutions/swift/01-jm1/code/.codecrafters/compile.sh @@ -13,12 +13,15 @@ if [ -d "/tmp/codecrafters-build-redis-swift" ]; then echo "Build directory already exists. Proceeding with the build..." # This does NOT trigger a rebuild - mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old - mv /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + # mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old + # mv /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift # This DOES trigger a rebuild! inode changes? + # mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old + # cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old - cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + cp -p -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift else echo "Build directory does not exist." fi diff --git a/solutions/swift/01-jm1/code/your_program.sh b/solutions/swift/01-jm1/code/your_program.sh index ea5ec43..77d88c8 100755 --- a/solutions/swift/01-jm1/code/your_program.sh +++ b/solutions/swift/01-jm1/code/your_program.sh @@ -17,11 +17,13 @@ set -e # Exit early if any commands fail if [ -d "/tmp/codecrafters-build-redis-swift" ]; then echo "Build directory already exists. Proceeding with the build..." # This does NOT trigger a rebuild - mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old - mv /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + # mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old + # mv /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift # This DOES trigger a rebuild! inode changes? + # mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old + # cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old - cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + cp -p -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift else echo "Build directory does not exist." fi diff --git a/starter_templates/swift/code/.codecrafters/compile.sh b/starter_templates/swift/code/.codecrafters/compile.sh index 82372f7..fea98ae 100755 --- a/starter_templates/swift/code/.codecrafters/compile.sh +++ b/starter_templates/swift/code/.codecrafters/compile.sh @@ -13,12 +13,15 @@ if [ -d "/tmp/codecrafters-build-redis-swift" ]; then echo "Build directory already exists. Proceeding with the build..." # This does NOT trigger a rebuild - mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old - mv /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + # mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old + # mv /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift # This DOES trigger a rebuild! inode changes? + # mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old + # cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old - cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + cp -p -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift else echo "Build directory does not exist." fi From 153cdd696b1e6bb5bbb1b79ad6bffc26e5867384 Mon Sep 17 00:00:00 2001 From: Paul Kuruvilla <rohitpaulk@gmail.com> Date: Mon, 28 Oct 2024 16:58:19 +0000 Subject: [PATCH 4/4] remove -p --- compiled_starters/swift/.codecrafters/compile.sh | 2 +- compiled_starters/swift/your_program.sh | 2 +- solutions/swift/01-jm1/code/.codecrafters/compile.sh | 2 +- solutions/swift/01-jm1/code/your_program.sh | 2 +- starter_templates/swift/code/.codecrafters/compile.sh | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/compiled_starters/swift/.codecrafters/compile.sh b/compiled_starters/swift/.codecrafters/compile.sh index fea98ae..e7fa9f0 100755 --- a/compiled_starters/swift/.codecrafters/compile.sh +++ b/compiled_starters/swift/.codecrafters/compile.sh @@ -21,7 +21,7 @@ if [ -d "/tmp/codecrafters-build-redis-swift" ]; then # cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old - cp -p -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift else echo "Build directory does not exist." fi diff --git a/compiled_starters/swift/your_program.sh b/compiled_starters/swift/your_program.sh index 77d88c8..f7334de 100755 --- a/compiled_starters/swift/your_program.sh +++ b/compiled_starters/swift/your_program.sh @@ -23,7 +23,7 @@ set -e # Exit early if any commands fail # mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old # cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old - cp -p -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift else echo "Build directory does not exist." fi diff --git a/solutions/swift/01-jm1/code/.codecrafters/compile.sh b/solutions/swift/01-jm1/code/.codecrafters/compile.sh index fea98ae..e7fa9f0 100755 --- a/solutions/swift/01-jm1/code/.codecrafters/compile.sh +++ b/solutions/swift/01-jm1/code/.codecrafters/compile.sh @@ -21,7 +21,7 @@ if [ -d "/tmp/codecrafters-build-redis-swift" ]; then # cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old - cp -p -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift else echo "Build directory does not exist." fi diff --git a/solutions/swift/01-jm1/code/your_program.sh b/solutions/swift/01-jm1/code/your_program.sh index 77d88c8..f7334de 100755 --- a/solutions/swift/01-jm1/code/your_program.sh +++ b/solutions/swift/01-jm1/code/your_program.sh @@ -23,7 +23,7 @@ set -e # Exit early if any commands fail # mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old # cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old - cp -p -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift else echo "Build directory does not exist." fi diff --git a/starter_templates/swift/code/.codecrafters/compile.sh b/starter_templates/swift/code/.codecrafters/compile.sh index fea98ae..e7fa9f0 100755 --- a/starter_templates/swift/code/.codecrafters/compile.sh +++ b/starter_templates/swift/code/.codecrafters/compile.sh @@ -21,7 +21,7 @@ if [ -d "/tmp/codecrafters-build-redis-swift" ]; then # cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift mv /tmp/codecrafters-build-redis-swift /tmp/codecrafters-build-redis-swift-old - cp -p -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift + cp -R /tmp/codecrafters-build-redis-swift-old /tmp/codecrafters-build-redis-swift else echo "Build directory does not exist." fi