Merge branch 'dev' into dev

This commit is contained in:
discip
2024-12-07 00:04:31 +01:00
committed by GitHub
7 changed files with 476 additions and 60 deletions

View File

@@ -96,7 +96,7 @@ jobs:
run: echo "GITHUB_CI_PR_SHA=${{github.event.pull_request.head.sha}}" >> "${GITHUB_ENV}"
- name: Build ${{ matrix.model }}
run: make -C source/ -j$(nproc) model="${{ matrix.model }}" firmware-multi_compressed_European firmware-multi_compressed_Bulgarian+Russian+Serbian+Ukrainian firmware-multi_Chinese+Japanese
run: make -C source/ -j$(nproc) model="${{ matrix.model }}" firmware-multi_compressed_European firmware-multi_compressed_Belorussian+Bulgarian+Russian+Serbian+Ukrainian firmware-multi_Chinese+Japanese
- name: Copy license files
run: cp LICENSE scripts/LICENSE_RELEASE.md source/Hexfile/
@@ -209,7 +209,7 @@ jobs:
exclude: "./.git/*" # Optional.
check_all_files_with_shebangs: "false" # Optional.
check_readme:
check_docs:
runs-on: ubuntu-22.04
container:
image: alpine:3.19
@@ -221,6 +221,11 @@ jobs:
- uses: actions/checkout@v4
with:
submodules: true
fetch-tags: true
fetch-depth: 0
- name: Check autogenerated Documentation/README.md
run: /bin/sh ./scripts/deploy.sh docs_readme
- name: Git ownership exception
run: git config --global --add safe.directory /__w/IronOS/IronOS && git config --global safe.directory "$GITHUB_WORKSPACE"
- name: Check and verify documentation
run: /bin/sh ./scripts/deploy.sh docs

View File

@@ -74,7 +74,7 @@ make -j$(nproc) model=Pinecil firmware-multi_European
To build a Cyrillic compressed multi-language firmware for the Pinecil with as many simultaneous jobs as there are logical processors on macOS:
```
make -j$(sysctl -n hw.logicalcpu) model=Pinecil firmware-multi_compressed_Bulgarian+Russian+Serbian+Ukrainian
make -j$(sysctl -n hw.logicalcpu) model=Pinecil firmware-multi_compressed_Belorussian+Bulgarian+Russian+Serbian+Ukrainian
```
To build a custom multi-language firmware including English and Simplified Chinese for the TS80:

View File

