Datediff function to return the number of days between two dates. It's not too robust, but I got it working on MacOS and Linux, mostly to accommodate the differences between GNU Util date and HomeBrew BSD date...
datediff() {
date --version >> /dev/null 2>&1
RETVAL=$?
if [ -e /usr/local/bin/gdate ] && [ $RETVAL -ne 0 ] ;
then
DATEBIN=/usr/local/bin/gdate
else
DATEBIN=`which date`
fi
d1=$($DATEBIN -d "$1" +%s)
d2=$($DATEBIN -d "$2" +%s)
echo $(( (d1 - d2) / 86400 )) days
}
I'm don't think any of this stuff will be interesting to anyone else, but it's just a place for me to write down things I want to remember. :-)
Thursday, April 23, 2020
GNU date in MacOS
The GNU date utility is provided in the HomeBrew package coreutils as gdate. Install with HomeBrew.
[~]
scott@bargamac$ HOMEBREW_NO_AUTO_UPDATE=1 brew install coreutils
==> Downloading https://homebrew.bintray.com/bottles/coreutils-8.32.mojave.bottle.tar.gz
==> Downloading from https://akamai.bintray.com/5d/5da6cb9dbc0a8144480dde2fb78eb0a5a1710490afc3697174f7e261ec69763f?__gda__=exp=1587689482~hmac=42c0483b851c
######################################################################## 100.0%
==> Pouring coreutils-8.32.mojave.bottle.tar.gz
==> Caveats
Commands also provided by macOS have been installed with the prefix "g".
If you need to use these commands with their normal names, you
can add a "gnubin" directory to your PATH from your bashrc like:
PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
==> Summary
🍺 /usr/local/Cellar/coreutils/8.32: 476 files, 8.8MB
Note the path to all the coreutils which can be added to your system $PATH
[~]
scott@bargamac$ HOMEBREW_NO_AUTO_UPDATE=1 brew install coreutils
==> Downloading https://homebrew.bintray.com/bottles/coreutils-8.32.mojave.bottle.tar.gz
==> Downloading from https://akamai.bintray.com/5d/5da6cb9dbc0a8144480dde2fb78eb0a5a1710490afc3697174f7e261ec69763f?__gda__=exp=1587689482~hmac=42c0483b851c
######################################################################## 100.0%
==> Pouring coreutils-8.32.mojave.bottle.tar.gz
==> Caveats
Commands also provided by macOS have been installed with the prefix "g".
If you need to use these commands with their normal names, you
can add a "gnubin" directory to your PATH from your bashrc like:
PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
==> Summary
🍺 /usr/local/Cellar/coreutils/8.32: 476 files, 8.8MB
Note the path to all the coreutils which can be added to your system $PATH
Tuesday, December 17, 2019
Remove tab bar from Firefox
As of FF 71.0 on macOS Mojave, edit the following file (creating it and its directory if they don't exist)...
Library/Application Support/Firefox/Profiles///chrome/userChrome.css
and add this snippet...
/* hides the native tabs
*/
#TabsToolbar {
visibility: collapse;
}
Restart FF
Library/Application Support/Firefox/Profiles//
and add this snippet...
/* hides the native tabs
*/
#TabsToolbar {
visibility: collapse;
}
Restart FF
Thursday, November 14, 2019
Installing and Updating Node.js
Install node.js and manage versions with nvm
Add to .bash_profile...
Add to .bash_profile...
#---
## Replaces current node with latest, keeping installed global packages
#---
function nvm-upgrade {
CURR=$(nvm current)
nvm install node --reinstall-packages-from=node
nvm uninstall $CURR
}
Wednesday, October 23, 2019
Thursday, October 10, 2019
Docker CLI commands, most used by me
Docker command
docker build - build an image from Dockerfile
docker container - manage one or more docker containers, takes a second argument (ps, rm, etc...)
docker exec - run a command in a running container
docker images - list all docker images
docker info - display a ton of system info for all docker containers
docker port - list port mappings, possibly for a single container
docker ps - list all docker containers
docker rm - remove one or more docker containers
docker rmi - remove one or more docker images
docker run - run d command in a new docker container
Docker command
docker-compose build - build or rebuild services
docker-compose exec - execute a command in a running container
docker-compose help - get help in
docker-compose images - list images
docker-compose ps - list containers
docker-compose up - build and start containers
docker-compose version - docker-compose version number
Docker command
docker-machine create - create a new virtual machine
docker-machine env - display the commands to set up the environment for the Docker client
docker-machine kill - kill a machine
docker-machine ls - list all machines
docker-machine regenerate-certs - regenerate TLS certs for a machine
docker-machine restart - restart a machine
docker-machine rm - remove a machine
docker-machine ssh - log into or run a command on a machine with ssh
docker-machine start - start a machine
docker-machine version - show the docker machine version number
docker, used when managing individual containers on a docker engine. It is the client command line to access the docker daemon APIdocker build - build an image from Dockerfile
docker container - manage one or more docker containers, takes a second argument (ps, rm, etc...)
docker exec - run a command in a running container
docker images - list all docker images
docker info - display a ton of system info for all docker containers
docker port - list port mappings, possibly for a single container
docker ps - list all docker containers
docker rm - remove one or more docker containers
docker rmi - remove one or more docker images
docker run - run d command in a new docker container
Docker command
docker-compose, used to manage a multi-container application. It also moves many of the options you would enter on the docker run CLI into the docker-compose.yml file for easier reuse. It works as a front end "script" on top of the same docker API used by docker, so you can do everything docker-compose does with docker commands and a lot of shell scriptingdocker-compose build - build or rebuild services
docker-compose exec - execute a command in a running container
docker-compose help
docker-compose images - list images
docker-compose ps - list containers
docker-compose up - build and start containers
docker-compose version - docker-compose version number
Docker command
docker-machine, uses containerization to manage multiple images and containers and volumes and such: a container is basically a lightweight virtual machinedocker-machine create - create a new virtual machine
docker-machine env - display the commands to set up the environment for the Docker client
docker-machine kill - kill a machine
docker-machine ls - list all machines
docker-machine regenerate-certs - regenerate TLS certs for a machine
docker-machine restart - restart a machine
docker-machine rm - remove a machine
docker-machine ssh - log into or run a command on a machine with ssh
docker-machine start - start a machine
docker-machine version - show the docker machine version number
Monday, July 22, 2019
Removing an application manually from OS/X
After looking this up a million times, time to add it here...
- rm -rf /Applications/
APPNAME - rm -rf ~/Library/Preferences/APPFILES
- rm -rf ~/Library/Caches/APPFILES
- rm -rf ~/Library/Application\ Support/APPFILES
- rm -rf ~/Library/Logs/APPFILES
Subscribe to:
Comments (Atom)