commit e662f4d9d62b683e3ee33d1c7e338554e9e1dcf5 Author: Alexander Popov Date: Sat Jun 8 01:13:04 2024 +0300 πŸͺ΅ diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..0041262 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,20 @@ +root = true + +[*] +indent_style = space +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.sh] +indent_style = space +indent_size = 2 + +[humans.txt] +indent_style = tab +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/HISTORY.md b/HISTORY.md new file mode 100644 index 0000000..e69de29 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..cf1ab25 --- /dev/null +++ b/LICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/README.md b/README.md new file mode 100644 index 0000000..0dca580 --- /dev/null +++ b/README.md @@ -0,0 +1,12 @@ +# πŸ”Œ Arduino Deploy Utility + +## Usage + +### 1. Installing + + +# πŸ”Œ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Arduino + +## ИспользованиС + +### 1. Установка diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..ed7df89 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,145 @@ +#!/bin/bash + +# О ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ +AUTHOR='Alexander Popov ' +VERSION='1.0.0 beta' +LICENSE='Public Domain' + +# Настройки +MAIN_FOLDER=$HOME/.local/share/arduino-deploy # Рабочая дирСктория +ARGV=("$@") # АргумСнты ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ +ARDUINO_PORT=/dev/ttyACM0 +ARDUINO_BOARD=arduino:avr:uno +PROJECT=./RFIDAuth/ + +# Основная функция +main() { + # ВыполняСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ наличия Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ + [ ! -d "$MAIN_FOLDER" ] && mkdir -p ${MAIN_FOLDER} + check_colors + check_ini_parser + + # ВыполняСт ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ + source $HOME/Temp/.arduino-deploy/colors.sh + source $HOME/Temp/.arduino-deploy/ini-file-parser.sh + + # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ привСтствиС + clear + echo -e "${BRIGHT_YELLOW_B}ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для сборки ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ${NC}" + printf '\u2500%0.s' $(seq 29) + echo '' + echo -e "${GREEN_B}Автор: ${YELLOW}${AUTHOR}${NC}" + echo -e "${GREEN_B}ВСрсия: ${YELLOW}${VERSION}${NC}" + printf '\u2500%0.s' $(seq 29) + echo '' + + # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ список ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² + if [ "${ARGV[0]}" = "" ]; then + echo -e "${BLUE_B}ДоступныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:${NC}" + echo -e " ${RED_B}b${NC} - сборка ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ" + echo -e " ${RED_B}u${NC} - Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ" + echo -e " ${RED_B}m${NC} - запуск ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΏΠΎΡ€Ρ‚Π°" + echo -e " ${RED_B}f${NC} - Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ${YELLOW}clang-format${NC}" + echo -e " ${RED_B}d${NC} - ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ² с исходниками" + echo '' + + exit 0 + fi + + # b | Π‘Π±ΠΎΡ€ΠΊΠ° ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ + if [ "${ARGV[0]}" = "b" ]; then + build; exit 0 + fi + + # u | Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ + if [ "${ARGV[0]}" = "u" ]; then + upload; exit 0 + fi + + # m | Запуск ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΏΠΎΡ€Ρ‚Π° + if [ "${ARGV[0]}" = "m" ]; then + monitor; exit 0 + fi + + # f | Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° + if [ "${ARGV[0]}" = "f" ]; then + echo -e "${BRIGHT_RED_B}Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ...${NC}" + + cd ${PROJECT} + clang-format -i *.hpp *.h *.ino + cd .. + + echo -e "${BRIGHT_GREEN_B}Π“ΠΎΡ‚ΠΎΠ²ΠΎ βœ…${NC}\n"; exit 0 + fi + + # d | Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ дистрибутива с исходниками + if [ "${ARGV[0]}" = "d" ]; then + dist; exit 0 + fi +} + + +# Запуск ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΏΠΎΡ€Ρ‚Π° +monitor() { + echo -e "${BRIGHT_CYAN_B}Запуск ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΏΠΎΡ€Ρ‚Π°...${NC}" + printf '\u2500%0.s' $(seq 24) + echo '' + + arduino-cli monitor -p $ARDUINO_PORT +} + + +# Π‘Π±ΠΎΡ€ΠΊΠ° ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ +build() { + echo -e "${BRIGHT_RED_B}Π‘Π±ΠΎΡ€ΠΊΠ° ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ...${NC}" + printf '\u2500%0.s' $(seq 18) + echo '' + + arduino-cli compile -b $ARDUINO_BOARD $PROJECT + + echo -e "\n${BRIGHT_GREEN_B}Π“ΠΎΡ‚ΠΎΠ²ΠΎ βœ…${NC}\n" +} + + +# Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ +upload() { + echo -e "${BRIGHT_RED_B}Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ...${NC}" + printf '\u2500%0.s' $(seq 20) + echo '' + + arduino-cli upload -b $ARDUINO_BOARD -p $ARDUINO_PORT $PROJECT + + echo -e "\n${BRIGHT_GREEN_B}Π“ΠΎΡ‚ΠΎΠ²ΠΎ βœ…${NC}\n" +} + + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ colors.sh +# https://git.a2s.su/iiiypuk/colors.sh +check_colors() { + FILE=${MAIN_FOLDER}/colors.sh + URL="https://git.a2s.su/iiiypuk/colors.sh/raw/branch/main/colors.sh" + SHA256SUM="a598398f8944e247b121d22994dabe5110a4ef2960571db77eab487c4f5e29d9" + + # todo: check file sum & change url to release + if [ ! -f "$FILE" ]; then + wget $URL -O $FILE + fi +} + + +# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ini-file-parser.sh +# https://github.com/DevelopersToolbox/ini-file-parser +check_ini_parser() { + FILE=${MAIN_FOLDER}/ini-file-parser.sh + URL="https://raw.githubusercontent.com/DevelopersToolbox/ini-file-parser/master/src/ini-file-parser.sh" + SHA256SUM="a3c71e07654628b4db0a61328944e5d79e91fd3b9e7307a81f79244ccbbbbf52" + + # todo: check file sum & change url to release + if [ ! -f "$FILE" ]; then + wget $URL -O $FILE + fi +} + + +# Запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ +main diff --git a/humans.txt b/humans.txt new file mode 100644 index 0000000..6025491 --- /dev/null +++ b/humans.txt @@ -0,0 +1,16 @@ +/* PROJECT */ +Last update: Thu June 05 2024 +Language: Russian +IDE: Sublime Text 4 +Tools: + Bash + EditorConfig +Components: + ... + +/* TEAM */ +Author: Alexander Popov +Contacts: iiiypuk [at] fastmail.fm +From: Russia +Ko-Fi: iiiypuk +Boosty: iiiypuk