jonallured / dotfiles

Here be my dotfiles
7 stars 0 forks source link

Week 16 - juggernaut #175

Closed jonallured closed 4 years ago

jonallured commented 4 years ago

Terminal Stuff

Filesystem Housekeeping

Check for Updates

Stay in Sync

Finishing Up

jonallured commented 4 years ago

sharpen.log

``` + brew upgrade bat fzf gh git heroku hokusai hub macvim the_silver_searcher tmux yarn Updating Homebrew... [KSuccessfully rebased and updated refs/heads/stable. [KSuccessfully rebased and updated refs/heads/master. [KSuccessfully rebased and updated refs/heads/master. [KSuccessfully rebased and updated refs/heads/master. [KSuccessfully rebased and updated refs/heads/master. [KSuccessfully rebased and updated refs/heads/master. ==> Auto-updated Homebrew! Updated 5 taps (homebrew/core, homebrew/cask, mongodb/brew, artsy/formulas and github/gh). ==> New Formulae bcoin beancount confd dolt emacs-dracula geph2 git-remote-codecommit go-jsonnet inxi minipro mongodb/brew/mongocli pass-git-helper semtag wolfmqtt ==> Updated Formulae abcmidi acpica adios2 afflib angular-cli anjuta ansible@2.8 antibody apache-arrow apollo-cli arcade-learning-environment armadillo artifactory artsy/formulas/hokusai asio ask-cli astrometry-net atk atlassian-cli aubio autopep8 aws-cdk aws-es-proxy aws-sdk-cpp awscli awsume axel azcopy azure-cli b2-tools b3sum baidupcs-go balena-cli bandwhich bartycrouch bat bazel bear bedops bee bento4 bettercap bib-tool bibclean bind binwalk biosig bison bitrise blis bmake boost-build boost-python3 borgmatic boringtun botan breezy broot buku bumpversion byacc bzt c-blosc cabal-install cacli caffe cairo calceph carla cartridge-cli cassandra castxml cataclysm ccache cdk8s ceres-solver cfn-lint chafa chamber chapel cheat cimg cjdns cjson cmake codequery composer conan contentful-cli convox coq crc credstash cryptominisat crystal csound csvq cxxtest cython dcm2niix ddclient ddgr deno detekt devspace dhall dict diff-pdf diffoscope django-completion dnsmasq dnstwist dnsviz docfx docker-compose docker-compose-completion doctl doitlive duplicity dvc dvdauthor dvdbackup dxpy dyld-headers eccodes ejabberd embree emscripten ensmallen ephemeralpg epstool eralchemy erlang etcd evince exploitdb eye-d3 faas-cli fabric faiss fastlane fastmod faudio fbi-servefiles fdroidserver feh fetchmail ffsend findomain firebase-cli flake8 flow fluent-bit fluid-synth fluxctl flyway fmt fn fobis folly fonttools ford freetds frpc frps frugal fruit fs-uae futhark fwup fzf gatsby-cli gd gdal gdcm geant4 geos gh gifski ginac git git-annex git-cola git-gui git-plus git-subrepo gitfs github/gh/gh gitleaks gitless gitversion gl2ps glib glib-networking glooctl gmsh gmt gmt@5 gnome-recipes gnustep-make go go@1.13 gobject-introspection gobo godep goofys googler goolabs goreleaser gprof2dot gpsd grafana grails graph-tool graphite2 grin grip groonga groovy groovysdk grpc grpcurl gsoap gst-python gtk+3 gtk-doc gtranslator haproxy hcloud healpix helmfile highlight hledger homeassistant-cli homebank hsd httpd hugo hwloc i2pd idnits igv imagemagick imagemagick@6 imgproxy inadyn internetarchive irrtoolset istioctl itstool jenkins jetty jflex joplin jp2a jsdoc3 json-fortran juju jupyterlab k3d katago kcptun kepubify khard killswitch kitchen-sync krakend kubebuilder kubernetes-cli kubeseal le lf lft libaacs libbluray libcbor libdca libdvdnav libdvdread libfido2 libflowmanager libfreenect libgsm libjson-rpc-cpp libmaa libomp libpeas libplctag libpq libprotoident libpst libqalculate librdkafka librealsense librsvg librsync libsecret libsignal-protocol-c libssh libtorrent-rasterbar libtrace libupnp libvirt libwps libxml2 libzdb libzt link-grammar linkerd liquibase llvm logstash logtalk lsd lsdvd luvit lxc macvim magic-wormhole mame manticoresearch mapnik mariadb-connector-odbc mat2 math-comp maxwell mdbook mdcat media-info meilisearch memcached mercurial mesa meson metabase micro micronaut minetest minikube minio minio-mc miniserve mint mitmproxy mk-configure mkdocs mkl-dnn mksh mkvtoolnix mockolo moco modules molecule molten-vk mongo-cxx-driver mongodb/brew/mongodb-community mongodb/brew/mongodb-community@3.4 mongodb/brew/mongodb-community@4.0 monolith mpd mpi4py mpv msmtp multimarkdown mysql-search-replace n nano nats-server nave navi nbdime nco ncview ndpi nebula neon netcdf netdata nethogs netlify-cli netpbm newman newrelic-cli nfdump nifi-registry nift nim nnn node-build node-sass node@10 node@12 nodenv nomad now-cli nss ntfs-3g ntopng numpy nushell oauth2_proxy ocrmypdf octave octomap offlineimap okteto ola olsrd omniorb onscripter opa opencc opencolorio opencv opencv@3 openfortivpn openimageio openrct2 opensubdiv openttd ortp osmosis ospray otf2 pachi pagmo par parallelstl pc6001vx pcl pdal pdfpc pdftoipe pdns pegtl percona-server perl pgcli php-cs-fixer phplint phpmd phpunit pianobar picard-tools pkg-config plantuml pnpm polynote poppler prestosql prettier prometheus protobuf@3.6 pspg pueue pulp pulumi pushpin puzzles py3cairo pybind11 pyenv pygobject3 pympress pypy pypy3 pyqt pytouhou pyvim q qalculate-gtk qcli qjackctl qpdf qscintilla2 quantlib raylib rdiff-backup re-flex re2 regina-rexx remarshal remind repo rex rgbds rgxg ripgrep-all rom-tools root ruby ruby-build ruby@2.4 ruby@2.5 ruby@2.6 s3cmd sbt schema-evolution-manager scipy scummvm sd serverless shellcheck shfmt shunit2 signal-cli simh singular sip siril sk skaffold skopeo softhsm sonobuoy spim spiped spirv-cross spirv-tools sqlmap sslyze starship stella stellar-core step stress-ng strongswan subversion suite-sparse sundials swagger-codegen swift-sh swiftformat swiftlint syncthing sysdig tbb telegraf teleport template-glib terraform-docs terraform-provider-libvirt terragrunt tflint thors-serializer tig tintin toast tokei tomcat tomcat@8 travis ttygif tunnel twarc txr uftp uni urh urweb userspace-rcu utf8proc v8 vala velero verilator vim visp vtk vulkan-headers weboob weechat whistle wireshark wpscan wxmaxima wxpython xcodegen xdot xerces-c xmrig xonsh xpa xsimd yamllint yaz you-get zero-install zig zim zint ==> Deleted Formulae compcert ==> Updated Casks a-better-finder-rename abstract advancedrestclient aether agenda airdisplay airy alfaview algodoo alt-tab altserver amadine amazon-chime amazon-photos amethyst amitv87-pip android-studio another-redis-desktop-manager anydo appgate-sdp-client araxis-merge arq asciidocfx audio-hijack augur autovolume avast-secureline-vpn avocode axe-edit-iii axe-electrum axure-rp backblaze badlion-client balsamiq-wireframes banking-4 banktivity basictex bilimini birdfont bisq blitz bloodhound bluefish boinc bonitastudiocommunity bookmacster boom-3d brackets brave-browser brightness-sync browserosaurus butler butt c0re100-qbittorrent cabal cacher calendar-366 camunda-modeler caprine captin celldesigner charles checkra1n chromedriver chromium cityofzion-neon clashx cleanmymac clion clip-studio-paint clover-configurator cmake coconutbattery codeexpander codekit colorpicker-developer corona-tracker corretto cozy-drive craftmanager crystalmaker cursorsense cutter dash datagrip davmail day-o dbeaver-community dbvisualizer deepl deezer devdocs discord djay-pro docker dosbox downie doxygen drawio duefocus dust3d dyn-updater eagle eddie elan electerm electron electron-fiddle elmedia-player eloston-chromium elpass emby-server epubmdimporter exodus fanny fantastical fantasy-map-generator fastonosql feishu filebot fing firecamp firefox flash-npapi flash-player flash-player-debugger flash-player-debugger-npapi flash-player-debugger-ppapi flash-ppapi fldigi flipper fluor fly fm3-edit folx fontgoggles fork free-download-manager freeplane freeyourmusic frescobaldi fsnotes futuniuniu ganache gdisk geekbench gemini geph gifox gimp github glyphs gns3 gnucash gog-galaxy goland goodsync google-chrome gpxsee grads gretl grids gswitch hackintool hand-mirror hands-off hbuilderx headset hex-fiend houseparty hstracker hubstaff hyper icq idagio iglance iina iina-plus ilok-license-manager imazing inkscape insomnia insync intellij-idea intellij-idea-ce ios-app-signer iridient-developer ishowu-instant ithoughtsx ivpn jalbum jamf-migrator jami jasp jaxx-liberty jd-gui jet jitsi-meet joplin josm jubler jump kactus katalon-studio keepassxc keepingyouawake keeweb kext-updater keyshot kite kode54-cog kubernetic kugoumusic lacona lando lark lastpass latexit lazpaint lbry lens licecap lifesize lightproxy lingo localdev loom lunar macdown macfusion macfusion-ng macgamestore macgdbp macspice mactex mactex-no-gui macupdater macvim mailbutler mailplane malwarebytes manico manictime mapillary-uploader markdownmdimporter marvel marvin masscode massreplaceit max mediainfo meld mellow melodics meshlab metabase metashapepro metasploit michaelvillar-timer microsoft-edge microsoft-excel microsoft-office microsoft-outlook microsoft-powerpoint microsoft-teams microsoft-word milanote milkman minecraftpe mjml mkvtoolnix mochi moneymoney moneywiz monitorcontrol mountain-duck movist-pro multipass mycrypto neo4j netron netxms-console nordvpn noxappplayer nrlquaker-winbox nvidia-geforce-now obs omnigraffle one-switch onedrive onlyoffice openaudible opencore-configurator openineditor-lite openinterminal openinterminal-lite openttd openvpn-connect openwebstart opera oracle-jdk oracle-jdk-javadoc pacifist packages pagico paper patchwork pdf-expert pdfelement perforce pgadmin4 phocus phpstorm pinegrow pingplotter platelet plex plex-media-player plex-media-server plistedit-pro polymail pomello pomotroid portfolioperformance porting-kit postman praat preform presentation prey prezi-next pritunl private-internet-access proclaim propresenter protopie proxyman psi-plus publish-or-perish pycharm pycharm-ce pyfa pym-player qbittorrent qiyimedia qlimagesize qlvideo qownnotes qqlive quaternion quickbooks-online quip rapidweaver rar razorsql react-native-debugger realforce reaper rectangle red red-eye refined-github-safari reflector rekordbox remember-the-milk remote-desktop-manager remote-desktop-manager-free renamer rescuetime retrobatch ring riot roblox roboform rocket rotato rstudio rubymine runway sabaki scope screen screenflick screenflow screens scrutiny scummvm seafile-client seamonkey seashore segger-embedded-studio-for-arm sentinel session setapp shift shinhan-ezplus shotcut showyedge sia-ui signal simply-fortran sip skim skype-for-business slack snipaste sonic-pi soulver sqlpro-for-mssql sqlpro-for-sqlite sqlpro-studio standard-notes stella stoplight-studio studio-3t superproductivity suspicious-package swiftformat-for-xcode swifty switchresx syncmate synergy tableau tableau-prep tales-of-majeyal tandem teamspeak-client teamwire telavox-flow telegram tempo terminus textual the-unarchiver thedesk there thought-train thunderbird ticktick tidepool-uploader tiger-trade tikzit timely timeular toggl toptracker tor-browser torguard touchdesigner tower tropy tuple twine ultimate understand uniconverter unity unity-android-support-for-editor unity-download-assistant unity-ios-support-for-editor unity-lumin-support-for-editor unity-webgl-support-for-editor unity-windows-support-for-editor universal-media-server upic upwork vellum vesta vidrio virtualc64 viscosity visual-paradigm visual-paradigm-ce visual-studio visual-studio-code vivaldi vivi vlc vnote vscodium wasabi-wallet waterfox-current wavebox webcatalog website-watchman webstorm webtorrent wechat wechatwebdevtools weiyun wey whalebird whatsapp wickrme winds wire wireshark wireshark-chmodbpf wondershare-filmora wordpresscom wpsoffice wrike wwdc xamarin-ios xamarin-mac xaos xiami xmind-zen yam-display yandex-disk yate youdaonote zalo zeplin zettelkasten zoho-mail zoomus zoomus-outlook-plugin zulip zulu ==> Deleted Casks 33-rpm bforartists colorpicker-rcwebcolorpicker desktop-presenter diptrace dradio f-secure-anti-virus fdr gog-downloader invisorql iringg joshaven-winbox luminetmonitor manopen muzie raptor rcdefaultapp remembear rumpus safe-exam-browser screentray spectacularity strongvpn-client tap textricator tiat twelf Warning: hub 2.14.2 already installed Error: macvim not installed Warning: the_silver_searcher 2.2.0 already installed Warning: tmux 3.0a_1 already installed Warning: yarn 1.22.4 already installed ==> Upgrading 6 outdated packages: bat 0.13.0 -> 0.13.0_1 fzf 0.21.0-1 -> 0.21.1 github/gh/gh 0.6.2 -> 0.6.4 git 2.26.0 -> 2.26.1 heroku/brew/heroku 7.39.1 -> 7.39.2 artsy/formulas/hokusai 0.5.7 -> 0.5.8 ==> Upgrading bat 0.13.0 -> 0.13.0_1 ==> Downloading https://homebrew.bintray.com/bottles/bat-0.13.0_1.catalina.bottle.tar.gz ==> Downloading from https://akamai.bintray.com/4d/4d4d8e88d1ebff5c953dff489973597015cb742a89c8c102e79f8598e239f0c9?__gda__=exp=1586959029~hmac=94abfe1397c8164039965ae4f7eb3ebf6bee8d2cfd92fecdbade7b6997f62546&response-content-disposition=attachment%3Bfilename%3D%22bat-0.13.0_1.catalina.bottle.tar.gz%22&response-content-type=application%2Fgzip&requestInfo=U2FsdGVkX19tzvbPvGjl3y2PRVlhUV1AUdhL-zZ5zDFQ_ZZNRU2RLqiukvFGOX2dZONAC0ezFBJpic_ty73jyHmv_NBQbJa75SPtB7xw0r0m3NcH7SdfBxHu8HD5G2rRGie3Ze9TjRWWVpTNFJlY9w&response-X-Checksum-Sha1=397452f7b8898b9cbbc2ea0607c433653688ceb1&response-X-Checksum-Sha2=4d4d8e88d1ebff5c953dff489973597015cb742a89c8c102e79f8598e239f0c9 ==> Pouring bat-0.13.0_1.catalina.bottle.tar.gz 🍺 /usr/local/Cellar/bat/0.13.0_1: 8 files, 4.5MB Removing: /usr/local/Cellar/bat/0.13.0... (8 files, 4.5MB) ==> Upgrading fzf 0.21.0-1 -> 0.21.1 ==> Downloading https://homebrew.bintray.com/bottles/fzf-0.21.1.catalina.bottle.tar.gz ==> Downloading from https://akamai.bintray.com/73/733f79496c3246979ca05eeb5677a5fd9e8ec532e69e8b2012102cacddba8ae6?__gda__=exp=1586959031~hmac=902d6d92638eabdf8c4b24bcd76aa7819e24a7b7c8125420cb5632a26ec0f526&response-content-disposition=attachment%3Bfilename%3D%22fzf-0.21.1.catalina.bottle.tar.gz%22&response-content-type=application%2Fgzip&requestInfo=U2FsdGVkX1_wQI1zxifYFIwhMiPLHzzGKKoQPCT_hB5EFanhsMDfFOvYIGV29TAZ1gbFuX3rcFF2ZjARoStaBB7bO7wSWEIdQ1M8kHwH4NTmBGnLE8Y7lHbPHdDiiXgMcO4JPv5VEuQUOR2n5zsWOA&response-X-Checksum-Sha1=8a01aa31b930303e5211f8ebdf2be11cc079f355&response-X-Checksum-Sha2=733f79496c3246979ca05eeb5677a5fd9e8ec532e69e8b2012102cacddba8ae6 ==> Pouring fzf-0.21.1.catalina.bottle.tar.gz ==> Caveats To install useful keybindings and fuzzy completion: /usr/local/opt/fzf/install To use fzf in Vim, add the following line to your .vimrc: set rtp+=/usr/local/opt/fzf ==> Summary 🍺 /usr/local/Cellar/fzf/0.21.1: 17 files, 3.7MB Removing: /usr/local/Cellar/fzf/0.21.0-1... (17 files, 3.7MB) Removing: /Users/jon/Library/Caches/Homebrew/fzf--0.21.0-1.catalina.bottle.tar.gz... (2.0MB) ==> Upgrading github/gh/gh 0.6.2 -> 0.6.4 ==> Downloading https://github.com/cli/cli/releases/download/v0.6.4/gh_0.6.4_macOS_amd64.tar.gz ==> Downloading from https://github-production-release-asset-2e65be.s3.amazonaws.com/212613049/25e31200-7452-11ea-84d9-0fb78bf6944c?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200415%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200415T134324Z&X-Amz-Expires=300&X-Amz-Signature=4380ed9293b47c9072fe274f97848fa24d2e1fc7bcbb62d0b8be30fb04a989a0&X-Amz-SignedHeaders=host&actor_id=0&repo_id=212613049&response-content-disposition=attachment%3B%20filename%3Dgh_0.6.4_macOS_amd64.tar.gz&response-content-type=application%2Foctet-stream ==> Caveats Bash completion has been installed to: /usr/local/etc/bash_completion.d zsh completions have been installed to: /usr/local/share/zsh/site-functions ==> Summary 🍺 /usr/local/Cellar/gh/0.6.4: 9 files, 17.1MB, built in 7 seconds Removing: /usr/local/Cellar/gh/0.6.2... (9 files, 17MB) Removing: /Users/jon/Library/Caches/Homebrew/gh--0.6.2.tar.gz... (5.9MB) ==> Upgrading git 2.26.0 -> 2.26.1 ==> Downloading https://homebrew.bintray.com/bottles/git-2.26.1.catalina.bottle.tar.gz ==> Downloading from https://akamai.bintray.com/87/8760f61f38f7fbf798b45af291edbe634380ad0fcd565fa595e244ee7627e560?__gda__=exp=1586959041~hmac=6618195c4c08936cd6cf47d18363170356fd795b2eebd5e67a39f749e9299b29&response-content-disposition=attachment%3Bfilename%3D%22git-2.26.1.catalina.bottle.tar.gz%22&response-content-type=application%2Fgzip&requestInfo=U2FsdGVkX1-UqENIAAbZrLa4U9avEeoW84ikHwUnKtGcVq2LcqdPRlOygGNz5gFk0MHdRnO_LJ7TyyqJ3lC3vXU6dDePW-utLtR3Zrw146e2CcTegGOeU-2BysZ8ZA8xbdmPLFgGAKL7xAsR45k_BQ&response-X-Checksum-Sha1=e983e82c780ebeca2c5ed5ad6e8a952c20a474da&response-X-Checksum-Sha2=8760f61f38f7fbf798b45af291edbe634380ad0fcd565fa595e244ee7627e560 ==> Pouring git-2.26.1.catalina.bottle.tar.gz ==> Caveats The Tcl/Tk GUIs (e.g. gitk, git-gui) are now in the `git-gui` formula. Bash completion has been installed to: /usr/local/etc/bash_completion.d zsh completions and functions have been installed to: /usr/local/share/zsh/site-functions Emacs Lisp files have been installed to: /usr/local/share/emacs/site-lisp/git ==> Summary 🍺 /usr/local/Cellar/git/2.26.1: 1,460 files, 44.8MB Removing: /usr/local/Cellar/git/2.26.0... (1,450 files, 44.3MB) ==> Upgrading heroku/brew/heroku 7.39.1 -> 7.39.2 ==> Downloading https://cli-assets.heroku.com/heroku-v7.39.2/heroku-v7.39.2.tar.xz ==> Caveats To use the Heroku CLI's autocomplete -- Via homebrew's shell completion: 1) Follow homebrew's install instructions https://docs.brew.sh/Shell-Completion NOTE: For zsh, as the instructions mention, be sure compinit is autoloaded and called, either explicitly or via a framework like oh-my-zsh. 2) Then run $ heroku autocomplete --refresh-cache OR Use our standalone setup: 1) Run and follow the install steps: $ heroku autocomplete Bash completion has been installed to: /usr/local/etc/bash_completion.d zsh completions have been installed to: /usr/local/share/zsh/site-functions ==> Summary 🍺 /usr/local/Cellar/heroku/7.39.2: 18,762 files, 46.6MB, built in 27 seconds Removing: /usr/local/Cellar/heroku/7.39.1... (37,459 files, 133.4MB) Removing: /Users/jon/Library/Caches/Homebrew/heroku--7.39.1.tar.xz... (6.6MB) ==> Upgrading artsy/formulas/hokusai 0.5.7 -> 0.5.8 ==> Downloading https://artsy-provisioning-public.s3.amazonaws.com/hokusai/hokusai-0.5.8-Darwin-x86_64.tar.gz 🍺 /usr/local/Cellar/hokusai/0.5.8: 3 files, 12.8MB, built in 5 seconds Removing: /usr/local/Cellar/hokusai/0.5.7... (3 files, 11MB) Removing: /Users/jon/Library/Caches/Homebrew/hokusai--0.5.7.tar.gz... (10.9MB) ==> Checking for dependents of upgraded formulae... ==> No dependents found! ==> Caveats ==> fzf To install useful keybindings and fuzzy completion: /usr/local/opt/fzf/install To use fzf in Vim, add the following line to your .vimrc: set rtp+=/usr/local/opt/fzf ==> gh Bash completion has been installed to: /usr/local/etc/bash_completion.d zsh completions have been installed to: /usr/local/share/zsh/site-functions ==> git The Tcl/Tk GUIs (e.g. gitk, git-gui) are now in the `git-gui` formula. Bash completion has been installed to: /usr/local/etc/bash_completion.d zsh completions and functions have been installed to: /usr/local/share/zsh/site-functions Emacs Lisp files have been installed to: /usr/local/share/emacs/site-lisp/git ==> heroku To use the Heroku CLI's autocomplete -- Via homebrew's shell completion: 1) Follow homebrew's install instructions https://docs.brew.sh/Shell-Completion NOTE: For zsh, as the instructions mention, be sure compinit is autoloaded and called, either explicitly or via a framework like oh-my-zsh. 2) Then run $ heroku autocomplete --refresh-cache OR Use our standalone setup: 1) Run and follow the install steps: $ heroku autocomplete Bash completion has been installed to: /usr/local/etc/bash_completion.d zsh completions have been installed to: /usr/local/share/zsh/site-functions + set -e + asdf update Update command disabled. Please use the package manager that you used to install asdf to upgrade asdf. + nuke_modules /Users/jon/code/monolithium/node_modules /Users/jon/code/metaphysics/node_modules /Users/jon/code/forty-time-management/typescript/node_modules /Users/jon/code/eigen/node_modules /Users/jon/code/force/node_modules 2.7G cleaned up ```

