# ************************************************************************** # * (C)opyright 2026 by Ruben Carlo Benante * # * * # * This program is free software; you can redistribute it and/or modify * # * it under the terms of the GNU General Public License as published by * # * the Free Software Foundation, either version 3 of the License, or * # * (at your option) any later version. * # * * # * This program is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * # * GNU General Public License for more details. * # * * # * You should have received a copy of the GNU General Public License * # * along with this program. If not, see http://www.gnu.org/licenses/. * # * * # * Contact author at: * # * Ruben Carlo Benante * # * rcb@beco.cc * # ************************************************************************** # Makefile for zettelclean - build and install into an Obsidian vault on this machine. # # Usage: # make # build main.js # make install # build, then copy the plugin files into your vault # make copy # copy only (no rebuild) # make uninstall # remove the plugin folder from your vault # # Set your vault once below, or override per call: # make install VAULT=/home/beco/notes/MyVault PLUGIN_ID := zettelclean # EDIT THIS: absolute path to your Obsidian vault (the folder that contains .obsidian). VAULT ?= /path/to/your/ObsidianVault PLUGIN_DIR := $(VAULT)/.obsidian/plugins/$(PLUGIN_ID) # Files that actually ship. styles.css is included only if it exists. FILES := main.js manifest.json ifneq ("$(wildcard styles.css)","") FILES += styles.css endif .PHONY: all build install copy uninstall clean check-vault all: build build: npm run build install: build copy copy: check-vault mkdir -p "$(PLUGIN_DIR)" cp $(FILES) "$(PLUGIN_DIR)/" @echo "Installed $(PLUGIN_ID) -> $(PLUGIN_DIR)" @echo "Now: reload Obsidian (Settings -> Community plugins -> refresh) and enable Zettelclean." uninstall: check-vault rm -rf "$(PLUGIN_DIR)" @echo "Removed $(PLUGIN_DIR)" clean: rm -f main.js # Fail early with a clear message if the vault path is wrong or unset. check-vault: @test -d "$(VAULT)/.obsidian" || { \ echo "ERROR: '$(VAULT)' is not an Obsidian vault (no .obsidian folder)."; \ echo "Edit VAULT in the Makefile, or run: make install VAULT=/abs/path/to/vault"; \ exit 1; \ }