@@ -1,7 +1,7 @@
# Version Changes
## V2.22
## v2.22
### New Hardware Support
@@ -45,7 +45,7 @@ Assets have been made for rendering this at full size, but the code is not compl
- Lots of tooling and code cleanups
## V2.21
## v2.21
### Features & changes
@@ -64,7 +64,7 @@ Alternatively you can use Spagett1's PineFlash tool that should provide a GUI in
For a small number of V2 Pinecil devices there appears to be an interference issue between the Bluetooth Low Energy and some devices; more information here. If this occurs to you, please let us know in the issue and rollback to 2.20 for now.
## V2.20
## v2.20
- First "full" release for PinecilV2
- Loots of documentation updates
@@ -73,7 +73,7 @@ For a small number of V2 Pinecil devices there appears to be an interference iss
- Cold Junction Calibration was reworked and now occurs _at next boot_ to make it easier to perform when the device is cold
## V2.19
## v2.19
- Bug-fix Infinite Boot Logo
- Shutdown settings for MHP30
@@ -84,7 +84,7 @@ For a small number of V2 Pinecil devices there appears to be an interference iss
- Improved documents, added features table
## V2.18
## v2.18
- Support for animated bootup logo's
- Bootup logo's moved to their own IronOS-Meta repo
@@ -94,7 +94,7 @@ For a small number of V2 Pinecil devices there appears to be an interference iss
- Better Instructions/documents
## V2.17
## v2.17
### Features & changes
@@ -122,7 +122,7 @@ For a small number of V2 Pinecil devices there appears to be an interference iss
- -> Release has been updated to build `e065be3` after one bug with the BMA223 was found.
## V2.16
## v2.16
- Overhaul of the Timer+ADC setup with help from @sandmanRO
- Overhaul of the PID with help from @sandmanRO
@@ -140,7 +140,7 @@ For a small number of V2 Pinecil devices there appears to be an interference iss
- Romanian language added
## V2.15
## v2.15
### Features & changes
@@ -165,7 +165,7 @@ Programs the same as any one Miniware unit using drag and drop.
The flood doors are now open for feature requests for this unit :)
## V2.14
## v2.14
- Fixing auto rotation bug in the LIS accelerometer in the TS80/TS80P
- Adds support for two new accelerometers
@@ -183,7 +183,7 @@ The flood doors are now open for feature requests for this unit :)
- clang-format spec setup #801
## V2.13
## v2.13
- First _official_ Pinecil release
- All of the wire for Pinecil releases added
@@ -201,7 +201,7 @@ The flood doors are now open for feature requests for this unit :)
- Rework of all of the temperature curves for better accuracy
## V2.12
## v2.12
- Only released as pre-release
- [TS80P] Improvements to the PD negotiation to handle a few more adapters cleanly
@@ -210,21 +210,21 @@ The flood doors are now open for feature requests for this unit :)
- Removing the very old single line menu style.
## V2.11
## v2.11
- First TS80P support
- Added in a USB-PD driver stack for the FUSB302
- Fixed some graphical glitches
## V2.10
## v2.10
- GUI polish (animations and scroll bars)
- Power pulse to keep power supplies alive
- Adjustable tip response gain
## V2.09
## v2.09
- Adjustable steps in temperature adjustment
- Git hash now in build string
@@ -232,19 +232,19 @@ The flood doors are now open for feature requests for this unit :)
- Some minor QC3 improvements
## V2.08
## v2.08
- Fixes auto start in sleep mode
- Power limiters
## V2.07
## v2.07
- QC fixes
- Cosmetic fixes for leading 0's
## V2.06
## v2.06
- Warning on settings reset
- Temp temp re-write
@@ -253,32 +253,32 @@ The flood doors are now open for feature requests for this unit :)
- Menu timeouts
## V2.05
## v2.05
- Language updates
## V2.04
## v2.04
- GUI updates
## V2.03
## v2.03
- Support for new accelerometers
## V2.02
## v2.02
- Adds small font
## V2.01
## v2.01
- Newer settings menu
## V2.00
## v2.00
- Complete re-write of the low layer system to use the STM32 HAL for easier development
- This allowed easier setup for the new ADC auto measuring system
@@ -289,7 +289,7 @@ The flood doors are now open for feature requests for this unit :)
- Added smaller font for said screen views
## V1.17
## v1.17
- Added blinking cooldown display
- Allowed smaller sleep timeout values
@@ -297,72 +297,72 @@ The flood doors are now open for feature requests for this unit :)
- Automatic startup option
## V1.16
## v1.16
- Added automatic rotation support
- Added power display graph
## V1.15
## v1.15
- Added support for a custom bootup logo to be programmed via the DFU bootloader
## V1.14
## v1.14
- Changed input voltage cutoff to be based on cell count rather than voltage
## V1.13
## v1.13
- Swapped buttons for menu to prevent accidentally changing first menu item
- Added auto key repeat
## V1.12
## v1.12
- Increases sensitivity options to be 1\*9 with 0 off state
- Fixes issue where going from COOL \*> soldering can leave screen off
## V1.11
## v1.11
- Boost mode
- Change sensitivity options to be 1\*8
## V1.10
## v1.10
- Adds help text to settings
- Improves settings for the display update rate
## V1.09
## v1.09
- Adds display modes, for slowing down or simplifying the display
## V1.08
## v1.08
- Fix settings menu not showing flip display
## V1.07
## v1.07
- Adds shutdown time to automatically shutdown the iron after inactivity
## V1.06
## v1.06
- Changes H and C when the iron is heating to the minidso chevron like images
## V1.05
## v1.05
- Adds ability to calibrate the input voltage measurement
## V1.04
## v1.04
- Increased accuracy of the temperature control
- Improved PID response slightly
@@ -370,14 +370,14 @@ The flood doors are now open for feature requests for this unit :)
- Nicer idle screen
## V1.03
## v1.03
- Improved Button handling
- Ability to set motion sensitivity
- DC voltmeter page shows input voltage
## V1.02
## v1.02
- Adds hold both buttons on IDLE to access the therometer mode
- Changes the exit soldering mode to be holding both buttons (Like original firmware)

View File

