Skip to content

Commit

Permalink
add script for dumping all repositories on github.com mentioned in th…
Browse files Browse the repository at this point in the history
…is awesome list
  • Loading branch information
iDoka committed Oct 20, 2023
1 parent a89bec1 commit a543b83
Show file tree
Hide file tree
Showing 3 changed files with 335 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
archive/*
221 changes: 221 additions & 0 deletions README.url
Original file line number Diff line number Diff line change
@@ -0,0 +1,221 @@
https://github.com/jgamblin/CarHackingTools
https://github.com/CaringCaribou/caringcaribou
https://github.com/brent-stone/CAN_Reverse_Engineering
https://github.com/daedalus/carhacking
https://github.com/Cyberdefence-Lab-Murcia/ReCAN
https://github.com/v-ivanyshyn/parse_can_logs
https://github.com/linklayer/reversegear
https://github.com/schutzwerk/CANalyzat0r
https://github.com/CANToolz/CANToolz
https://github.com/collin80/GVRET
https://github.com/zombieCraig/UDSim
https://github.com/zombieCraig/uds-server
https://github.com/KartheekLade/CANalyse
https://github.com/kentindell/canhack
https://github.com/adamtheone/canDrive
https://github.com/souravbaghz/Carpunk
https://github.com/souravbaghz/CANghost
https://github.com/shipcod3/canTot
https://github.com/renault/cananalyze
https://github.com/secdev/scapy
https://github.com/openvehicles/CAN-RE-Tool
https://github.com/Tbruno25/can-explorer
https://github.com/lbenthins/ecu-simulator
https://github.com/Ircama/ELM327-emulator
https://github.com/cedricp/ddt4all
https://github.com/qnx425/ELM327SLCAN
https://github.com/v-ivanyshyn/Arduino-OBD2-Async
https://github.com/quantyle/CAN-Shark
https://github.com/AustinMurphy/OBD2-Scantool
https://github.com/fenugrec/freediag
https://github.com/linklayer/pyvit
https://github.com/pylessard/python-udsoncan
https://github.com/openxc/uds-c
https://github.com/driftregion/iso14229
https://github.com/openxc/isotp-c
https://github.com/pylessard/python-can-isotp
https://github.com/Sauci/CanTp
https://github.com/christiansandberg/aioisotp
https://github.com/taha842/J1939-CANBUS
https://github.com/famez/J1939-Framework
https://github.com/milhead2/python-j1939
https://github.com/kurt-vd/can-utils/tree/j1939-v6
https://github.com/kurt-vd/test-can-j1939
https://github.com/paoloteti/libj1939
https://github.com/nmfta-repo/pretty_j1939
https://github.com/LittleBlondeDevil/TruckDevil
https://github.com/juergenH87/python-can-j1939
https://github.com/DanielMartensson/Open-SAE-J1939
https://github.com/ZacharyWalsh57/JCanalog
https://github.com/brandonros/j2534-tcp
https://github.com/MEAT-Inc/SharpWrap2534
https://github.com/roffe/gocanflasher
https://github.com/mwkpe/cantools
https://github.com/rbei-etas/busmaster
https://github.com/AleksandarFilipov/signalbroker-server
https://github.com/Hive13/CANiBUS/
https://github.com/linux-can/can-utils
https://github.com/linux-can/can-utils/blob/master/can-j1939-install-kernel-module.md
https://github.com/norly/elmcan
https://github.com/hartkopp/can-isotp
https://github.com/ryedwards/gs_usb
https://github.com/GENIVI/CANdevStudio
https://github.com/rusoku/CANAL-View
https://github.com/KruFFT/wxCAN-Sniffer
https://github.com/olegel/CANLogger
https://github.com/SeeedDocument/USB-CAN-Analyzer/
https://github.com/linklayer/cantact-app
https://github.com/collin80/SavvyCAN
https://github.com/sebi2k1/openCanSuite
https://github.com/smartgauges/obd2-bt-stm32/tree/master/qt
https://github.com/zombieCraig/ICSim
https://github.com/HubertD/cangaroo
https://github.com/karlyamashita/CAN-X
https://github.com/tixiv/CAN-Monitor-qt
https://github.com/amund7/CANBUS-Analyzer
https://github.com/SeppHansen/SLSS-CANAnalyser
https://github.com/TOSUN-Shanghai/TSMaster
https://github.com/TDahlmann/canpp
https://github.com/MHS-Elektronik/CANcool
https://github.com/dschanoeh/Kayak
https://github.com/facontidavide/PlotJuggler
https://github.com/PlotJuggler/plotjuggler-CAN-dbs
https://github.com/DanielMartensson/OpenSourceLogger
https://github.com/cantools/cantools
https://github.com/hardbyte/python-can
https://github.com/jmscslgroup/strym
https://github.com/tsabelmann/canviewer
https://github.com/caran/can4python
https://github.com/hmq2018/Python-Vector-CANoe
https://github.com/atlas0fd00m/CanCat
https://github.com/bhass1/pyfuzz_can
https://github.com/nopnop2002/Robotell-USB-CAN-Python
https://github.com/P1kachu/python-socketcan-monitor
https://github.com/tbruno25/canopy
https://github.com/Prindl/PythonVectorXL
https://github.com/SikkandarSulaiman/py4can
https://github.com/mguentner/cannelloni
https://github.com/mwkpe/tincan
https://github.com/ovravna/pican
https://github.com/m10k/canny
https://github.com/alexmohr/usb-can
https://github.com/chalmers-revere/opendlv-device-can-replay
https://github.com/zombieCraig/c0f/
https://github.com/kurt-vd/canqv
https://github.com/elliotwoods/Candle.NET
https://github.com/zainahm3d/canSerializer
https://github.com/nisennenmondai/libwecan
https://github.com/TheMatjaz/VCAN
https://github.com/tonton81/IMCTFD
https://github.com/linklayer/go-socketcan
https://github.com/pschichtel/JavaCAN
https://github.com/devcoons/iso15765-canbus
https://github.com/craigpeacock/CAN-Examples
https://github.com/zhanglongqi/socketcan-demo
https://github.com/commaai/cabana
https://github.com/julietkilo/kcd
https://github.com/eerimoq/cantools
https://github.com/aheit/cantools
https://github.com/skysky97/Candb
https://github.com/ebroecker/canmatrix
https://github.com/julietkilo/CANBabel
https://github.com/caran/can4python
https://github.com/howerj/dbcc
https://github.com/jobgeodev/convert_dbc_to_cpp_file
https://github.com/xR3b0rn/dbcppp
https://github.com/CSS-Electronics/can_decoder
https://github.com/GENIVI/CANdb
https://github.com/msalau/dbc-parser
https://github.com/kdschlosser/vector_dbc
https://github.com/autti/dbc_reader
https://github.com/akshaych92/CAN_BUS_DBC_VIEWER
https://github.com/driftregion/dbcview
https://github.com/Golyshkin/VectorDbcChecker
https://github.com/Sauci/pydbc
https://github.com/christoph2/pydbc
https://github.com/RudolphRiedel/USB_CAN-FD
https://github.com/jgressmann/supercan
https://github.com/collin80/FlexCAN_Library
https://github.com/ObdDiag-Net/allpro
https://github.com/arturlangner/Open-OBD2-datalogger
https://github.com/596142041/CANBootloader-Qt
https://github.com/commaai/panda
https://github.com/adamczykpiotr/STM32duino_CAN_Library
https://github.com/moonglow/pcan_pro_x
https://github.com/mxcd/CANnon
https://github.com/suburbanembedded/hadoucan-fw
https://github.com/DDolphin/CANCAN
https://github.com/timsonater/stm32-CAN-bus-example-HAL-API
https://github.com/kolyandex/CAN-to-USB-lawicel-for-stm32
https://github.com/walmis/stm32-slcan
https://github.com/linklayer/cantact-pro-hw
https://github.com/linklayer/cantact-pro-fw
https://github.com/IvanDev2018/STM32-CAN-Busadapter
https://github.com/MikhailBerezhanov/cncu-01
https://github.com/Oktay97/Canbus_Uart
https://github.com/nopnop2002/Arduino-STM32-CAN
https://github.com/exothink/eXoCAN
https://github.com/damienmaguire/CAN-BUS-Man-In-The-Middle
https://github.com/seeers/CAN-Bus-Arduino_Core_STM32/blob/master/CanLowlevel.ino
https://github.com/ryedwards/budgetcan_fw
https://github.com/ryedwards/BUDGETCANFD_G0-Hardware
https://github.com/IntergatedCircuits/CanDybugFW
https://github.com/cvra/CAN-USB-dongle-fw
https://github.com/Zubax/zubax_babel
https://github.com/YuriyLogvin/CAN-RS485-adapter
https://github.com/moonglow/vector_can
https://github.com/zjlywjh001/CAN_OMEGA
https://github.com/zjlywjh001/CAN_Omega_Firmware
https://github.com/zjlywjh001/CAN_OMEGA_Tools
https://github.com/candle-usb/candleLight_fw
https://github.com/majbthrd/CANsniffer
https://github.com/HubertD/candleLight
https://github.com/linklayer/cantact-hw
https://github.com/linklayer/cantact-fw
https://github.com/linklayer/cantact/
https://github.com/roboterclubaachen/usb2can
https://github.com/kkuchera/canalyze-fw
https://github.com/x893/cantact-fw
https://github.com/ObdDiag-Net/elm329
https://github.com/autosportlabs/OBD2CAN
https://github.com/moonglow/pcan_cantact
https://github.com/moonglow/kvaser_cantact
https://github.com/autowp/arduino-canhacker
https://github.com/fabiobaltieri/open-usb-can
https://github.com/DieselDuz42/Arduino-CAN-bus-SD-logger
https://github.com/latonita/arduino-canbus-monitor
https://github.com/ludwig-v/arduino-psa-comfort-can-adapter
https://github.com/srenner/epasuino
https://github.com/srenner/carfuino
https://github.com/rnd-ash/W203-canbus
https://github.com/CANBus-Triple/CANBus-Triple-Hardware
https://github.com/CANBus-Triple/CANBus-Triple
https://github.com/collin80/GVRET
https://github.com/autowp/arduino-mcp2515
https://github.com/kahiroka/slcanuino
https://github.com/BXProject/CITM02
https://github.com/sandeepmistry/arduino-OBD2
https://github.com/ihaque/arduino-ecu-logger
https://github.com/nopnop2002/esp-idf-CANBus-Monitor
https://github.com/marmotton/connected-car
https://github.com/morcibacsi/PSASteeringWheelAdapter
https://github.com/mintynet/esp32-slcan
https://github.com/Pacerino/TWAI_SLCAN
https://github.com/mintynet/esp32-slcan
https://github.com/miwagner/ESP32-Arduino-CAN
https://github.com/collin80/ESP32RET
https://github.com/PhilippFux/ESP32_CAN_Interface
https://github.com/vigoballak/esp32_canbus_gateway
https://github.com/neg2led/esp32-cantroller
https://github.com/scipioni/esp32-canbus-logger
https://github.com/Cellgalvano/ESP32_CANViewer
https://github.com/nopnop2002/esp-idf-can2http
https://github.com/limiter121/esp32-obd2-emulator
https://github.com/MagnusThome/RejsaCAN-ESP32
https://github.com/BlueAndi/beaglebone_black_socketcan
https://github.com/JonnoFTW/rpi-can-logger
https://github.com/SushiBits/CANoPi
https://github.com/rkollataj/mcba_firmware
https://github.com/rkollataj/mcba_usb
https://github.com/mvollrath/canbus_bbone_stm32
https://github.com/darkspr1te/elm327_clone
113 changes: 113 additions & 0 deletions archive.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
#!/bin/bash
#######################################################################################
## Project : Awesome Tools, Hardware And Resources For CAN Bus
## Designer : Dmitry Murzinov ([email protected])
## Link : https://github.com/iDoka/awesome-canbus
## Module : -//-
## Description: dumping all repositories on github.com mentioned in this awesome list
## by default git clone last commit for saving disk space, if you need
## whole history please change variable GIT_OPTS bellow.
## Usage : ./archive-for-all-urls.sh
## Revision : 1.0
## Date : 20-oct-2023
## License : MIT
#######################################################################################

#########################################################
# TODO: add archive folder to .gitignore
# TODO: use chapter name as a part of folder name
# need to proper parsing README's markdown for that
#########################################################

###### Tested with folowing versions:
# pandoc 3.1.8
# hjson v4.3.0
# yq v4.35.2
# grep 3.1
# sed 4.4
# cut 8.28
# bash version 4.4.20
# git version 2.24.0
######

# Green start and green end markers
GS='\033[1;92m'
GE='\033[0;39m'

DIR=archive
DELIMITER="+"

#GIT_OPTS=""
GIT_OPTS="--depth=1"

FILE_MD=README.md
FILE_URL=README.url

#MD2URL="pandoc -f markdown -t json ${FILE_MD} | hjson -j | yq eval -p json -o yaml --prettyPrint | grep -iv idoka | grep \'github.com\' | sed \'s/^[ \t]*//\' | cut -d\' \' -f3 > ${FILE_URL}"

