shell-scripts/obsidian_get_inlineTitle_values.py
Tracey Clark 2c82137a71 Add Obsidian config scripts
This adds two scripts for Obsidian vaults.
One will get the values of showInlineTitle for all vaults
The other will change the value to false in all vaults
2024-06-08 15:42:30 -05:00

42 lines
1.8 KiB
Python
Executable file

#!/usr/bin/env python3
import os
import json
# Find all app.json config files for Obsidian
# in all subdirectories of the specified directory
# and show the value of showInlineTitle
# Assisted by ChatGPT
def get_show_inline_title_from_obsidian_folders(parent_directory):
try:
# Loop through all folders and subfolders in the parent directory
for root, dirs, files in os.walk(parent_directory):
# Check if the current directory is named ".obsidian"
if '.obsidian' in dirs:
obsidian_folder_path = os.path.join(root, '.obsidian')
# Look for a file named "app.json" in this folder
app_json_path = os.path.join(obsidian_folder_path, 'app.json')
if os.path.exists(app_json_path):
# Open the JSON file for reading
with open(app_json_path, 'r') as json_file:
data = json.load(json_file)
# Check if 'showInlineTitle' key exists
# and print its value
if 'showInlineTitle' in data:
print(
f"In '{app_json_path}': showInlineTitle is {data['showInlineTitle']}")
else:
print(
f"In '{app_json_path}': showInlineTitle key does not exist.")
except FileNotFoundError:
print(f"Error: Directory '{parent_directory}' not found.")
except json.JSONDecodeError:
print(f"Error: Invalid JSON file found in '{parent_directory}'.")
# Get the parent directory path from user input
parent_directory = input("Enter the parent directory path: ")
get_show_inline_title_from_obsidian_folders(parent_directory)