Change summary
script/deploy-docs | 195 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 195 insertions(+)
Detailed changes
@@ -0,0 +1,195 @@
+#!/bin/bash
+
+# Set the environment variables
+TARGET_DIR="../zed-docs"
+PUSH_CHANGES=false
+CLEAN_FOLDERS=false
+
+# Parse command line arguments
+while getopts "pc" opt; do
+ case ${opt} in
+ p )
+ PUSH_CHANGES=true
+ ;;
+ c )
+ CLEAN_FOLDERS=true
+ ;;
+ \? )
+ echo "Invalid option: $OPTARG" 1>&2
+ exit 1
+ ;;
+ esac
+done
+
+if "$CLEAN_FOLDERS"; then
+ echo "Cleaning ./doc and ./debug folders..."
+ rm -rf "$TARGET_DIR/doc"
+ rm -rf "$TARGET_DIR/debug"
+fi
+
+# Check if the target documentation directory exists
+if [ ! -d "$TARGET_DIR" ]; then
+ # Prompt the user for input
+ read -p "The zed-docs directory does not exist. Make sure you are running this from the zed repo root." -n 1 -r
+ read -p "Do you want to clone the repository (y/n)? " -n 1 -r
+ echo # Move to a new line
+
+ if [[ $REPLY =~ ^[Yy]$ ]]; then
+ # Clone the repo if the user agrees
+ git clone https://github.com/zed-industries/zed-docs.git "$TARGET_DIR"
+ else
+ # Exit if the user does not agree to clone the repo
+ echo "Exiting without cloning the repository."
+ exit 1
+ fi
+else
+ # If the directory exists, pull the latest changes
+ pushd "$TARGET_DIR" > /dev/null
+ git pull
+ popd > /dev/null
+fi
+
+# Build the documentation
+CARGO_TARGET_DIR="$TARGET_DIR" cargo doc --workspace --no-deps --open \
+--exclude activity_indicator \
+--exclude ai \
+--exclude ai2 \
+--exclude assistant \
+--exclude audio \
+--exclude audio2 \
+--exclude auto_update \
+--exclude auto_update2 \
+--exclude breadcrumbs \
+--exclude call \
+--exclude call2 \
+--exclude channel \
+--exclude channel2 \
+--exclude cli \
+--exclude client \
+--exclude client2 \
+--exclude clock \
+--exclude collab \
+--exclude collab2 \
+--exclude collab_ui \
+--exclude collab_ui2 \
+--exclude collections \
+--exclude command_palette \
+--exclude command_palette2 \
+--exclude component_test \
+--exclude context_menu \
+--exclude copilot \
+--exclude copilot2 \
+--exclude copilot_button \
+--exclude db \
+--exclude db2 \
+--exclude diagnostics \
+--exclude diagnostics2 \
+--exclude drag_and_drop \
+--exclude editor \
+--exclude feature_flags \
+--exclude feature_flags2 \
+--exclude feedback \
+--exclude file_finder \
+--exclude file_finder2 \
+--exclude fs \
+--exclude fs2 \
+--exclude fsevent \
+--exclude fuzzy \
+--exclude fuzzy2 \
+--exclude git \
+--exclude git3 \
+--exclude go_to_line \
+--exclude go_to_line2 \
+--exclude gpui \
+--exclude gpui_macros \
+--exclude install_cli \
+--exclude install_cli2 \
+--exclude journal \
+--exclude journal2 \
+--exclude language \
+--exclude language2 \
+--exclude language_selector \
+--exclude language_tools \
+--exclude live_kit_client \
+--exclude live_kit_client2 \
+--exclude live_kit_server \
+--exclude lsp \
+--exclude lsp2 \
+--exclude media \
+--exclude menu \
+--exclude menu2 \
+--exclude multi_buffer \
+--exclude multi_buffer2 \
+--exclude node_runtime \
+--exclude notifications \
+--exclude notifications2 \
+--exclude outline \
+--exclude picker \
+--exclude picker2 \
+--exclude plugin \
+--exclude plugin_macros \
+--exclude plugin_runtime \
+--exclude prettier \
+--exclude prettier2 \
+--exclude project \
+--exclude project2 \
+--exclude project_panel \
+--exclude project_panel2 \
+--exclude project_symbols \
+--exclude quick_action_bar \
+--exclude recent_projects \
+--exclude refineable \
+--exclude rich_text \
+--exclude rich_text2 \
+--exclude rope \
+--exclude rope2 \
+--exclude rpc \
+--exclude rpc2 \
+--exclude search \
+--exclude semantic_index \
+--exclude settings \
+--exclude settings2 \
+--exclude snippet \
+--exclude sqlez \
+--exclude sqlez_macros \
+--exclude storybook2 \
+--exclude storybook3 \
+--exclude sum_tree \
+--exclude terminal \
+--exclude terminal2 \
+--exclude terminal_view \
+--exclude terminal_view2 \
+--exclude text \
+--exclude text2 \
+--exclude theme \
+--exclude theme_importer \
+--exclude theme_selector \
+--exclude util \
+--exclude vcs_menu \
+--exclude vim \
+--exclude welcome \
+--exclude workspace2 \
+--exclude xtask \
+--exclude zed \
+--exclude zed-actions \
+--exclude zed_actions2
+
+if "$PUSH_CHANGES"; then
+ # Commit the changes and push
+ pushd "$TARGET_DIR" > /dev/null
+ # Check if there are any changes to commit
+ if git diff --quiet && git diff --staged --quiet; then
+ echo "No changes to the documentation."
+ else
+ # Staging the changes
+ git add .
+
+ # Creating a commit with the current datetime
+ DATETIME=$(date +"%Y-%m-%d %H:%M:%S")
+ git commit -m "Update docs – $DATETIME"
+
+ # Pushing the changes
+ git push
+ fi
+ popd > /dev/null
+fi