#!/usr/bin/env bash # # create_snowflake_structure.sh # ------------------------------------------------- # Creates a ready‑to‑use folder layout for the Snowflake # writing outline method. # # Usage: # ./create_snowflake_structure.sh "MyNovel" # # If no argument is supplied, the script defaults to a folder # named "SnowflakeProject". # ------------------------------------------------- set -euo pipefail # safety: exit on error, treat unset vars as errors # ------------------------------------------------------------------ # Helper: print a short usage message # ------------------------------------------------------------------ usage() { echo "Usage: $0 [project_folder_name]" echo "Creates the Snowflake writing‑method folder structure." exit 1 } # ------------------------------------------------------------------ # Determine the root folder name # ------------------------------------------------------------------ PROJECT_NAME="${1:-SnowflakeProject}" ROOT_DIR="${PWD}/${PROJECT_NAME}" # ------------------------------------------------------------------ # Define the directory tree (relative to ROOT_DIR) # ------------------------------------------------------------------ DIRS=( "01-Premise" "02-Synopsis" "03-Characters/main_characters" "03-Characters/supporting_characters" "03-Characters/character_grid" "04-PlotOutline" "04-PlotOutline/scene_breakdown" "05-NarrativeSheets/act_1" "05-NarrativeSheets/act_2" "05-NarrativeSheets/act_3" "06-FirstDraft" "07-Revisions/structural_edits" "07-Revisions/line_edits" "07-Revisions/proofreading" "08-Final/metadata" "08-Final/submission_materials" ) # ------------------------------------------------------------------ # Create the directories # ------------------------------------------------------------------ echo "Creating project folder: ${ROOT_DIR}" mkdir -p "${ROOT_DIR}" for d in "${DIRS[@]}"; do mkdir -p "${ROOT_DIR}/${d}" done # ------------------------------------------------------------------ # Optional: create placeholder files so you have a starting point # ------------------------------------------------------------------ touch "${ROOT_DIR}/01-Premise/premise.txt" touch "${ROOT_DIR}/02-Synopsis/synopsis.txt" touch "${ROOT_DIR}/03-Characters/main_characters/protagonist.md" touch "${ROOT_DIR}/03-Characters/main_characters/antagonist.md" touch "${ROOT_DIR}/03-Characters/character_grid/character_grid.xlsx" touch "${ROOT_DIR}/04-PlotOutline/plot_outline.docx" touch "${ROOT_DIR}/05-NarrativeSheets/act_1/scene_01.md" touch "${ROOT_DIR}/06-FirstDraft/draft_v1.docx" touch "${ROOT_DIR}/07-Revisions/structural_edits/notes.txt" touch "${ROOT_DIR}/08-Final/final_manuscript.docx" touch "${ROOT_DIR}/README.md" # ------------------------------------------------------------------ # Finished # ------------------------------------------------------------------ echo "Folder structure created successfully!" echo "Root directory: ${ROOT_DIR}" echo "You can now start populating the files."