Skip to content

Instantly share code, notes, and snippets.

View linknum23's full-sized avatar

Lincoln Lorenz linknum23

  • MicroNova
  • United States
View GitHub Profile
@linknum23
linknum23 / early_exit.bash
Created July 2, 2018 16:29
exit or return in bash, handles sourced and direct execution
# parameter tests
if [ INSERT_TEST_HERE ] ; then
return 2>/dev/null || exit
fi
# do real stuff
@linknum23
linknum23 / find_and_prepend.bash
Last active October 14, 2019 20:14
Advanced find and replace/prepend with sed
#!/bin/bash
# these ideas was used during conversion from C code to C++
directory_whitelist="dir1 dir2" # directories to replace files in
for dir in $(directory_whitelist); do
pushd $dir;
# do replacement but use prefix to make sure replacement only happens once (in this case prepending std::)
# \1 in the replace portion of the sed command is used to keep the character before the match (typically a space or '(')
@linknum23
linknum23 / test_list_to_dict_lookup.launch
Last active December 11, 2019 13:54
Roslaunch combine dictionary lookups from list
<?xml version="1.0"?>
<launch>
<!-- List of things to lookup in dict, in our case sensors -->
<arg name="sensors" value="s1,s2" />
<!-- Actual python dictionary. In our case this maps sensors to topics -->
<arg name="sensor_topics" value="{
's1':'t1',
's2':'t2',
's3':'t3'
}" />
@linknum23
linknum23 / runx
Last active July 13, 2020 16:35
bash helper, run a command x number of times
#!/bin/bash
# run bash command x number of times
# ie. 'runx 10 echo "Hello"' will print Hello 10 times
# partially from: https://stackoverflow.com/questions/3737740/is-there-a-better-way-to-run-a-command-n-times-in-bash
function runx() {
for _ in $(seq "$1"); do
eval ${*:2}
done
}
grep -zo "START.*END" File
@linknum23
linknum23 / binary2header.bash
Last active July 30, 2020 18:27
Binary file to C array (for including the binary as a C array in a header file)
#!/bin/bash
xxd -i binary_file > binary_file_as_c_header.h
@linknum23
linknum23 / app.py
Last active May 21, 2021 19:28 — forked from vigneshjs/app.py
Adding multiple request and response examples to swagger docs in fastAPI
"""
FastAPI uses pydantic models to validate the API request body and also generate the swagger documentation. Since the schema
generated by pydantic only comply to JSON schema specification and not to openAPI specification, swagger documentation
generated from pydantic models do not support adding multiple examples for a request body.
Ref: https://fastapi.tiangolo.com/tutorial/schema-extra-example/#technical-details
In the following code, I have extended fastAPI openAPI schema to include multiple request body examples.
"""
import json
@linknum23
linknum23 / tagreader-poe.yaml
Last active September 3, 2024 21:43
Song Tag reader for amplipro demo using a ESP32-POE and reference code from Adonno
# POE NFG Tag reader
# this is a slight modification of https://github.com/adonno/tagreader to use POE with the ESP32-POE dev board
substitutions:
name: tagreader-poe
friendly_name: TagReaderPOE
esphome:
name: $name
friendly_name: $friendly_name
# Automatically add the mac address to the name