diff --git a/linux/buildroot-scripts/start-buildroot-session.sh b/linux/buildroot-scripts/start-buildroot-session.sh new file mode 100755 index 000000000..9aed0ee10 --- /dev/null +++ b/linux/buildroot-scripts/start-buildroot-session.sh @@ -0,0 +1,80 @@ +script_dir=$(readlink -f ./) +personal_config=$(readlink -f ../buildroot-config-src) +shared_config=$RISCV/buildroot-config-src + +if [ -d "$shared_config" ]; then + echo "Hold the horses, friend!" >&2 + echo "There is already a buildroot-config-src folder in \$RISCV" >&2 + if [ ! -f "$shared_config/.owner" ]; then + echo "Oy vey -- it was improperly created too!" >&2 + echo "I see no .owner file in it!" >&2 + echo "Maybe just delete it." >&2 + exit 1 + fi + owner=$(cat $shared_config/.owner) + echo "It was created by $owner." >&2 + echo "Please contact them before overwriting their source files." >&2 + exit 1 +fi +echo "Starting new buildroot session" +# Copy configs to shared location +echo "Elevate permissions to copy ../buildroot-config-src to \$RISCV" +sudo cp -r "$personal_config" "$shared_config" +sudo chown -R cad $shared_config +# Document who created these configs +whoami>.owner +sudo mv .owner $shared_config +# Copy over main.config +echo "Copying main.config to buildroot/.config." +sudo cp $shared_config/main.config $RISCV/buildroot/.config +sudo chown cad $RISCV/buildroot/.config + +echo "==============================================" +echo "I'm about to sign you in as cad." +echo "" +echo "You can go straight to the \$RISCV/buildroot" +echo "and run \`make\` if you want." +echo "" +echo "You can also run:" +echo " * \`make menu-config\`" +echo " * \`make linux-menuconfig\`" +echo " * \`make busybox-menuconfig\`" +echo "but if you do, you have to make extra certain" +echo "that you LOAD and SAVE configs from/to " +echo "\$RISCV/buildroot-config-src." +echo "" +echo "Run \`exit\` to sign out when you are done." +echo "And then any configs that were modified in" +echo "\$RISCV/buildroot-config-src will be copied" +echo "back to ../buildroot-config-src." +echo "==============================================" +read -p "Press any key to sign in as cad" -n1 -s +echo "" +cd $RISCV +sudo su cad +cd $script_dir + +echo "" +echo "Ending buildroot session" +if [ ! -d "$shared_config" ]; then + echo "Warning: $shared_config has already been deleted." + exit 0 +fi +if [ ! -f "$shared_config/.owner" ]; then + echo "Oy vey -- no .owner file found.">&2 + echo "Not sure whether to delete $shared_config.">&2 + exit 1 +fi +owner=$(cat "$shared_config"/.owner) +if [ $owner != $(whoami) ]; then + echo "Whoah there! It seems $owner created $shared_config.">&2 + echo "Ask them before deleting their work.">&2 + exit 1 +fi +echo "Copying modified configs from \$RISCV/buildroot-config-src back to ../buildroot-config-src." +for file in $personal_config/*; do + file=$(basename $file) + cp $shared_config/$file $personal_config/$file +done +echo "Elevate permissions to remove personal configs from shared location." +sudo rm -r $shared_config