forked from Aircoookie/ESPAsyncWebServer
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request Aircoookie#11 from willmmiles/master
Collection of fixes for WLED project
- Loading branch information
Showing
39 changed files
with
1,963 additions
and
1,047 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
#!/bin/bash | ||
|
||
export ARDUINO_ESP32_PATH="$ARDUINO_USR_PATH/hardware/espressif/esp32" | ||
if [ ! -d "$ARDUINO_ESP32_PATH" ]; then | ||
echo "Installing ESP32 Arduino Core ..." | ||
script_init_path="$PWD" | ||
mkdir -p "$ARDUINO_USR_PATH/hardware/espressif" | ||
cd "$ARDUINO_USR_PATH/hardware/espressif" | ||
|
||
echo "Installing Python Serial ..." | ||
pip install pyserial > /dev/null | ||
|
||
if [ "$OS_IS_WINDOWS" == "1" ]; then | ||
echo "Installing Python Requests ..." | ||
pip install requests > /dev/null | ||
fi | ||
|
||
if [ "$GITHUB_REPOSITORY" == "espressif/arduino-esp32" ]; then | ||
echo "Linking Core..." | ||
ln -s $GITHUB_WORKSPACE esp32 | ||
else | ||
echo "Cloning Core Repository..." | ||
git clone https://github.com/espressif/arduino-esp32.git esp32 > /dev/null 2>&1 | ||
fi | ||
|
||
echo "Updating Submodules ..." | ||
cd esp32 | ||
git submodule update --init --recursive > /dev/null 2>&1 | ||
|
||
echo "Installing Platform Tools ..." | ||
cd tools && python get.py | ||
cd $script_init_path | ||
|
||
echo "ESP32 Arduino has been installed in '$ARDUINO_ESP32_PATH'" | ||
echo "" | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
#!/bin/bash | ||
|
||
echo "Installing ESP8266 Arduino Core ..." | ||
script_init_path="$PWD" | ||
mkdir -p "$ARDUINO_USR_PATH/hardware/esp8266com" | ||
cd "$ARDUINO_USR_PATH/hardware/esp8266com" | ||
|
||
echo "Installing Python Serial ..." | ||
pip install pyserial > /dev/null | ||
|
||
if [ "$OS_IS_WINDOWS" == "1" ]; then | ||
echo "Installing Python Requests ..." | ||
pip install requests > /dev/null | ||
fi | ||
|
||
echo "Cloning Core Repository ..." | ||
git clone https://github.com/esp8266/Arduino.git esp8266 > /dev/null 2>&1 | ||
|
||
echo "Updating submodules ..." | ||
cd esp8266 | ||
git submodule update --init --recursive > /dev/null 2>&1 | ||
|
||
echo "Installing Platform Tools ..." | ||
cd tools | ||
python get.py > /dev/null | ||
cd $script_init_path | ||
|
||
echo "ESP8266 Arduino has been installed in '$ARDUINO_USR_PATH/hardware/esp8266com'" | ||
echo "" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,228 @@ | ||
#!/bin/bash | ||
|
||
#OSTYPE: 'linux-gnu', ARCH: 'x86_64' => linux64 | ||
#OSTYPE: 'msys', ARCH: 'x86_64' => win32 | ||
#OSTYPE: 'darwin18', ARCH: 'i386' => macos | ||
|
||
OSBITS=`arch` | ||
if [[ "$OSTYPE" == "linux"* ]]; then | ||
export OS_IS_LINUX="1" | ||
ARCHIVE_FORMAT="tar.xz" | ||
if [[ "$OSBITS" == "i686" ]]; then | ||
OS_NAME="linux32" | ||
elif [[ "$OSBITS" == "x86_64" ]]; then | ||
OS_NAME="linux64" | ||
elif [[ "$OSBITS" == "armv7l" || "$OSBITS" == "aarch64" ]]; then | ||
OS_NAME="linuxarm" | ||
else | ||
OS_NAME="$OSTYPE-$OSBITS" | ||
echo "Unknown OS '$OS_NAME'" | ||
exit 1 | ||
fi | ||
elif [[ "$OSTYPE" == "darwin"* ]]; then | ||
export OS_IS_MACOS="1" | ||
ARCHIVE_FORMAT="zip" | ||
OS_NAME="macosx" | ||
elif [[ "$OSTYPE" == "cygwin" ]] || [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "win32" ]]; then | ||
export OS_IS_WINDOWS="1" | ||
ARCHIVE_FORMAT="zip" | ||
OS_NAME="windows" | ||
else | ||
OS_NAME="$OSTYPE-$OSBITS" | ||
echo "Unknown OS '$OS_NAME'" | ||
exit 1 | ||
fi | ||
export OS_NAME | ||
|
||
ARDUINO_BUILD_DIR="$HOME/.arduino/build.tmp" | ||
ARDUINO_CACHE_DIR="$HOME/.arduino/cache.tmp" | ||
|
||
if [ "$OS_IS_MACOS" == "1" ]; then | ||
export ARDUINO_IDE_PATH="/Applications/Arduino.app/Contents/Java" | ||
export ARDUINO_USR_PATH="$HOME/Documents/Arduino" | ||
elif [ "$OS_IS_WINDOWS" == "1" ]; then | ||
export ARDUINO_IDE_PATH="$HOME/arduino_ide" | ||
export ARDUINO_USR_PATH="$HOME/Documents/Arduino" | ||
else | ||
export ARDUINO_IDE_PATH="$HOME/arduino_ide" | ||
export ARDUINO_USR_PATH="$HOME/Arduino" | ||
fi | ||
|
||
if [ ! -d "$ARDUINO_IDE_PATH" ]; then | ||
echo "Installing Arduino IDE on $OS_NAME ..." | ||
echo "Downloading 'arduino-nightly-$OS_NAME.$ARCHIVE_FORMAT' to 'arduino.$ARCHIVE_FORMAT' ..." | ||
if [ "$OS_IS_LINUX" == "1" ]; then | ||
wget -O "arduino.$ARCHIVE_FORMAT" "https://www.arduino.cc/download.php?f=/arduino-nightly-$OS_NAME.$ARCHIVE_FORMAT" > /dev/null 2>&1 | ||
echo "Extracting 'arduino.$ARCHIVE_FORMAT' ..." | ||
tar xf "arduino.$ARCHIVE_FORMAT" > /dev/null | ||
mv arduino-nightly "$ARDUINO_IDE_PATH" | ||
else | ||
curl -o "arduino.$ARCHIVE_FORMAT" -L "https://www.arduino.cc/download.php?f=/arduino-nightly-$OS_NAME.$ARCHIVE_FORMAT" > /dev/null 2>&1 | ||
echo "Extracting 'arduino.$ARCHIVE_FORMAT' ..." | ||
unzip "arduino.$ARCHIVE_FORMAT" > /dev/null | ||
if [ "$OS_IS_MACOS" == "1" ]; then | ||
mv "Arduino.app" "/Applications/Arduino.app" | ||
else | ||
mv arduino-nightly "$ARDUINO_IDE_PATH" | ||
fi | ||
fi | ||
rm -rf "arduino.$ARCHIVE_FORMAT" | ||
|
||
mkdir -p "$ARDUINO_USR_PATH/libraries" | ||
mkdir -p "$ARDUINO_USR_PATH/hardware" | ||
|
||
echo "Arduino IDE Installed in '$ARDUINO_IDE_PATH'" | ||
echo "" | ||
fi | ||
|
||
function build_sketch(){ # build_sketch <fqbn> <path-to-ino> <build-flags> [extra-options] | ||
if [ "$#" -lt 2 ]; then | ||
echo "ERROR: Illegal number of parameters" | ||
echo "USAGE: build_sketch <fqbn> <path-to-ino> <build-flags> [extra-options]" | ||
return 1 | ||
fi | ||
|
||
local fqbn="$1" | ||
local sketch="$2" | ||
local build_flags="$3" | ||
local xtra_opts="$4" | ||
local win_opts="" | ||
if [ "$OS_IS_WINDOWS" == "1" ]; then | ||
local ctags_version=`ls "$ARDUINO_IDE_PATH/tools-builder/ctags/"` | ||
local preprocessor_version=`ls "$ARDUINO_IDE_PATH/tools-builder/arduino-preprocessor/"` | ||
win_opts="-prefs=runtime.tools.ctags.path=$ARDUINO_IDE_PATH/tools-builder/ctags/$ctags_version -prefs=runtime.tools.arduino-preprocessor.path=$ARDUINO_IDE_PATH/tools-builder/arduino-preprocessor/$preprocessor_version" | ||
fi | ||
|
||
echo "" | ||
echo "Compiling '"$(basename "$sketch")"' ..." | ||
mkdir -p "$ARDUINO_BUILD_DIR" | ||
mkdir -p "$ARDUINO_CACHE_DIR" | ||
$ARDUINO_IDE_PATH/arduino-builder -compile -logger=human -core-api-version=10810 \ | ||
-fqbn=$fqbn \ | ||
-warnings="all" \ | ||
-tools "$ARDUINO_IDE_PATH/tools-builder" \ | ||
-tools "$ARDUINO_IDE_PATH/tools" \ | ||
-built-in-libraries "$ARDUINO_IDE_PATH/libraries" \ | ||
-hardware "$ARDUINO_IDE_PATH/hardware" \ | ||
-hardware "$ARDUINO_USR_PATH/hardware" \ | ||
-libraries "$ARDUINO_USR_PATH/libraries" \ | ||
-build-cache "$ARDUINO_CACHE_DIR" \ | ||
-build-path "$ARDUINO_BUILD_DIR" \ | ||
-prefs=compiler.cpp.extra_flags="$build_flags" \ | ||
$win_opts $xtra_opts "$sketch" | ||
} | ||
|
||
function count_sketches() # count_sketches <examples-path> | ||
{ | ||
local examples="$1" | ||
rm -rf sketches.txt | ||
if [ ! -d "$examples" ]; then | ||
touch sketches.txt | ||
return 0 | ||
fi | ||
local sketches=$(find $examples -name *.ino) | ||
local sketchnum=0 | ||
for sketch in $sketches; do | ||
local sketchdir=$(dirname $sketch) | ||
local sketchdirname=$(basename $sketchdir) | ||
local sketchname=$(basename $sketch) | ||
if [[ "${sketchdirname}.ino" != "$sketchname" ]]; then | ||
continue | ||
fi; | ||
if [[ -f "$sketchdir/.test.skip" ]]; then | ||
continue | ||
fi | ||
echo $sketch >> sketches.txt | ||
sketchnum=$(($sketchnum + 1)) | ||
done | ||
return $sketchnum | ||
} | ||
|
||
function build_sketches() # build_sketches <fqbn> <examples-path> <chunk> <total-chunks> [extra-options] | ||
{ | ||
local fqbn=$1 | ||
local examples=$2 | ||
local chunk_idex=$3 | ||
local chunks_num=$4 | ||
local xtra_opts=$5 | ||
|
||
if [ "$#" -lt 2 ]; then | ||
echo "ERROR: Illegal number of parameters" | ||
echo "USAGE: build_sketches <fqbn> <examples-path> [<chunk> <total-chunks>] [extra-options]" | ||
return 1 | ||
fi | ||
|
||
if [ "$#" -lt 4 ]; then | ||
chunk_idex="0" | ||
chunks_num="1" | ||
xtra_opts=$3 | ||
fi | ||
|
||
if [ "$chunks_num" -le 0 ]; then | ||
echo "ERROR: Chunks count must be positive number" | ||
return 1 | ||
fi | ||
if [ "$chunk_idex" -ge "$chunks_num" ]; then | ||
echo "ERROR: Chunk index must be less than chunks count" | ||
return 1 | ||
fi | ||
|
||
set +e | ||
count_sketches "$examples" | ||
local sketchcount=$? | ||
set -e | ||
local sketches=$(cat sketches.txt) | ||
rm -rf sketches.txt | ||
|
||
local chunk_size=$(( $sketchcount / $chunks_num )) | ||
local all_chunks=$(( $chunks_num * $chunk_size )) | ||
if [ "$all_chunks" -lt "$sketchcount" ]; then | ||
chunk_size=$(( $chunk_size + 1 )) | ||
fi | ||
|
||
local start_index=$(( $chunk_idex * $chunk_size )) | ||
if [ "$sketchcount" -le "$start_index" ]; then | ||
echo "Skipping job" | ||
return 0 | ||
fi | ||
|
||
local end_index=$(( $(( $chunk_idex + 1 )) * $chunk_size )) | ||
if [ "$end_index" -gt "$sketchcount" ]; then | ||
end_index=$sketchcount | ||
fi | ||
|
||
local start_num=$(( $start_index + 1 )) | ||
echo "Found $sketchcount Sketches"; | ||
echo "Chunk Count : $chunks_num" | ||
echo "Chunk Size : $chunk_size" | ||
echo "Start Sketch: $start_num" | ||
echo "End Sketch : $end_index" | ||
|
||
local sketchnum=0 | ||
for sketch in $sketches; do | ||
local sketchdir=$(dirname $sketch) | ||
local sketchdirname=$(basename $sketchdir) | ||
local sketchname=$(basename $sketch) | ||
if [ "${sketchdirname}.ino" != "$sketchname" ] \ | ||
|| [ -f "$sketchdir/.test.skip" ]; then | ||
continue | ||
fi | ||
sketchnum=$(($sketchnum + 1)) | ||
if [ "$sketchnum" -le "$start_index" ] \ | ||
|| [ "$sketchnum" -gt "$end_index" ]; then | ||
continue | ||
fi | ||
local sketchBuildFlags="" | ||
if [ -f "$sketchdir/.test.build_flags" ]; then | ||
while read line; do | ||
sketchBuildFlags="$sketchBuildFlags $line" | ||
done < "$sketchdir/.test.build_flags" | ||
fi | ||
build_sketch "$fqbn" "$sketch" "$sketchBuildFlags" "$xtra_opts" | ||
local result=$? | ||
if [ $result -ne 0 ]; then | ||
return $result | ||
fi | ||
done | ||
return 0 | ||
} |
Oops, something went wrong.