# checking file existence (Markdown)
if [[ ! -f ${FILE_MD} ]]
then
echo -e "${GS}${FILE_MD} doesn't exists. Exit...${GE}"
exit 1
else
echo -e "${GS}${FILE_MD} exists. Great!${GE}"
fi

## Only for contributors: generating file with URLs
# checking file existence (URL)
if [[ -f ${FILE_URL} ]]
then
# checking modification date
DATE_MD=$(date '+%s' -d "@$( stat -c '%Y' "${FILE_MD}"; )")
DATE_URL=$(date '+%s' -d "@$( stat -c '%Y' "${FILE_URL}"; )")
#echo -e "${DATE_MD} \n${DATE_URL}"
if [ "${DATE_MD}" -gt "${DATE_URL}" ]
then
echo -e "${GS}Updating ${FILE_URL}....${GE}"
pandoc -f markdown -t json ${FILE_MD} | \
hjson -j | \
yq eval -p json -o yaml --prettyPrint | \
grep -iv idoka | \
grep 'github.com' | \
sed 's/^[ \t]*//' | \
cut -d' ' -f3 > ${FILE_URL}
else
echo -e "${GS}${FILE_URL} already updated. Skip updating${GE}"
fi
else
echo -e "${GS}Creating ${FILE_URL}....${GE}"
pandoc -f markdown -t json ${FILE_MD} | \
hjson -j | \
yq eval -p json -o yaml --prettyPrint | \
grep -iv idoka | \
grep 'github.com' | \
sed 's/^[ \t]*//' | \
cut -d' ' -f3 > ${FILE_URL}
#pandoc -f markdown -t json ${FILE_MD} | hjson -j | yq eval -p json -o yaml --prettyPrint | grep -iv idoka | grep 'github.com' | sed 's/^[ \t]*//' | cut -d' ' -f3 > ${FILE_URL}
fi


# creation archive folder
mkdir -p ${DIR}

### main cycle; cloning repo if not existed, otherwise pulling changes
for url in $(cat ${FILE_URL})
do
USER=$(echo "${url}" | cut -d'/' -f4)
REPO=$(echo "${url}" | cut -d'/' -f5)
if [[ -d "${DIR}/${USER}${DELIMITER}${REPO}" ]]
then
echo -e "${GS}The repository ${url} already cloned. Checking for updates...${GE}"
cd "${DIR}/${USER}${DELIMITER}${REPO}"
git pull ${url}
# FIXME: replace ../.. to more versatile variant
cd ../..
else
echo -e "${GS}Cloning the repository ${url}...${GE}"
git clone ${GIT_OPTS} "${url}" "${DIR}/${USER}${DELIMITER}${REPO}"
fi
done

echo -e "${GS}Finished!${GE}"

0 comments on commit a543b83

Please sign in to comment.