diff options
author | June McEnroe <june@causal.agency> | 2018-11-27 21:34:02 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2018-11-27 21:34:02 -0500 |
commit | 473fb93b805fc9ffaf8a1072a38477d5bd19e833 (patch) | |
tree | 27b621f955dfca9c2b340f5ea6c0c5e1e989fc16 | |
parent | Fix ports for Linux (diff) | |
download | src-473fb93b805fc9ffaf8a1072a38477d5bd19e833.tar.gz src-473fb93b805fc9ffaf8a1072a38477d5bd19e833.zip |
Switch to pkgsrc on Darwin
I've had enough of Homebrew. I want a real package manager that can remove unneeded dependencies. neovim still isn't in pkgsrc, so download binaries of that separately for now. Hopefully I haven't broken any other systems by rewriting install.sh like this.
-rw-r--r-- | home/.kshrc | 2 | ||||
-rwxr-xr-x | install.sh | 73 |
2 files changed, 51 insertions, 24 deletions
diff --git a/home/.kshrc b/home/.kshrc index fb605acd..113292cf 100644 --- a/home/.kshrc +++ b/home/.kshrc @@ -7,7 +7,7 @@ function colonize { print "$*" } systemPath=$PATH -PATH=$(colonize {,/usr{/local,/pkg,},$HOME/.local}/{s,}bin /usr/games) +PATH=$(colonize {,/opt/pkg,/usr{/local,/pkg,},$HOME/.local}/{s,}bin /usr/games) CDPATH=:$HOME export PWD diff --git a/install.sh b/install.sh index 10a49384..f9f7ab29 100755 --- a/install.sh +++ b/install.sh @@ -1,32 +1,59 @@ #!/bin/sh set -e -u -any='gnupg htop mksh sl the_silver_searcher tree' -brew="$any ddate git neovim openssh" -pkg="$any curl ddate neovim sudo" -pkgin="$any curl sudo vim" -pacman="$any base-devel bc ctags gdb neovim openssh" - -homebrew='https://raw.githubusercontent.com/Homebrew/install/master/install' -if [ "$(uname)" = 'Darwin' ]; then +pkgAny='curl git gnupg htop mksh sl the_silver_searcher tree' +pkgDarwin='git' +pkgFreeBSD='ddate neovim sudo' +pkgNetBSD='sudo vim' +pkgLinux='base-devel bc ctags gdb neovim openssh' + +pkgsrcTag='20171103' +neovimTag='v0.3.1' + +pkgsrcTar="bootstrap-trunk-x86_64-${pkgsrcTag}.tar.gz" +pkgsrcURL="https://pkgsrc.joyent.com/packages/Darwin/bootstrap/${pkgsrcTar}" +neovimTar='nvim-macos.tar.gz' +neovimURL=" +https://github.com/neovim/neovim/releases/download/${neovimTag}/${neovimTar} +" + +Darwin() { xcode-select --install || true - [ -f /usr/local/bin/brew ] || ruby -e "$(curl -fsSL "$homebrew")" - brew install $brew || true - if ! grep -q 'mksh' /etc/shells; then - echo '/usr/local/bin/mksh' | sudo tee -a /etc/shells > /dev/null + if [ ! -d /opt/pkg ]; then + curl -O ${pkgsrcURL} + sudo tar -zxpf ${pkgsrcTar} -C / + rm ${pkgsrcTar} + fi + sudo pkgin update + sudo pkgin install ${pkgAny} ${pkgDarwin} + if [ ! -f /usr/local/bin/nvim ]; then + curl -L -O ${neovimURL} + sudo tar -xf ${neovimTar} --strip-components 1 -C /usr/local + rm ${neovimTar} fi - exit -fi +} -[ -f /usr/local/sbin/pkg ] && exec pkg install $pkg +PKG_PATH=" +ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/$(uname -p)/$(uname -r)/All +" -if [ "$(uname)" = 'NetBSD' ]; then - export PKG_PATH="ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/$(uname -p)/$(uname -r)/All" - pkg_add pkgin - echo "$PKG_PATH" > /usr/pkg/etc/pkgin/repositories.conf +NetBSD() { + if [ ! -f /usr/pkg/bin/pkgin ]; then + export PKG_PATH + pkg_add pkgin + echo "${PKG_PATH}" > /usr/pkg/etc/pkgin/repositories.conf + fi pkgin update - pkgin install $pkgin - exit -fi + pkgin install ${pkgAny} ${pkgNetBSD} +} + +FreeBSD() { + pkg install ${pkgAny} ${pkgFreeBSD} +} + +Linux() { + pacman -Sy + pacman -S --needed ${pkgAny} ${pkgLinux} +} -[ -f /usr/bin/pacman ] && pacman -Sy && exec pacman -S --needed $pacman +$(uname) |