Files

45 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
#
# Creates temporary documentation source directories in the CWD (a temp dir).
#
# ARGUMENTS:
# $1 - The absolute path to the project root.
# Do this if you want to use the utility functions. Note the path change.
source "$1/Tools/Documentation/support/processor_setup.sh"
# A function to collect sources. CWD is the temp dir.
# ARGS: $1=Project Root, $2=Framework Name, $3=Output Doc Dir Name
collect_sources() {
local project_root="$1"
local framework_name="$2"
local doc_dir_name="$3"
local tar_file="temp.tar" # Temp tar file in the CWD
processor_msg "--------------------------------------------------"
processor_msg "Processing framework: $framework_name"
# Find sources relative to the project root
find "$project_root/$framework_name" -name "*.j" | bsdtar -s "|^$project_root/$framework_name/|$doc_dir_name/|" -cnf "$tar_file" -T -
if [ -f "$tar_file" ]; then
processor_msg "Extracting archive to CWD..."
bsdtar xf "$tar_file"
rm "$tar_file"
else
processor_msg "ERROR: Failed to create tar archive for $framework_name." "red"
exit 1
fi
}
# --- Run Collection ---
collect_sources "$1" "AppKit" "AppKit.doc"
collect_sources "$1" "Foundation" "Foundation.doc"
# --- Post-Process Files ---
processor_msg "--------------------------------------------------"
processor_msg "Removing @import and @class from source files..."
# These directories now exist in our CWD (the temp dir)
find AppKit.doc -name *.j -exec sed -e '/@import.*/ d' -e '/@class.*/ d' -i '' {} \;
find Foundation.doc -name *.j -exec sed -e '/@import.*/ d' -e '/@class.*/ d' -i '' {} \;