Skip to content

Instantly share code, notes, and snippets.

Bruno Bronosky RichardBronosky

Block or report user

Report or block RichardBronosky

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@RichardBronosky
RichardBronosky / similarities.sh
Created Feb 8, 2019
Identify how similar a file is to each file in a group of others.
View similarities.sh
#!/bin/bash
fileA="$1"
shift
for fileB in "$@"; do
(
# diff once grep twice with the help of tee and stderr
diff $fileA $fileB | \
tee >(grep -cE '^< ' >&2) | \
grep -cE '^> ' >&2
@RichardBronosky
RichardBronosky / source.bash
Last active Feb 8, 2019
A collection of tools for working with JS and JSON
View source.bash
:<<'DOCS'
* This script adds to your bash shell, a collection of tools for working with JS and JSON
* To install it, cd to where ever you checkout git repos and copy-paste the following line:
dst=jtools; git clone https://gist.github.com/81a3991aa63580283bf2f3db18ecf2fb.git $dst && echo -e "\n[[ -f $(dirs +0)/$dst/source.bash ]] && source $(dirs +0)/$dst/source.bash" >> ~/.bash_profile
DOCS
# converts serialized python to JSON
p2j() { python3 -c "import json, sys; print(json.dumps(eval(sys.stdin.read())))"; }
@RichardBronosky
RichardBronosky / create_systemd_service_unit.sh
Last active Apr 10, 2019
A slightly Raspberry Pi specific Systemd service unit example.
View create_systemd_service_unit.sh
service_name="sample.service"
service_desc="My Sample Service"
service_cmd="/usr/bin/python /home/pi/sample.py"
cat > /lib/systemd/system/$service_name <<EOF
[Unit]
Description=$service_desc
After=multi-user.target
@RichardBronosky
RichardBronosky / net-check.service
Last active Jan 30, 2019
watches a URL and logs it
View net-check.service
[Unit]
Description=Network Status Monitor
After=multi-user.target
[Service]
Type=idle
WorkingDirectory=/home/pi/
ExecStart=/bin/bash -c '/usr/local/bin/net-check.sh 15 https://gist.github.com/RichardBronosky/dd13161b72284c209c5b80d88f9cdb4a/raw/acdb3e2a6e3a55055aef16580e4e613e819d1f37/random-1m.txt >> /home/pi/net-check.log'
[Install]
@RichardBronosky
RichardBronosky / get_authorized_keys.sh
Created Jan 25, 2019
Get ssh keys for Raspberry Pi from GitHub
View get_authorized_keys.sh
sudo bash <<EOF
local_user=pi
github_user=RichardBronosky
umask 077
mkdir -p ~$local_user/.ssh
curl -sSL https://github.com/${github_user}.keys >> ~$local_user/.ssh/authorized_keys
chown -R $(id -u $local_user):$(id -g $local_user) ~$local_user/.ssh
EOF
@RichardBronosky
RichardBronosky / gist:1431516cdc378484942b6e2ffb8dd073
Created Jan 24, 2019
Undestroy vim on RPI Raspbian Stretch
View gist:1431516cdc378484942b6e2ffb8dd073
# This includes some apparent redundant calls to sudo.
# They are there to make sure that no mater which user executes these commands,
# both root and pi users get files with the right permissions.
# Fix bash
sudo -u pi touch ~pi/.bashrc
( sudo tee -a /home/pi/.bashrc | sudo tee -a /root/.bashrc > /dev/null ) << 'EOF'
set -o vi
export EDITOR=vim
@RichardBronosky
RichardBronosky / watcher.sh
Created Jan 18, 2019
watcher.sh runs a comand at an internal and speaks when the status changes.
View watcher.sh
#!/bin/bash
# TODO:
# This was a 5 minute hack.
# Currently assumes presence of `say` command (macOS). Make more OS tolerant. Possibly changing *_MSG to *_CMD
usage(){
cat<<USAGE
$0 runs a comand at an internal and speaks when the status changes.
Accepts optional ENV vars: SUCCESS_MSG and FAILURE_MSG
@RichardBronosky
RichardBronosky / stand-in.sh
Last active Jan 14, 2019
This is a stand in script for any command that might take stdin or arguments and logs everything.
View stand-in.sh
#!/bin/bash
(
echo -e "\n\n #### $(date) ####"
echo -e "\n## Exported Variables"
printenv
echo -e "\n## Local Variables"
( set -o posix ; set) | grep -vf <(printenv | sed 's/^/^/;s/=.*/=/')
View npm-build.sh
#!/bin/bash
# WHY?
# Because lambda function project directories tend to have unnecessary files (like tests, docs, etc.)
# This skips the cruft and zip up only these files:
# ./node_modules (This is recursive.)
# ./*.js (This is not recursive. All *.js files in the base directory are included, subdirectories are excluded.)
# ./*.json (This is not recursive. All *.json files in the base directory are included, subdirectories are excluded.)
# Note:
You can’t perform that action at this time.