replug.log

``` + PlugClean Searching for invalid plugins in /Users/jon/.vim/plugs [=========================================================] Already clean. + PlugInstall Updated. Elapsed time: 2.162061 sec. [========================================================] - Finishing ... Done! - bufkill.vim: Already installed - fzf: Already installed - vim-hashrocket: Already installed - vim-rake: Already installed - vim-turbux: Already installed - vim-pug: Already installed - vim-ruby: Already installed - vim-textobj-user: Already installed - vim-scriptease: Already installed - vim-json: Already installed - vim-rsi: Already installed - tslime.vim: Already installed - vim-vividchalk: Already installed - vim-coffee-script: Already installed - vim-rhubarb: Already installed - vim-markdown: Already installed - vim-eunuch: Already installed - vim-vinegar: Already installed - vim-repeat: Already installed - vim-slim: Already installed - vim-git: Already installed - vim-commentary: Already installed - vim-blockle: Already installed - vim-endwise: Already installed - supertab: Already installed - vim-sleuth: Already installed - ack.vim: Already installed - vim-spacejam: Already installed - bufexplorer.zip: Already installed - vim-railscasts: Already installed - vim-unimpaired: Already installed - vim-headfirst: Already installed - vim-bdubs: Already installed - vim-rails: Already installed - vim-weefactor: Already installed - pgsql.vim: Already installed - vim-sensible: Already installed - gitv: Already installed - vim-irblack: Already installed - vim-fugitive: Already installed - vim-textobj-rubyblock: Already installed - tabular: Already installed - vim-speeddating: Already installed - ale: Already installed - vim-bundler: Already installed - vim-haml: Already installed - splitjoin.vim: Already installed - vim-jsx: Already installed - vim-abolish: Already installed - vim-projectionist: Already installed - vim-ragtag: Already installed - vim-surround: Already installed - typescript-vim: Already installed - vim-javascript: Already installed - vim-cucumber: Already installed - vim-styled-components: Already installed + PlugUpdate Updated. Elapsed time: 4.494359 sec. [========================================================] - Finishing ... Done! - bufkill.vim: Already up to date. - fzf: create mode 100644 .rubocop.yml - vim-hashrocket: Already up to date. - vim-rake: Already up to date. - vim-turbux: Already up to date. - vim-pug: Already up to date. - vim-ruby: 1 file changed, 2 insertions(+), 7 deletions(-) - vim-textobj-user: Already up to date. - vim-scriptease: Already up to date. - vim-json: Already up to date. - vim-rsi: Already up to date. - tslime.vim: Already up to date. - vim-vividchalk: Already up to date. - vim-coffee-script: Already up to date. - vim-rhubarb: Already up to date. - vim-markdown: Already up to date. - vim-eunuch: Already up to date. - vim-vinegar: Already up to date. - vim-repeat: Already up to date. - vim-slim: Already up to date. - vim-git: Already up to date. - vim-commentary: Already up to date. - vim-blockle: Already up to date. - vim-endwise: Already up to date. - supertab: Already up to date. - vim-sleuth: Already up to date. - ack.vim: Already up to date. - vim-spacejam: Already up to date. - bufexplorer.zip: Already up to date. - vim-railscasts: Already up to date. - vim-unimpaired: Already up to date. - vim-headfirst: Already up to date. - vim-bdubs: Already up to date. - vim-rails: Already up to date. - vim-weefactor: Already up to date. - pgsql.vim: Already up to date. - vim-sensible: Already up to date. - gitv: Already up to date. - vim-irblack: Already up to date. - vim-fugitive: 3 files changed, 109 insertions(+), 105 deletions(-) - vim-textobj-rubyblock: Already up to date. - tabular: Already up to date. - vim-speeddating: Already up to date. - ale: Already up to date. - vim-bundler: Already up to date. - vim-haml: Already up to date. - splitjoin.vim: 3 files changed, 23 insertions(+), 3 deletions(-) - vim-jsx: Already up to date. - vim-abolish: Already up to date. - vim-projectionist: Already up to date. - vim-ragtag: Already up to date. - vim-surround: Already up to date. - typescript-vim: Already up to date. - vim-javascript: 1 file changed, 1 insertion(+), 1 deletion(-) - vim-cucumber: Already up to date. - vim-styled-components: Already up to date. + PlugDiff 5 plugin(s) updated. [========================================================] Last update: ------------ - fzf: * dea206b [zsh-completion] Fix error with backslash-prefixed commands (3 days ago) * 5deaf58 Run rubocop --auto-correct --disable-uncorrectable (#1967) (3 days ago) * 15e2952 [fzf-tmux] Allow positional flags (9 days ago) * a9fba1c Fix typo (10 days ago) * 71e573d [vim] Add 'tmux' layout option to use fzf-tmux (10 days ago) * 334a4fa (tag: 0.21.1) 0.21.1 (12 days ago) * 21f94ee [fzf-tmux] Split zsh variable expansion for old zsh (12 days ago) * 540bfd7 [fzf-tmux] Fall back to plain fzf when split failed (12 days ago) * 8fbed2b [fzf-tmux] Use $PWD instead of #{pane_current_path} (12 days ago) * aa17510 [fzf-tmux] Set default horizontal margin (12 days ago) * bf65e8c [fzf-tmux] Add option to start fzf in tmux popup window (12 days ago) * 0f5c6e8 [vim] Fix issue with multiple popups (#1927) (2 weeks ago) * b1b916c [zsh] Ensure that fzf code always parses the same way (#1944) (2 weeks ago) * a6a732e Update AtomicBool to use atomic memory operation (#1939) (2 weeks ago) * a5c2f28 Fix failing test case (2 weeks ago) * 18261fe [shell] Update CTRL-R to remove duplicate commands (2 weeks ago) - splitjoin.vim: * 4aeb3b5 Don't clobber search register on haml split (7 days ago) * 1a123e5 Minor Rust fix (10 days ago) - vim-fugitive: * 85e2c73 Favor :Ggrep over :Git grep (3 days ago) * f5391f0 Fix race condition resuming job after editor invocation (3 days ago) * 53dd9b3 Encapsulate update-index --index-info (7 days ago) * 792f51a Leverage Git config retrieval helpers (7 days ago) * a9bf9de Move Quickfix section under Git section (7 days ago) - vim-javascript: * c396615 Fix matching of jsClassProperty without an initial value (#1202) (2 days ago) - vim-ruby: * 3db19e2 Fix namespace conflict (3 days ago) + PlugUpgrade diff --git a/rcm/vim/autoload/plug.vim b/rcm/vim/autoload/plug.vim index ac14332..bc02f03 100644 --- a/rcm/vim/autoload/plug.vim +++ b/rcm/vim/autoload/plug.vim @@ -372,7 +372,7 @@ endfunction function! s:git_version_requirement(...) if !exists('s:git_version') - let s:git_version = map(split(split(s:system('git --version'))[2], '\.'), 'str2nr(v:val)') + let s:git_version = map(split(split(s:system(['git', '--version']))[2], '\.'), 'str2nr(v:val)') endif return s:version_requirement(s:git_version, a:000) endfunction @@ -864,8 +864,15 @@ endfunction function! s:chsh(swap) let prev = [&shell, &shellcmdflag, &shellredir] - if !s:is_win && a:swap - set shell=sh shellredir=>%s\ 2>&1 + if !s:is_win + set shell=sh + endif + if a:swap + if &shell =~# 'powershell\.exe' || &shell =~# 'pwsh$' + let &shellredir = '2>&1 | Out-File -Encoding UTF8 %s' + elseif &shell =~# 'sh' || &shell =~# 'cmd\.exe' + set shellredir=>%s\ 2>&1 + endif endif return prev endfunction @@ -898,7 +905,7 @@ function! s:regress_bar() endfunction function! s:is_updated(dir) - return !empty(s:system_chomp('git log --pretty=format:"%h" "HEAD...HEAD@{1}"', a:dir)) + return !empty(s:system_chomp(['git', 'log', '--pretty=format:%h', 'HEAD...HEAD@{1}'], a:dir)) endfunction function! s:do(pull, force, todo) @@ -961,7 +968,7 @@ endfunction function! s:checkout(spec) let sha = a:spec.commit - let output = s:system('git rev-parse HEAD', a:spec.dir) + let output = s:system(['git', 'rev-parse', 'HEAD'], a:spec.dir) if !v:shell_error && !s:hash_match(sha, s:lines(output)[0]) let output = s:system( \ 'git fetch --depth 999999 && git checkout '.plug#shellescape(sha).' --', a:spec.dir) @@ -1079,11 +1086,16 @@ function! s:update_impl(pull, force, args) abort normal! 2G silent! redraw - let s:clone_opt = get(g:, 'plug_shallow', 1) ? - \ '--depth 1' . (s:git_version_requirement(1, 7, 10) ? ' --no-single-branch' : '') : '' + let s:clone_opt = [] + if get(g:, 'plug_shallow', 1) + call extend(s:clone_opt, ['--depth', '1']) + if s:git_version_requirement(1, 7, 10) + call add(s:clone_opt, '--no-single-branch') + endif + endif if has('win32unix') || has('wsl') - let s:clone_opt .= ' -c core.eol=lf -c core.autocrlf=input' + call extend(s:clone_opt, ['-c', 'core.eol=lf', '-c', 'core.autocrlf=input']) endif let s:submodule_opt = s:git_version_requirement(2, 8) ? ' --jobs='.threads : '' @@ -1264,7 +1276,7 @@ function! s:job_cb(fn, job, ch, data) endfunction function! s:nvim_cb(job_id, data, event) dict abort - return a:event == 'stdout' ? + return (a:event == 'stdout' || a:event == 'stderr') ? \ s:job_cb('s:job_out_cb', self, 0, join(a:data, "\n")) : \ s:job_cb('s:job_exit_cb', self, 0, a:data) endfunction @@ -1273,12 +1285,15 @@ function! s:spawn(name, cmd, opts) let job = { 'name': a:name, 'running': 1, 'error': 0, 'lines': [''], \ 'new': get(a:opts, 'new', 0) } let s:jobs[a:name] = job - let cmd = has_key(a:opts, 'dir') ? s:with_cd(a:cmd, a:opts.dir, 0) : a:cmd - let argv = s:is_win ? ['cmd', '/s', '/c', '"'.cmd.'"'] : ['sh', '-c', cmd] if s:nvim + if has_key(a:opts, 'dir') + let job.cwd = a:opts.dir + endif + let argv = a:cmd call extend(job, { \ 'on_stdout': function('s:nvim_cb'), + \ 'on_stderr': function('s:nvim_cb'), \ 'on_exit': function('s:nvim_cb'), \ }) let jid = s:plug_call('jobstart', argv, job) @@ -1291,9 +1306,16 @@ function! s:spawn(name, cmd, opts) \ 'Invalid arguments (or job table is full)'] endif elseif s:vim8 + let cmd = join(map(copy(a:cmd), 'plug#shellescape(v:val, {"script": 0})')) + if has_key(a:opts, 'dir') + let cmd = s:with_cd(cmd, a:opts.dir, 0) + endif + let argv = s:is_win ? ['cmd', '/s', '/c', '"'.cmd.'"'] : ['sh', '-c', cmd] let jid = job_start(s:is_win ? join(argv, ' ') : argv, { \ 'out_cb': function('s:job_cb', ['s:job_out_cb', job]), + \ 'err_cb': function('s:job_cb', ['s:job_out_cb', job]), \ 'exit_cb': function('s:job_cb', ['s:job_exit_cb', job]), + \ 'err_mode': 'raw', \ 'out_mode': 'raw' \}) if job_status(jid) == 'run' @@ -1304,7 +1326,7 @@ function! s:spawn(name, cmd, opts) let job.lines = ['Failed to start job'] endif else - let job.lines = s:lines(call('s:system', [cmd])) + let job.lines = s:lines(call('s:system', has_key(a:opts, 'dir') ? [a:cmd, a:opts.dir] : [a:cmd])) let job.error = v:shell_error != 0 let job.running = 0 endif @@ -1401,8 +1423,14 @@ while 1 " Without TCO, Vim stack is bound to explode let [error, _] = s:git_validate(spec, 0) if empty(error) if pull - let fetch_opt = (has_tag && !empty(globpath(spec.dir, '.git/shallow'))) ? '--depth 99999999' : '' - call s:spawn(name, printf('git fetch %s %s 2>&1', fetch_opt, prog), { 'dir': spec.dir }) + let cmd = ['git', 'fetch'] + if has_tag && !empty(globpath(spec.dir, '.git/shallow')) + call extend(cmd, ['--depth', '99999999']) + endif + if !empty(prog) + call add(cmd, prog) + endif + call s:spawn(name, cmd, { 'dir': spec.dir }) else let s:jobs[name] = { 'running': 0, 'lines': ['Already installed'], 'error': 0 } endif @@ -1410,12 +1438,14 @@ while 1 " Without TCO, Vim stack is bound to explode let s:jobs[name] = { 'running': 0, 'lines': s:lines(error), 'error': 1 } endif else - call s:spawn(name, - \ printf('git clone %s %s %s %s 2>&1', - \ has_tag ? '' : s:clone_opt, - \ prog, - \ plug#shellescape(spec.uri, {'script': 0}), - \ plug#shellescape(s:trim(spec.dir), {'script': 0})), { 'new': 1 }) + let cmd = ['git', 'clone'] + if !has_tag + call extend(cmd, s:clone_opt) + endif + if !empty(prog) + call add(cmd, prog) + endif + call s:spawn(name, extend(cmd, [spec.uri, s:trim(spec.dir)]), { 'new': 1 }) endif if !s:jobs[name].running @@ -1452,7 +1482,7 @@ G_NVIM = vim.eval("has('nvim')") == '1' G_PULL = vim.eval('s:update.pull') == '1' G_RETRIES = int(vim.eval('get(g:, "plug_retries", 2)')) + 1 G_TIMEOUT = int(vim.eval('get(g:, "plug_timeout", 60)')) -G_CLONE_OPT = vim.eval('s:clone_opt') +G_CLONE_OPT = ' '.join(vim.eval('s:clone_opt')) G_PROGRESS = vim.eval('s:progress_opt(1)') G_LOG_PROB = 1.0 / int(vim.eval('s:update.threads')) G_STOP = thr.Event() @@ -1989,7 +2019,7 @@ function! s:update_ruby() end } if VIM::evaluate('s:mac_gui') == 1 - clone_opt = VIM::evaluate('s:clone_opt') + clone_opt = VIM::evaluate('s:clone_opt').join(' ') progress = VIM::evaluate('s:progress_opt(1)') nthr.times do mtx.synchronize do @@ -2055,7 +2085,23 @@ function! s:shellesc_sh(arg) return "'".substitute(a:arg, "'", "'\\''", 'g')."'" endfunction +" Escape the shell argument based on the shell. +" Vim and Neovim's shellescape() are insufficient. +" 1. shellslash determines whether to use single/double quotes. +" Double-quote escaping is fragile for cmd.exe. +" 2. It does not work for powershell. +" 3. It does not work for *sh shells if the command is executed +" via cmd.exe (ie. cmd.exe /c sh -c command command_args) +" 4. It does not support batchfile syntax. +" +" Accepts an optional dictionary with the following keys: +" - shell: same as Vim/Neovim 'shell' option. +" If unset, fallback to 'cmd.exe' on Windows or 'sh'. +" - script: If truthy and shell is cmd.exe, escape for batchfile syntax. function! plug#shellescape(arg, ...) + if a:arg =~# '^[A-Za-z0-9_/:.-]$' + return a:arg + endif let opts = a:0 > 0 && type(a:1) == s:TYPE.dict ? a:1 : {} let shell = get(opts, 'shell', s:is_win ? 'cmd.exe' : 'sh') let script = get(opts, 'script', 1) @@ -2105,8 +2151,24 @@ function! s:system(cmd, ...) let batchfile = '' try let [sh, shellcmdflag, shrd] = s:chsh(1) - let cmd = a:0 > 0 ? s:with_cd(a:cmd, a:1) : a:cmd - if s:is_win + if type(a:cmd) == s:TYPE.list + " Neovim's system() supports list argument to bypass the shell + " but it cannot set the working directory for the command. + " Assume that the command does not rely on the shell. + if has('nvim') && a:0 == 0 + return system(a:cmd) + endif + let cmd = join(map(copy(a:cmd), 'plug#shellescape(v:val, {"shell": &shell, "script": 0})')) + if &shell =~# 'powershell\.exe' + let cmd = '& ' . cmd + endif + else + let cmd = a:cmd + endif + if a:0 > 0 + let cmd = s:with_cd(cmd, a:1, type(a:cmd) != s:TYPE.list) + endif + if s:is_win && type(a:cmd) != s:TYPE.list let [batchfile, cmd] = s:batchfile(cmd) endif return system(cmd) @@ -2159,9 +2221,10 @@ function! s:git_validate(spec, check_branch) \ branch, a:spec.branch) endif if empty(err) - let [ahead, behind] = split(s:lastline(s:system(printf( - \ 'git rev-list --count --left-right HEAD...origin/%s', - \ a:spec.branch), a:spec.dir)), '\t') + let [ahead, behind] = split(s:lastline(s:system([ + \ 'git', 'rev-list', '--count', '--left-right', + \ printf('HEAD...origin/%s', a:spec.branch) + \ ], a:spec.dir)), '\t') if !v:shell_error && ahead if behind " Only mention PlugClean if diverged, otherwise it's likely to be @@ -2185,7 +2248,9 @@ endfunction function! s:rm_rf(dir) if isdirectory(a:dir) - call s:system((s:is_win ? 'rmdir /S /Q ' : 'rm -rf ') . plug#shellescape(a:dir)) + call s:system(s:is_win + \ ? 'rmdir /S /Q '.plug#shellescape(a:dir) + \ : ['rm', '-rf', a:dir]) endif endfunction @@ -2294,7 +2359,7 @@ function! s:upgrade() let new = tmp . '/plug.vim' try - let out = s:system(printf('git clone --depth 1 %s %s', plug#shellescape(s:plug_src), plug#shellescape(tmp))) + let out = s:system(['git', 'clone', '--depth', '1', s:plug_src, tmp]) if v:shell_error return s:err('Error upgrading vim-plug: '. out) endif @@ -2489,11 +2554,13 @@ function! s:diff() call s:append_ul(2, origin ? 'Pending updates:' : 'Last update:') for [k, v] in plugs let range = origin ? '..origin/'.v.branch : 'HEAD@{1}..' - let cmd = 'git log --graph --color=never ' - \ . (s:git_version_requirement(2, 10, 0) ? '--no-show-signature ' : '') - \ . join(map(['--pretty=format:%x01%h%x01%d%x01%s%x01%cr', range], 'plug#shellescape(v:val)')) + let cmd = ['git', 'log', '--graph', '--color=never'] + if s:git_version_requirement(2, 10, 0) + call add(cmd, '--no-show-signature') + endif + call extend(cmd, ['--pretty=format:%x01%h%x01%d%x01%s%x01%cr', range]) if has_key(v, 'rtp') - let cmd .= ' -- '.plug#shellescape(v.rtp) + call extend(cmd, ['--', v.rtp]) endif let diff = s:system_chomp(cmd, v.dir) if !empty(diff) @@ -2561,7 +2628,7 @@ function! s:snapshot(force, ...) abort let names = sort(keys(filter(copy(g:plugs), has_key(v:val, "uri") && !has_key(v:val, "commit") && isdirectory(v:val.dir)'))) for name in reverse(names) - let sha = s:system_chomp('git rev-parse --short HEAD', g:plugs[name].dir) + let sha = s:system_chomp(['git', 'rev-parse', '--short', 'HEAD'], g:plugs[name].dir) if !empty(sha) call append(anchor, printf("silent! let g:plugs['%s'].commit = '%s'", name, sha)) redraw + replug done ```