class Homeshick < Formula desc "Git dotfiles synchronizer written in bash" homepage "https://github.com/andsens/homeshick" url "https://github.com/andsens/homeshick/archive/1.0.0.tar.gz" sha256 "8bd3c46f1cfd68d82d97fa72a68a07c966092c77f276d1335cb390b2ec6062bf" head "https://github.com/andsens/homeshick.git" bottle :unneeded option "with-fish", "Build fish bindings" option "with-csh", "Build csh bindings" def install inreplace "bin/homeshick", /^homeshick=.*/, "homeshick=#{opt_prefix}" prefix.install "lib", "homeshick.sh" fish_function.install "homeshick.fish" if build.with? "fish" bin.install "bin/homeshick" bin.install "bin/homeshick.csh" if build.with? "csh" zsh_completion.install "completions/_homeshick" bash_completion.install "completions/homeshick-completion.bash" if build.head? && build.with?("fish") fish_completion.install "completions/homeshick.fish" end end def caveats s = <<~EOS To enable the `homeshick cd ` command, you need to `export HOMESHICK_DIR=#{opt_prefix}` and `source "#{opt_prefix}/homeshick.sh"` in your $HOME/.bashrc EOS if build.with? "csh" s += <<~EOS and `alias homeshick source "#{opt_bin}/homeshick.csh"` in your $HOME/.cshrc EOS end s end test do (testpath/"test.sh").write <<~EOS #!/bin/sh export HOMESHICK_DIR="#{opt_prefix}" source "#{opt_prefix}/homeshick.sh" homeshick generate test homeshick list EOS assert_match "test", shell_output("bash #{testpath}/test.sh") end end