#!/bin/bash # -*- coding: utf-8 -*- # Timestamp: "2026-01-09 (ywatanabe)" # File: ./scripts/installation/init_project.sh # Description: Initialize project with required preprocessing artifacts # Addresses GitHub Issue #12 set -e # Resolve project root from script location (handles any working directory) THIS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$THIS_DIR/.." && pwd)" # Colors GREEN='\033[0;32m' NC='\033[0m' log_success() { echo -e "${GREEN}✓${NC} $1"; } log_info() { echo -e " → $1"; } echo "Initializing SciTeX Writer project..." echo "" # Create wordcount directories and placeholder files create_wordcount_placeholders() { local doc_dir="$1" local wordcount_dir="$PROJECT_ROOT/$doc_dir/contents/wordcounts" if [ ! -d "$wordcount_dir" ]; then mkdir -p "$wordcount_dir" log_info "Created $doc_dir/contents/wordcounts/" fi # Create placeholder files with zero values local files=( "abstract_count.txt" "introduction_count.txt" "methods_count.txt" "results_count.txt" "discussion_count.txt" "figure_count.txt" "table_count.txt" "imrd_count.txt" ) for file in "${files[@]}"; do if [ ! -f "$wordcount_dir/$file" ]; then echo "0" >"$wordcount_dir/$file" fi done } # Create merged bibliography placeholder create_bibliography_placeholder() { local bib_dir="$PROJECT_ROOT/00_shared/bib_files" local merged_bib="$PROJECT_ROOT/00_shared/bibliography.bib" if [ ! -d "$bib_dir" ]; then mkdir -p "$bib_dir" log_info "Created 00_shared/bib_files/" fi # Create empty bibliography if none exists if [ ! -f "$bib_dir/references.bib" ] && [ ! -f "$merged_bib" ]; then echo "% Bibliography file - add your references here" >"$bib_dir/references.bib" log_info "Created placeholder references.bib" fi } # Create figure/table compiled directories create_compiled_dirs() { local doc_dir="$1" # Figures local fig_compiled="$PROJECT_ROOT/$doc_dir/contents/figures/compiled" if [ ! -d "$fig_compiled" ]; then mkdir -p "$fig_compiled" fi local fig_jpg="$PROJECT_ROOT/$doc_dir/contents/figures/caption_and_media/jpg_for_compilation" if [ ! -d "$fig_jpg" ]; then mkdir -p "$fig_jpg" fi # Tables local tbl_compiled="$PROJECT_ROOT/$doc_dir/contents/tables/compiled" if [ ! -d "$tbl_compiled" ]; then mkdir -p "$tbl_compiled" fi } # Create log directories create_log_dirs() { local log_dir="$PROJECT_ROOT/logs" mkdir -p "$log_dir" for doc in 01_manuscript 02_supplementary 03_revision; do mkdir -p "$PROJECT_ROOT/$doc/logs" done } # Create container cache directory create_container_dirs() { mkdir -p "$PROJECT_ROOT/.cache/containers" mkdir -p "$PROJECT_ROOT/scripts/containers" # Create README for containers directory if [ ! -f "$PROJECT_ROOT/scripts/containers/README.md" ]; then cat >"$PROJECT_ROOT/scripts/containers/README.md" <<'EOF' # Container Definitions This directory contains Apptainer/Singularity container definition files. ## Files - `texlive.def` - TeX Live container for LaTeX compilation - `mermaid.def` - Mermaid CLI container for diagram generation ## Usage Build containers: ```bash ./scripts/installation/download_containers.sh ``` Containers are cached in `.cache/containers/` after first build/download. EOF fi } # Main echo "Creating preprocessing artifacts..." # Process each document type for doc in 01_manuscript 02_supplementary; do create_wordcount_placeholders "$doc" create_compiled_dirs "$doc" done log_success "Wordcount placeholders created" create_bibliography_placeholder log_success "Bibliography structure ready" create_log_dirs log_success "Log directories created" create_container_dirs log_success "Container directories created" echo "" echo -e "${GREEN}Project initialization complete!${NC}" echo "" echo "Next steps:" echo " 1. Add your references to 00_shared/bib_files/references.bib" echo " 2. Add your content to 01_manuscript/contents/" echo " 3. Run: ./compile.sh manuscript" echo "" # EOF