├── .gitignore ├── Formula ├── backlog.rb ├── arrowhead.rb └── stamp.rb └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | # macOS 2 | .DS_Store 3 | .AppleDouble 4 | .LSOverride 5 | 6 | # Thumbnails 7 | ._* 8 | 9 | # Files that might appear in the root of a volume 10 | .DocumentRevisions-V100 11 | .fseventsd 12 | .Spotlight-V100 13 | .TemporaryItems 14 | .Trashes 15 | .VolumeIcon.icns 16 | .com.apple.timemachine.donotpresent 17 | 18 | # Directories potentially created on remote AFP share 19 | .AppleDB 20 | .AppleDesktop 21 | Network Trash Folder 22 | Temporary Items 23 | .apdisk 24 | 25 | # Homebrew 26 | *.bottle.* 27 | *.tar.gz 28 | 29 | # IDE 30 | .vscode/ 31 | .idea/ 32 | *.swp 33 | *.swo 34 | *~ 35 | 36 | # Logs 37 | *.log -------------------------------------------------------------------------------- /Formula/backlog.rb: -------------------------------------------------------------------------------- 1 | class Backlog < Formula 2 | desc "Anki-style resurfacer for fleeting plaintext notes" 3 | homepage "https://github.com/totocaster/backlog" 4 | version "0.1.0" 5 | license "MIT" 6 | 7 | on_macos do 8 | on_arm do 9 | url "https://github.com/totocaster/backlog/releases/download/v0.1.0/backlog-0.1.0-aarch64-apple-darwin.tar.gz" 10 | sha256 "e7c0d3fff7f9852390ff00b33d1f1c6a667952257455d5a95f3bee9985a1494c" 11 | end 12 | 13 | on_intel do 14 | url "https://github.com/totocaster/backlog/releases/download/v0.1.0/backlog-0.1.0-x86_64-apple-darwin.tar.gz" 15 | sha256 "4a7b07a6890b063621406fcb58ac25473749bb336301546b31dd2a92278fc728" 16 | end 17 | end 18 | 19 | def install 20 | bin.install "bin/backlog" 21 | end 22 | 23 | test do 24 | output = shell_output("\#{bin}/backlog --help") 25 | assert_match "backlog", output 26 | end 27 | end 28 | -------------------------------------------------------------------------------- /Formula/arrowhead.rb: -------------------------------------------------------------------------------- 1 | class Arrowhead < Formula 2 | desc "Fast Obsidian search and discovery CLI and daemon" 3 | homepage "https://github.com/totocaster/arrowhead" 4 | version "0.8.1" 5 | license "MIT" 6 | 7 | on_macos do 8 | on_arm do 9 | url "https://github.com/totocaster/arrowhead/releases/download/v0.8.1/arrowhead-0.8.1-aarch64-apple-darwin.tar.gz" 10 | sha256 "ef03f863c9bbca55a9d5206901b7c83328926bc9e0df6265f363b9fa7fe23d7d" 11 | end 12 | 13 | on_intel do 14 | url "https://github.com/totocaster/arrowhead/releases/download/v0.8.1/arrowhead-0.8.1-x86_64-apple-darwin.tar.gz" 15 | sha256 "b2a937c50940cbfffbe5b9187f6990c4fe6e953b574db162f095a3f966a68398" 16 | end 17 | end 18 | 19 | def install 20 | bin.install "bin/arrowhead" 21 | bin.install "bin/arrowheadd" 22 | end 23 | 24 | test do 25 | output = shell_output("#{bin}/arrowhead --help") 26 | assert_match "arrowhead", output 27 | 28 | daemon_output = shell_output("#{bin}/arrowheadd --help") 29 | assert_match "arrowheadd", daemon_output 30 | end 31 | end 32 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Homebrew Tap 2 | 3 | This is a custom Homebrew tap containing formulas for personal tools. 4 | 5 | ## Installation 6 | 7 | To add this tap to your Homebrew installation, run: 8 | 9 | ```bash 10 | brew tap totocaster/tap 11 | ``` 12 | 13 | ## Available Formulas 14 | 15 | ### stamp 16 | 17 | A simple Go CLI tool for generating note filenames based on date/time. 18 | 19 | #### Installation 20 | 21 | ```bash 22 | brew install totocaster/tap/stamp 23 | ``` 24 | 25 | Or install directly via URL: 26 | 27 | ```bash 28 | brew install https://raw.githubusercontent.com/totocaster/homebrew-tap/main/Formula/stamp.rb 29 | ``` 30 | 31 | #### Features 32 | 33 | - Generate daily note filenames (YYYY-MM-DD format) 34 | - Generate fleeting note filenames with timestamps 35 | - Generate project note filenames with sequential IDs 36 | - Includes `nid` symlink for convenience 37 | 38 | #### Usage 39 | 40 | After installation, you can use either `stamp` or `nid` commands: 41 | 42 | ```bash 43 | # Generate daily note filename 44 | stamp daily 45 | # Output: 2024-01-15 46 | 47 | # Generate fleeting note filename 48 | stamp fleeting 49 | # Output: 2024-01-15-F123456 50 | 51 | # Generate project note filename 52 | stamp project 53 | # Output: P2024001 54 | ``` 55 | 56 | ## Updating 57 | 58 | To update the formulas in this tap: 59 | 60 | ```bash 61 | brew update 62 | brew upgrade totocaster/tap/stamp 63 | ``` 64 | 65 | ## Development 66 | 67 | This tap is maintained by [totocaster](https://github.com/totocaster). Formula updates are automated via GoReleaser when new versions of the tools are released. 68 | 69 | ## License 70 | 71 | See individual formula licenses. The stamp tool is licensed under MIT. -------------------------------------------------------------------------------- /Formula/stamp.rb: -------------------------------------------------------------------------------- 1 | class Stamp < Formula 2 | desc "A simple Go CLI tool for generating note filenames based on date/time" 3 | homepage "https://github.com/totocaster/stamp" 4 | version "0.1.1" 5 | license "MIT" 6 | 7 | # For macOS 8 | if OS.mac? 9 | if Hardware::CPU.arm? 10 | url "https://github.com/totocaster/stamp/releases/download/v0.1.1/stamp_0.1.1_Darwin_arm64.tar.gz" 11 | sha256 "d6d0bb405d5143e8d316485eb13bbe6d36bb453d81e4d93b0646d9cf68773ee6" 12 | else 13 | url "https://github.com/totocaster/stamp/releases/download/v0.1.1/stamp_0.1.1_Darwin_x86_64.tar.gz" 14 | sha256 "fb98c97739aeb3a8ea0afa8e76acebce416857fda4c34b7f84e65874501f6e9f" 15 | end 16 | # For Linux 17 | elsif OS.linux? 18 | if Hardware::CPU.arm? 19 | url "https://github.com/totocaster/stamp/releases/download/v0.1.1/stamp_0.1.1_Linux_arm64.tar.gz" 20 | sha256 "e87df11ee39648f6f3ef5293adc01213cadbc2dcb13f501fdabcb535bf5e9829" 21 | else 22 | url "https://github.com/totocaster/stamp/releases/download/v0.1.1/stamp_0.1.1_Linux_x86_64.tar.gz" 23 | sha256 "6c3bde5d4a3e99faadfba04e865489f83676bcb7db754c9e9cee6a34ec4b0c26" 24 | end 25 | end 26 | 27 | # Optional: Go is only needed if building from source 28 | depends_on "go" => :optional 29 | 30 | def install 31 | # Install the stamp binary 32 | bin.install "stamp" 33 | 34 | # Create the nid symlink 35 | bin.install_symlink "stamp" => "nid" 36 | end 37 | 38 | test do 39 | # Test that the binary runs and shows version 40 | assert_match /stamp version/, shell_output("#{bin}/stamp version") 41 | 42 | # Test daily note generation 43 | assert_match(/\d{4}-\d{2}-\d{2}/, shell_output("#{bin}/stamp daily")) 44 | 45 | # Test that nid symlink works 46 | assert_predicate bin/"nid", :exist? 47 | assert_match(/\d{4}-\d{2}-\d{2}/, shell_output("#{bin}/nid daily")) 48 | 49 | # Test fleeting note generation 50 | assert_match(/\d{4}-\d{2}-\d{2}-F\d{6}/, shell_output("#{bin}/stamp fleeting")) 51 | 52 | # Test project note generation (should start with P) 53 | assert_match(/^P\d{4}/, shell_output("#{bin}/stamp project")) 54 | end 55 | end --------------------------------------------------------------------------------