@@ -144,12 +144,12 @@ docs: $(MKDOCS_YML) Documentation/* Documentation/Flashing/* Documentation/im
docs-deploy: $(MKDOCS_YML) Documentation/* Documentation/Flashing/* Documentation/images/*
$(MKDOCS) gh-deploy -f $(MKDOCS_YML) -d ../site
# routine check for autogenerated Documentation/README.md
# routine check to verify documentation
test-md:
@echo ""
@echo "---- Checking REAMDE.md... ----"
@echo "---- Checking documentation... ----"
@echo ""
@/bin/sh ./scripts/deploy.sh docs_readme
@/bin/sh ./scripts/deploy.sh docs
# shell style & linter check (github CI version of shellcheck is more recent than alpine one so the latter may not catch some policies)
test-sh:
@@ -199,7 +199,7 @@ build-all:
# target to build multilang supported builds for Pinecil & PinecilV2
build-multilang:
@for modelml in $(MODELS_ML); do \
$(MAKE) -C source/ -j2 model=$${modelml} firmware-multi_compressed_European firmware-multi_compressed_Bulgarian+Russian+Serbian+Ukrainian firmware-multi_Chinese+Japanese ; \
$(MAKE) -C source/ -j2 model=$${modelml} firmware-multi_compressed_European firmware-multi_compressed_Belorussian+Bulgarian+Russian+Serbian+Ukrainian firmware-multi_Chinese+Japanese ; \
mkdir -p $(OUT_DIR)/$${modelml}_multi-lang ; \
cp $(OUT_HEX)/$${modelml}_multi_*.bin $(OUT_DIR)/$${modelml}_multi-lang ; \
cp $(OUT_HEX)/$${modelml}_multi_*.hex $(OUT_DIR)/$${modelml}_multi-lang ; \

View File

@@ -0,0 +1,347 @@
{
"languageCode": "UZ",
"languageLocalName": "O'zbek",
"tempUnitFahrenheit": false,
"messagesWarn": {
"CalibrationDone": {
"message": "Kalibrovka\nyakunlandi!"
},
"ResetOKMessage": {
"message": "Sozlamalar\ntiklandi"
},
"SettingsResetMessage": {
"message": "Ayrim sozlamalar\no'zgartirildi"
},
"NoAccelerometerMessage": {
"message": "Akselerometr\ntopilmadi!"
},
"NoPowerDeliveryMessage": {
"message": "USB-PD IC\ntopilmadi!"
},
"LockingKeysString": {
"message": "QULFLANDI"
},
"UnlockingKeysString": {
"message": "QULF OCHILDI"
},
"WarningKeysLockedString": {
"message": "!QULFLANGAN!"
},
"WarningThermalRunaway": {
"message": "Issiqlik\nqochishi"
},
"WarningTipShorted": {
"message": "!Uchida qisqa tutashuv!"
},
"SettingsCalibrationWarning": {
"message": "Qayta yuklashdan oldin, uchi va tutqich xona haroratida ekanligiga ishonch hosil qiling!"
},
"CJCCalibrating": {
"message": "Kalibrovka\nqilinmoqda"
},
"SettingsResetWarning": {
"message": "Sozlamalarni standart holatga qaytarishni istaysizmi?"
},
"UVLOWarningString": {
"message": "DC PAST"
},
"UndervoltageString": {
"message": "Past kuchlanish\n"
},
"InputVoltageString": {
"message": "Kirish kuchlanishi: \n"
},
"SleepingAdvancedString": {
"message": "Uyqu holati...\n"
},
"SleepingTipAdvancedString": {
"message": "Uch: \n"
},
"ProfilePreheatString": {
"message": "Qizdirish\n"
},
"ProfileCooldownString": {
"message": "Sovutish\n"
},
"DeviceFailedValidationWarning": {
"message": "Qurilmangiz soxta bo'lishi mumkin!"
},
"TooHotToStartProfileWarning": {
"message": "Profilni boshlash uchun\njuda issiq"
}
},
"characters": {
"SettingRightChar": "O",
"SettingLeftChar": "C",
"SettingAutoChar": "A",
"SettingSlowChar": "S",
"SettingMediumChar": "O",
"SettingFastChar": "T",
"SettingStartSolderingChar": "P",
"SettingStartSleepChar": "U",
"SettingStartSleepOffChar": "X",
"SettingLockBoostChar": "B",
"SettingLockFullChar": "T"
},
"menuGroups": {
"PowerMenu": {
"displayText": "Quvvat\nsozlamalari",
"description": ""
},
"SolderingMenu": {
"displayText": "Paylash\nsozlamalari",
"description": ""
},
"PowerSavingMenu": {
"displayText": "Uyqu\nrejimi",
"description": ""
},
"UIMenu": {
"displayText": "Foydalanuvchi\ninterfeysi",
"description": ""
},
"AdvancedMenu": {
"displayText": "Kengaytirilgan\nsozlamalar",
"description": ""
}
},
"menuValues": {
"USBPDModeDefault": {
"displayText": "Default\nMode"
},
"USBPDModeNoDynamic": {
"displayText": "No\nDynamic"
},
"USBPDModeSafe": {
"displayText": "Safe\nMode"
},
"TipTypeAuto": {
"displayText": "Auto\nSense"
},
"TipTypeT12Long": {
"displayText": "TS100\nLong"
},
"TipTypeT12Short": {
"displayText": "Pine\nShort"
},
"TipTypeT12PTS": {
"displayText": "PTS\n200"
},
"TipTypeTS80": {
"displayText": "TS80\n"
},
"TipTypeJBCC210": {
"displayText": "JBC\nC210"
}
},
"menuOptions": {
"DCInCutoff": {
"displayText": "Quvvat\nmanbai",
"description": "Batareya haddan tashqari zaryadsizlanishini oldini olish uchun kuchlanish chegarasini o'rnatish (DC 10V) (S=3.3V har bir yacheyka uchun, quvvat PWR chegarasini o'chirish)"
},
"MinVolCell": {
"displayText": "Minimal\nkuchlanish",
"description": "Batareya yacheyka uchun minimal ruxsat etilgan kuchlanish (3S: 3 - 3.7V | 4-6S: 2.4 - 3.7V)"
},
"QCMaxVoltage": {
"displayText": "QC\nvoltage",
"description": "Max QC voltage the iron should negotiate for"
},
"PDNegTimeout": {
"displayText": "PD\ntimeout",
"description": "PD negotiation timeout in 100ms steps for compatibility with some QC chargers"
},
"USBPDMode": {
"displayText": "PD\nMode",
"description": "No Dynamic disables EPR & PPS, Safe mode does not use padding resistance"
},
"BoostTemperature": {
"displayText": "Kuchaytirish\nharorati",
"description": "\"Boost mode\" rejimida uch harorati"
},
"AutoStart": {
"displayText": "Boshlash\nholati",
"description": "P=paylash temperaturasigacha qizdirish | U=qo'zg'atilmagunicha uyqu rejimida ushlash | X=qo'zg'atilmagunicha qizdirilmagan holda ushlash"
},
"TempChangeShortStep": {
"displayText": "Tugmaning qisqa\nbosilishi",
"description": "Qisqa bosilgandagi harorat o'zgarishi-oshirish"
},
"TempChangeLongStep": {
"displayText": "Tugmaning uzoqroq\nbosilishi",
"description": "Uzoqroq bosilgandagi harorat o'zgarishi-oshirish"
},
"LockingMode": {
"displayText": "Tugmalarni qulflashni\nfaollashtirish",
"description": "Qulflash uchun paylash davomida ikkala tugmani bosib turing (B=faqat boost mode uchun | T=to'liq qulflash)"
},
"ProfilePhases": {
"displayText": "Profil\nbosqichlari",
"description": "Profil rejimlarida bosqichlar soni"
},
"ProfilePreheatTemp": {
"displayText": "Dastlabgi\nHarorat",
"description": "Profil rejimida dastlab ushbu haroratga qizdirish"
},
"ProfilePreheatSpeed": {
"displayText": "Qizdirish\nTezligi",
"description": "Ushbu tezlikda qizdirish (1 sekundda shuncha daraja)"
},
"ProfilePhase1Temp": {
"displayText": "1-faza\nHarorati",
"description": "Bu fazaning oxirida mo'ljallangan harorat"
},
"ProfilePhase1Duration": {
"displayText": "1-faza\nDavomiyligi",
"description": "Ushbu fazaning davomiyligi (sekund)"
},
"ProfilePhase2Temp": {
"displayText": "2-faza\nHarorati",
"description": ""
},
"ProfilePhase2Duration": {
"displayText": "2-faza\nDavomiyligi",
"description": ""
},
"ProfilePhase3Temp": {
"displayText": "3-faza\nHarorati",
"description": ""
},
"ProfilePhase3Duration": {
"displayText": "3-faza\nDavomiyligi",
"description": ""
},
"ProfilePhase4Temp": {
"displayText": "4-faza\nHarorati",
"description": ""
},
"ProfilePhase4Duration": {
"displayText": "4-faza\nDavomiyligi",
"description": ""
},
"ProfilePhase5Temp": {
"displayText": "5-faza\nHarorati",
"description": ""
},
"ProfilePhase5Duration": {
"displayText": "5-faza\nDavomiyligi",
"description": ""
},
"ProfileCooldownSpeed": {
"displayText": "Sovutish\ntezligi",
"description": "Profil rejimi oxirida bu tezlikda sovutish (1 sekundda shuncha daraja)"
},
"MotionSensitivity": {
"displayText": "Harakat\nsezgirligi",
"description": "1=quyi sezgirlik | ... | 9=eng yuqori sezgirlik"
},
"SleepTemperature": {
"displayText": "Uyqu\nharorati",
"description": "\"Uyqu holati\"dagi uch harorati"
},
"SleepTimeout": {
"displayText": "Uyquga ketish\nvaqti",
"description": "\"Uyqu holati\" boshlanishidan oldingi interval sleep mode (s=sekund | m=minut)"
},
"ShutdownTimeout": {
"displayText": "O'chish\nvaqti",
"description": "Temirni o'chirishdan oldingi interval (m=minut)"
},
"HallEffSensitivity": {
"displayText": "Hall sensori\nsezgirligi",
"description": "Magnitlarga nisbatan sezgirlik darajasi (1=quyi sezgirlik | ... | 9=eng yuqori sezgirlik)"
},
"HallEffSleepTimeout": {
"displayText": "HallSensor\nSleepTime",
"description": "Interval before \"sleep mode\" starts when hall effect is above threshold"
},
"TemperatureUnit": {
"displayText": "Harorat o'lchov\nbirligi",
"description": "C=°Selsiy | F=°Fahrenheit"
},
"DisplayRotation": {
"displayText": "Ekran\nyo'nalishi",
"description": "O=o'ng qo'l | C=chap qo'l | A=avtomatik"
},
"CooldownBlink": {
"displayText": "Sovutish\nindikatori",
"description": "Uchi qizigan bo'sh turgan holatida harorat o'lchovini yangilab turish"
},
"ScrollingSpeed": {
"displayText": "Matn aylanish\ntezligi",
"description": "Matn aylanish tezligini sozlash (S=sekin | T=tez)"
},
"ReverseButtonTempChange": {
"displayText": "(+) va (-) tugmalarni\nalmashtirish",
"description": "Harorat o'zgarishi uchun tugmachalarni vazifasini almashish"
},
"AnimSpeed": {
"displayText": "Anim.\ntezligi",
"description": "Menyudagi ikonka animatsiyalari tezligini sozlash (S=sekin | O=o'rtacha | T=tez)"
},
"AnimLoop": {
"displayText": "Anim.\nqaytarilishi",
"description": "Bosh menyudagi ikonka anim. qaytarilishi"
},
"Brightness": {
"displayText": "Ekran\nyorqinligi",
"description": "OLED ekran yorqinligini sozlash"
},
"ColourInversion": {
"displayText": "Ranglarni\ninvert qilish",
"description": "OLED ekran ranglarini teskari qilish"
},
"LOGOTime": {
"displayText": "Yuklanish logosi\ndavomiyligi",
"description": "Yuklanish logosi davomiyligini o'rnatish (s=sekund)"
},
"AdvancedIdle": {
"displayText": "Batafsil\nbo'sh turgandagi ekran",
"description": "B'sh turgandagi ekranda kichik shriftda batafsil malumotni ko'rsatish"
},
"AdvancedSoldering": {
"displayText": "Batafsil\npayvandlash ekrani",
"description": "Payvandlash ekrani uchun kichik shrift bilan batafsil malumotni ko'rsatish"
},
"BluetoothLE": {
"displayText": "Bluetooth\n",
"description": "Faollashtirish BLE"
},
"PowerLimit": {
"displayText": "Quvvat\nchegarasi",
"description": "Temir foydalanishi mumkin bo'lgan o'rtacha maksimal quvvat (W=watt)"
},
"CalibrateCJC": {
"displayText": "Keyingi yuklashda\nCJC kalibrovkasi",
"description": "Keyingi yuklashda Sovuq Tugun Kompensatsiyasini (CJC) kalibrlash (Delta T < 5°C bo'lsa, talab qilinmaydi)"
},
"VoltageCalibration": {
"displayText": "Kirish kuchlanishini\nkalibrlash",
"description": "VIN kalibrovkasini boshlash (chiqish uchun uzoq bosib turing)"
},
"PowerPulsePower": {
"displayText": "Quvvat\npulsi",
"description": "Uxlashdan saqlash pulsining quvvat intensivligi (W=watt)"
},
"PowerPulseWait": {
"displayText": "Quvvat pulsi\nkechikishi",
"description": "Uxlashdan saqlash pulsi boshlanishigacha bo'lgan kechikish (x 2.5 soniya)"
},
"PowerPulseDuration": {
"displayText": "Quvvat pulsi\ndavomiyligi",
"description": "Uxlashdan saqlash pulsi davomiyligi (x 250ms)"
},
"SettingsReset": {
"displayText": "Sozlamalarni\nqayta tiklash",
"description": "Barcha sozlamalarni odatiy holatga qaytarish"
},
"LanguageSwitch": {
"displayText": "Til:\n UZ O'zbek tili",
"description": ""
},
"SolderingTipType": {
"displayText": "Soldering\nTip Type",
"description": "Select the tip type fitted"
}
}
}

View File

@@ -19,7 +19,9 @@ usage()
echo -e "\tbuild - compile builds of IronOS inside docker container for supported hardware"
echo -e "\tclean - delete created docker image for IronOS & its build cache objects\n"
echo "CMD (helper routines):"
echo -e "\tdocs - high level target to run docs_readme and docs_history (see below)\n"
echo -e "\tdocs_readme - generate & OVERWRITE(!) README.md inside Documentation/ based on nav section from mkdocs.yml if it changed\n"
echo -e "\tdocs_history - check if History.md has the changelog for the latest stable release\n"
echo -e "\tcheck_style_file SRC - run code style checks based on clang-format & custom parsers for source code file SRC\n"
echo -e "\tcheck_style_log - run clang-format using source/Makefile and generate gcc-compatible error log in source/check-style.log\n"
echo -e "STORAGE NOTICE: for \"shell\" and \"build\" commands extra files will be downloaded so make sure that you have ~5GB of free space.\n"
@@ -71,6 +73,39 @@ EOF
return "${ret}"
}
# Documentation/History.md automagical changelog routine
docs_history()
{
md="Documentation/History.md"
ver_md="$(sed -ne 's/^## //1p' "${md}" | head -1)"
echo "Latest changelog: ${ver_md}"
ver_git="$(git tag -l | sort | grep -e "^v" | grep -v "rc" | tail -1)"
echo "Latest release tag: ${ver_git}"
ret=0
if [ "${ver_md}" != "${ver_git}" ]; then
ret=1
echo "It seems there is no changelog information for ${ver_git} in ${md} yet."
echo "Please, update changelog information in ${md}."
fi;
return "${ret}"
}
# source/Makefile:ALL_LANGUAGES & Translations/*.json automagical routine
build_langs()
{
mk="../source/Makefile"
cd Translations/ || exit 1
langs="$(echo "$(find ./*.json | sed -ne 's,^\./translation_,,; s,\.json$,,; /[A-Z]/p' ; sed -ne 's/^ALL_LANGUAGES=//p;' "${mk}")" | sed 's, ,\n,g; s,\r,,g' | sort | uniq -u)"
ret=0
if [ -n "${langs}" ]; then
ret=1
echo "It seems there is mismatch between supported languages and enabled builds."
echo "Please, check files in Translations/ and ALL_LANGUAGES variable in source/Makefile for:"
echo "${langs}"
fi;
return "${ret}"
}
# Helper function to check code style using clang-format & grep/sed custom parsers:
# - basic logic moved from source/Makefile : `check-style` target for better maintainance since a lot of sh script involved;
# - output goes in gcc-like error compatible format for IDEs/editors.
@@ -126,27 +161,44 @@ docker_file="-f ${root_dir}/${docker_conf}"
# (compose sub-command must be included, i.e. DOCKER_BIN="/usr/local/bin/docker compose" ./deploy.sh)
if [ -z "${DOCKER_BIN}" ]; then
docker_bin=""
docker_app=""
else
docker_bin="${DOCKER_BIN}"
docker_app="${DOCKER_BIN}"
fi;
# detect availability of docker
docker_compose="$(command -v docker-compose)"
if [ -n "${docker_compose}" ] && [ -z "${docker_bin}" ]; then
docker_bin="${docker_compose}"
if [ -n "${docker_compose}" ] && [ -z "${docker_app}" ]; then
docker_app="${docker_compose}"
fi;
docker_tool="$(command -v docker)"
if [ -n "${docker_tool}" ] && [ -z "${docker_bin}" ]; then
docker_bin="${docker_tool} compose"
if [ -n "${docker_tool}" ] && [ -z "${docker_app}" ]; then
docker_app="${docker_tool} compose"
fi;
# give function argument a name
cmd="${1}"
# meta target to verify markdown documents
if [ "docs" = "${cmd}" ]; then
docs_readme
readme="${?}"
docs_history
hist="${?}"
build_langs
langs="${?}"
if [ "${readme}" -eq 0 ] && [ "${hist}" -eq 0 ] && [ "${langs}" -eq 0 ]; then
ret=0
else
ret=1
fi;
exit ${ret}
fi;
# if only README.md for Documentation update is required then run it & exit
if [ "docs_readme" = "${cmd}" ]; then
@@ -154,6 +206,18 @@ if [ "docs_readme" = "${cmd}" ]; then
exit "${?}"
fi;
# if only History.md for Documentation update is required then run it & exit
if [ "docs_history" = "${cmd}" ]; then
docs_history
exit "${?}"
fi;
if [ "build_langs" = "${cmd}" ]; then
build_langs
exit "${?}"
fi;
if [ "check_style_file" = "${cmd}" ]; then
check_style_file "${2}"
exit "${?}"
@@ -166,7 +230,7 @@ fi;
# if docker is not presented in any way show warning & exit
if [ -z "${docker_bin}" ]; then
if [ -z "${docker_app}" ]; then
echo "ERROR: Can't find docker-compose nor docker tool. Please, install docker and try again."
exit 1
fi;
@@ -194,6 +258,6 @@ if [ "${cmd}" = "shell" ]; then
echo -e "\t* type \"exit\" to end the session when done;"
fi;
echo -e "\t* type \"${0} clean\" to delete created container (but not cached data)"
echo -e "\n====>>>> ${docker_bin} ${docker_file} ${docker_cmd}\n"
eval "${docker_bin} ${docker_file} ${docker_cmd}"
echo -e "\n====>>>> ${docker_app} ${docker_file} ${docker_cmd}\n"
eval "${docker_app} ${docker_file} ${docker_cmd}"
exit "${?}"

View File

@@ -20,7 +20,7 @@ HEXFILE_DIR=Hexfile
OUTPUT_DIR_BASE=Objects
OUTPUT_DIR=Objects/$(model)
ALL_LANGUAGES=BG CS DA DE EN ES FI FR HR HU IT JA_JP LT NL NL_BE NB PL PT RU SK SL SR_CYRL SR_LATN SV TR UK VI YUE_HK ZH_CN ZH_TW
ALL_LANGUAGES=BE BG CS DA DE EL EN ES ET FI FR HR HU IT JA_JP LT NB NL_BE NL PL PT RO RU SK SL SR_CYRL SR_LATN SV TR UK UZ VI YUE_HK ZH_CN ZH_TW
LANGUAGE_GROUP_CJK_LANGS=EN JA_JP YUE_HK ZH_TW ZH_CN
LANGUAGE_GROUP_CJK_NAME=Chinese+Japanese
@@ -31,8 +31,8 @@ LANGUAGE_GROUP_CUSTOM_LANGS=$(custom_multi_langs)
LANGUAGE_GROUP_CUSTOM_NAME=Custom
endif
LANGUAGE_GROUP_CYRILLIC_LANGS=EN BG RU SR_CYRL SR_LATN UK
LANGUAGE_GROUP_CYRILLIC_NAME=Bulgarian+Russian+Serbian+Ukrainian
LANGUAGE_GROUP_CYRILLIC_LANGS=EN BE BG RU SR_CYRL SR_LATN UK
LANGUAGE_GROUP_CYRILLIC_NAME=Belorussian+Bulgarian+Russian+Serbian+Ukrainian
LANGUAGE_GROUP_EUR_LANGS=EN $(filter-out $(LANGUAGE_GROUP_CJK_LANGS) $(LANGUAGE_GROUP_CYRILLIC_LANGS),$(ALL_LANGUAGES))
LANGUAGE_GROUP_EUR_NAME=European