Files
ObsidianSetup/install_obsidian.sh
T
2024-06-10 22:31:55 +02:00

98 lines
3.0 KiB
Bash

#!/bin/bash
install_obsidian_linux() {
echo "Installing Obsidian for Linux..."
sudo apt update
sudo apt install -y wget jq
wget https://github.com/obsidianmd/obsidian-releases/releases/download/v1.6.3/Obsidian-1.6.3.AppImage -O obsidian.AppImage
chmod +x obsidian.AppImage
./obsidian.AppImage &
# Wait a bit to ensure Obsidian initializes its config
sleep 10
pkill -f obsidian.AppImage
# Simulate creating a command alias for testing
sudo ln -sf $(pwd)/obsidian.AppImage /usr/local/bin/obsidian
}
install_obsidian_macos() {
echo "Installing Obsidian for macOS..."
which -s brew
if [[ $? != 0 ]] ; then
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
fi
brew install wget jq
wget https://github.com/obsidianmd/obsidian-releases/releases/download/v1.6.3/Obsidian-1.6.3-universal.dmg -O Obsidian.dmg
hdiutil attach Obsidian.dmg
cp -r /Volumes/Obsidian/Obsidian.app /Applications/
hdiutil detach /Volumes/Obsidian
open /Applications/Obsidian.app &
# Wait a bit to ensure Obsidian initializes its config
sleep 10
pkill Obsidian
# Simulate creating a command alias for testing
sudo ln -sf /Applications/Obsidian.app/Contents/MacOS/Obsidian /usr/local/bin/obsidian
}
install_plugins() {
echo "Installing plugins..."
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
pkill -f obsidian.AppImage
CONFIG_DIR="$HOME/.config/obsidian"
elif [[ "$OSTYPE" == "darwin"* ]]; then
pkill Obsidian
CONFIG_DIR="$HOME/Library/Application Support/obsidian"
fi
mkdir -p "$CONFIG_DIR/plugins"
PLUGINS_FILE=plugins.json
CORE_PLUGINS=$(jq -r '.core_plugins[]' $PLUGINS_FILE)
COMMUNITY_PLUGINS=$(jq -r '.community_plugins[]' $PLUGINS_FILE)
# Enable core plugins
CONFIG_FILE="$CONFIG_DIR/config"
if [[ ! -f "$CONFIG_FILE" ]]; then
echo "{}" > "$CONFIG_FILE"
fi
for plugin in $CORE_PLUGINS; do
echo "Enabling core plugin: $plugin"
jq ". + {\"plugin:$plugin\": true}" "$CONFIG_FILE" > tmp.json && mv tmp.json "$CONFIG_FILE"
done
# Install community plugins
for plugin in $COMMUNITY_PLUGINS; do
echo "Installing community plugin: $plugin"
PLUGIN_NAME=$(echo $plugin | sed 's/\//-/g')
PLUGIN_URL="https://github.com/$plugin/releases/latest/download/main.js"
PLUGIN_DIR="$CONFIG_DIR/plugins/$PLUGIN_NAME"
mkdir -p "$PLUGIN_DIR"
wget "$PLUGIN_URL" -O "$PLUGIN_DIR/main.js" || echo "Failed to download plugin $plugin"
done
echo "Plugins installed successfully!"
}
echo "Please select your operating system:"
echo "L) Linux"
echo "M) macOS"
echo "W) Windows"
read -p "Enter your choice: " os_choice
case "$os_choice" in
[Ll]) install_obsidian_linux ;;
[Mm]) install_obsidian_macos ;;
[Ww]) echo "Please run the script install_obsidian.ps1 in PowerShell for Windows installation." ;;
*) echo "Invalid choice. Exiting." ;;
esac
install_plugins