From 5b95509101d1afc4ca696b33b89ed3df1f68ed0a Mon Sep 17 00:00:00 2001 From: Mark Suckerberg Date: Mon, 8 Jan 2024 09:52:32 -0600 Subject: [PATCH] Updates grep checks again and fixes issues --- .../icemoon_surface_corporate_rejects.dmm | 2 +- .../whitesands_surface_chokepoint.dmm | 8 +- code/__HELPERS/names.dm | 2 +- code/_globalvars/lists/faxes.dm | 2 +- code/datums/aquarium.dm | 4 +- code/datums/components/aquarium.dm | 4 +- code/datums/ert.dm | 2 +- code/game/objects/effects/step_triggers.dm | 4 +- code/game/objects/items/devices/PDA/PDA.dm | 4 +- code/game/objects/items/melee/misc.dm | 2 +- .../crates_lockers/closets/infinite.dm | 2 +- code/game/objects/structures/tribal_torch.dm | 2 +- .../cargo/blackmarket/blackmarket_market.dm | 2 +- code/modules/client/client_procs.dm | 2 +- code/modules/clothing/head/berets.dm | 2 +- code/modules/jobs/job_types/_job.dm | 2 +- code/modules/paperwork/fax.dm | 2 +- code/modules/reagents/reagent_containers.dm | 2 +- ...l.txt => 1349_station_gravity_removal.txt} | 0 .../{wallmounts.txt => 1839_wallmounts.txt} | 0 ...le.txt => 1940_replace_old_sandpeople.txt} | 0 ...paths.txt => 2052_update_turret_paths.txt} | 0 ...Deepcore.txt => 2063_Removes Deepcore.txt} | 0 tools/ci/check_grep.sh | 102 ++++++++++++++---- 24 files changed, 104 insertions(+), 48 deletions(-) rename tools/UpdatePaths/Scripts/{station_gravity_removal.txt => 1349_station_gravity_removal.txt} (100%) rename tools/UpdatePaths/Scripts/{wallmounts.txt => 1839_wallmounts.txt} (100%) rename tools/UpdatePaths/Scripts/{replace_old_sandpeople.txt => 1940_replace_old_sandpeople.txt} (100%) rename tools/UpdatePaths/Scripts/{update_turret_paths.txt => 2052_update_turret_paths.txt} (100%) rename tools/UpdatePaths/Scripts/{Removes Deepcore.txt => 2063_Removes Deepcore.txt} (100%) diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm index 6442425441ef..d518df47dc6e 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm @@ -840,7 +840,7 @@ "uE" = ( /obj/structure/fans/tiny, /obj/machinery/door/keycard{ - name = "NanoTrasen Secure Solutions"; + name = "Nanotrasen Secure Solutions"; puzzle_id = "NTB1" }, /turf/open/floor/wood, diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_chokepoint.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_chokepoint.dmm index ba1b2f32d28c..5d63a30bf22b 100644 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_chokepoint.dmm +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_chokepoint.dmm @@ -29,7 +29,7 @@ /mob/living/simple_animal/hostile/nanotrasen/ranged{ atmos_requirements = list("min_oxy"=5,"max_oxy"=0,"min_tox"=0,"max_tox"=0,"min_co2"=0,"max_co2"=999,"min_n2"=0,"max_n2"=0); damage_coeff = list("brute"=1,"fire"=1,"toxin"=1,"clone"=1,"stamina"=0,"oxygen"=0); - name = "\improper NanoTrasen Stranded Security Officer" + name = "\improper Nanotrasen Stranded Security Officer" }, /turf/open/floor/plating/asteroid/whitesands/dried, /area/ruin) @@ -38,7 +38,7 @@ atmos_requirements = list("min_oxy"=5,"max_oxy"=0,"min_tox"=0,"max_tox"=0,"min_co2"=0,"max_co2"=999,"min_n2"=0,"max_n2"=0); damage_coeff = list("brute"=1,"fire"=1,"toxin"=1,"clone"=1,"stamina"=0,"oxygen"=0); dir = 4; - name = "\improper NanoTrasen Stranded Security Officer" + name = "\improper Nanotrasen Stranded Security Officer" }, /turf/open/floor/plating/asteroid/whitesands/dried, /area/ruin) @@ -50,7 +50,7 @@ atmos_requirements = list("min_oxy"=5,"max_oxy"=0,"min_tox"=0,"max_tox"=0,"min_co2"=0,"max_co2"=999,"min_n2"=0,"max_n2"=0); damage_coeff = list("brute"=1,"fire"=1,"toxin"=1,"clone"=1,"stamina"=0,"oxygen"=0); dir = 8; - name = "\improper NanoTrasen Stranded Security Officer" + name = "\improper Nanotrasen Stranded Security Officer" }, /turf/open/floor/plating/asteroid/whitesands/dried, /area/ruin) @@ -97,7 +97,7 @@ atmos_requirements = list("min_oxy"=5,"max_oxy"=0,"min_tox"=0,"max_tox"=0,"min_co2"=0,"max_co2"=999,"min_n2"=0,"max_n2"=0); damage_coeff = list("brute"=1,"fire"=1,"toxin"=1,"clone"=1,"stamina"=0,"oxygen"=0); dir = 8; - name = "\improper NanoTrasen Stranded Security Officer" + name = "\improper Nanotrasen Stranded Security Officer" }, /turf/open/floor/plating/asteroid/whitesands/dried, /area/ruin) diff --git a/code/__HELPERS/names.dm b/code/__HELPERS/names.dm index ccacb3fe6a82..820e88389ef1 100644 --- a/code/__HELPERS/names.dm +++ b/code/__HELPERS/names.dm @@ -260,7 +260,7 @@ GLOBAL_LIST_INIT(ship_faction_to_prefixes, list( "CMSV", "CMGSV", ), - "NanoTrasen" = list( + "Nanotrasen" = list( "NTSV", ), )) diff --git a/code/_globalvars/lists/faxes.dm b/code/_globalvars/lists/faxes.dm index 4051e489e1d6..5c78629de283 100644 --- a/code/_globalvars/lists/faxes.dm +++ b/code/_globalvars/lists/faxes.dm @@ -10,7 +10,7 @@ * * button_color - The color of this fax button in the list of all faxes. */ GLOBAL_LIST_INIT(additional_faxes_list, list( - list("fax_name" = "NanoTrasen Central Command", "button_color" = "#46B946"), + list("fax_name" = "Nanotrasen Central Command", "button_color" = "#46B946"), list("fax_name" = "Inteq Management Field Command", "button_color" = "#FACE65"), list("fax_name" = "Colonial Minutemen Headquarters", "button_color" = "#538ACF"), list("fax_name" = "Saint-Roumain Council of Huntsmen", "button_color" = "#6B443D"), diff --git a/code/datums/aquarium.dm b/code/datums/aquarium.dm index 86551b9d25ce..da8c3afeb531 100644 --- a/code/datums/aquarium.dm +++ b/code/datums/aquarium.dm @@ -77,7 +77,7 @@ else InitializeOther() - ADD_TRAIT(parent, TRAIT_FISH_CASE_COMPATIBILE, src) + ADD_TRAIT(parent, TRAIT_FISH_CASE_COMPATIBILE, REF(src)) RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(enter_aquarium)) //If component is added to something already in aquarium at the time initialize it properly. @@ -134,7 +134,7 @@ /datum/component/aquarium_content/PreTransfer() . = ..() - REMOVE_TRAIT(parent, TRAIT_FISH_CASE_COMPATIBILE, src) + REMOVE_TRAIT(parent, TRAIT_FISH_CASE_COMPATIBILE, REF(src)) /datum/component/aquarium_content/Destroy(force, silent) if(current_aquarium) diff --git a/code/datums/components/aquarium.dm b/code/datums/components/aquarium.dm index 86551b9d25ce..da8c3afeb531 100644 --- a/code/datums/components/aquarium.dm +++ b/code/datums/components/aquarium.dm @@ -77,7 +77,7 @@ else InitializeOther() - ADD_TRAIT(parent, TRAIT_FISH_CASE_COMPATIBILE, src) + ADD_TRAIT(parent, TRAIT_FISH_CASE_COMPATIBILE, REF(src)) RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(enter_aquarium)) //If component is added to something already in aquarium at the time initialize it properly. @@ -134,7 +134,7 @@ /datum/component/aquarium_content/PreTransfer() . = ..() - REMOVE_TRAIT(parent, TRAIT_FISH_CASE_COMPATIBILE, src) + REMOVE_TRAIT(parent, TRAIT_FISH_CASE_COMPATIBILE, REF(src)) /datum/component/aquarium_content/Destroy(force, silent) if(current_aquarium) diff --git a/code/datums/ert.dm b/code/datums/ert.dm index 0c0eb282e484..847168876485 100644 --- a/code/datums/ert.dm +++ b/code/datums/ert.dm @@ -102,7 +102,7 @@ leader_role = /datum/antagonist/ert/lp/lieutenant roles = list(/datum/antagonist/ert/lp, /datum/antagonist/ert/lp/medic, /datum/antagonist/ert/lp/engineer) rename_team = "Loss Prevention Team" - polldesc = "a NanoTrasen loss prevention team" + polldesc = "a Nanotrasen loss prevention team" // Inteq diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm index 76412acf2a5b..16d1d35e31ff 100644 --- a/code/game/objects/effects/step_triggers.dm +++ b/code/game/objects/effects/step_triggers.dm @@ -70,7 +70,7 @@ return if(immobilize) - ADD_TRAIT(AM, TRAIT_IMMOBILIZED, src) + ADD_TRAIT(AM, TRAIT_IMMOBILIZED, REF(src)) affecting.Add(AM) while(AM && !stopthrow) @@ -104,7 +104,7 @@ affecting.Remove(AM) - REMOVE_TRAIT(AM, TRAIT_IMMOBILIZED, src) + REMOVE_TRAIT(AM, TRAIT_IMMOBILIZED, REF(src)) /* Stops things thrown by a thrower, doesn't do anything */ diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 34fdcad9f16b..e259e56ccd0e 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -326,8 +326,8 @@ GLOBAL_LIST_EMPTY(PDAs) if(6) dat += "

[PDAIMG(mail)] ExperTrak® Skill Tracker V4.26.2

" - dat += "Thank you for choosing ExperTrak® brand software! ExperTrak® inc. is proud to be a NanoTrasen employee expertise and effectiveness department subsidary!" - dat += "

This software is designed to track and monitor your skill development as a NanoTrasen employee. Your job performance across different fields has been quantified and categorized below.
" + dat += "Thank you for choosing ExperTrak® brand software! ExperTrak® inc. is proud to be a Nanotrasen employee expertise and effectiveness department subsidary!" + dat += "

This software is designed to track and monitor your skill development as a Nanotrasen employee. Your job performance across different fields has been quantified and categorized below.
" var/datum/mind/targetmind = user.mind for (var/type in GLOB.skill_types) var/datum/skill/S = GetSkillRef(type) diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index faf1e6d92995..2dbec7311bd1 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -542,7 +542,7 @@ return if (is_type_in_typecache(target, ovens)) if (held_sausage && held_sausage.roasted) - to_chat("Your [held_sausage] has already been cooked!") + to_chat(src, "Your [held_sausage] has already been cooked!") return if (istype(target, /obj/singularity) && get_dist(user, target) < 10) to_chat(user, "You send [held_sausage] towards [target].") diff --git a/code/game/objects/structures/crates_lockers/closets/infinite.dm b/code/game/objects/structures/crates_lockers/closets/infinite.dm index 8657b764b9bb..ddfe7b50a1c5 100644 --- a/code/game/objects/structures/crates_lockers/closets/infinite.dm +++ b/code/game/objects/structures/crates_lockers/closets/infinite.dm @@ -26,7 +26,7 @@ /obj/structure/closet/infinite/open(mob/living/user, force = FALSE) . = ..() if(. && auto_close_time) - addtimer(CALLBACK(src, PROC_REF(close_on_my_own)), auto_close_time, TIMER_OVERRIDE) + addtimer(CALLBACK(src, PROC_REF(close_on_my_own)), auto_close_time, TIMER_UNIQUE|TIMER_OVERRIDE) /obj/structure/closet/infinite/proc/close_on_my_own() if(close()) diff --git a/code/game/objects/structures/tribal_torch.dm b/code/game/objects/structures/tribal_torch.dm index 0c093662a5aa..5704b0bc5b06 100644 --- a/code/game/objects/structures/tribal_torch.dm +++ b/code/game/objects/structures/tribal_torch.dm @@ -24,7 +24,7 @@ if(!burning) user.visible_message("[user] starts to pull [src] free from the ground....", "You start to pull [src] free from the ground...") if(do_after(user, 20, progress = 1, target = src)) - to_chat("You pull [src] free from the ground.") + to_chat(user, "You pull [src] free from the ground.") var/torch = new /obj/item/candle/tribal_torch user.put_in_hands(torch) qdel(src) diff --git a/code/modules/cargo/blackmarket/blackmarket_market.dm b/code/modules/cargo/blackmarket/blackmarket_market.dm index e70a8af715b5..6979d62e1021 100644 --- a/code/modules/cargo/blackmarket/blackmarket_market.dm +++ b/code/modules/cargo/blackmarket/blackmarket_market.dm @@ -38,7 +38,7 @@ var/price = I.price + shipping[method] // I can't get the price of the item and shipping in a clean way to the UI, so I have to do this. if(uplink.money < price) - to_chat("You don't have enough credits in [uplink] for [I] with [method] shipping.") + to_chat(user, "You don't have enough credits in [uplink] for [I] with [method] shipping.") return FALSE if(I.buy(uplink, user, method)) diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 334818c0e1f9..06d96d7229cc 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -143,7 +143,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( return ..() //redirect to hsrc.Topic() -///dumb workaround because byond doesnt seem to recognize the .proc/Topic() typepath for /datum/proc/Topic() from the client Topic, +///dumb workaround because byond doesnt seem to recognize the PROC_REF(Topic()) typepath for /datum/proc/Topic() from the client Topic, ///so we cant queue it without this /client/proc/_Topic(datum/hsrc, href, list/href_list) return hsrc.Topic(href, href_list) diff --git a/code/modules/clothing/head/berets.dm b/code/modules/clothing/head/berets.dm index 7f83603e7f01..ca107806d69f 100644 --- a/code/modules/clothing/head/berets.dm +++ b/code/modules/clothing/head/berets.dm @@ -15,7 +15,7 @@ /obj/item/clothing/head/beret/archaic name = "archaic beret" - desc = "An absolutely ancient beret, allegedly worn by the first mime to ever step foot on a NanoTrasen station." + desc = "An absolutely ancient beret, allegedly worn by the first mime to ever step foot on a Nanotrasen station." icon_state = "archaicberet" dog_fashion = null diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index 206c0746bc85..74598b3eb678 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -67,7 +67,7 @@ if(back_storage) back_storage.handle_item_insertion(loadout_dumper, TRUE) else if(!spawnee.put_in_hands(loadout_dumper, TRUE)) - to_chat("Unable to place loadout box.") + to_chat(spawnee, "Unable to place loadout box.") /datum/job/proc/override_latejoin_spawn(mob/living/carbon/human/H) //Return TRUE to force latejoining to not automatically place the person in latejoin shuttle/whatever. return FALSE diff --git a/code/modules/paperwork/fax.dm b/code/modules/paperwork/fax.dm index e4087ff3109a..b1696a27fca0 100644 --- a/code/modules/paperwork/fax.dm +++ b/code/modules/paperwork/fax.dm @@ -107,7 +107,7 @@ */ /obj/machinery/fax/emag_act(mob/user) if(!panel_open && !allow_exotic_faxes) - balloon_alert(user, "Open the panel first!") + balloon_alert(user, "open panel first!") return TRUE if(!(obj_flags & EMAGGED)) obj_flags |= EMAGGED diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index 55fdd7ec0e0c..d63debc16e41 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -110,7 +110,7 @@ amount_per_transfer_from_this = possible_transfer_amounts[i+1] else amount_per_transfer_from_this = possible_transfer_amounts[1] - balloon_alert(user, "Transferring [amount_per_transfer_from_this]u") + balloon_alert(user, "transferring [amount_per_transfer_from_this]u") return /obj/item/reagent_containers/attack(mob/M, mob/user, def_zone) diff --git a/tools/UpdatePaths/Scripts/station_gravity_removal.txt b/tools/UpdatePaths/Scripts/1349_station_gravity_removal.txt similarity index 100% rename from tools/UpdatePaths/Scripts/station_gravity_removal.txt rename to tools/UpdatePaths/Scripts/1349_station_gravity_removal.txt diff --git a/tools/UpdatePaths/Scripts/wallmounts.txt b/tools/UpdatePaths/Scripts/1839_wallmounts.txt similarity index 100% rename from tools/UpdatePaths/Scripts/wallmounts.txt rename to tools/UpdatePaths/Scripts/1839_wallmounts.txt diff --git a/tools/UpdatePaths/Scripts/replace_old_sandpeople.txt b/tools/UpdatePaths/Scripts/1940_replace_old_sandpeople.txt similarity index 100% rename from tools/UpdatePaths/Scripts/replace_old_sandpeople.txt rename to tools/UpdatePaths/Scripts/1940_replace_old_sandpeople.txt diff --git a/tools/UpdatePaths/Scripts/update_turret_paths.txt b/tools/UpdatePaths/Scripts/2052_update_turret_paths.txt similarity index 100% rename from tools/UpdatePaths/Scripts/update_turret_paths.txt rename to tools/UpdatePaths/Scripts/2052_update_turret_paths.txt diff --git a/tools/UpdatePaths/Scripts/Removes Deepcore.txt b/tools/UpdatePaths/Scripts/2063_Removes Deepcore.txt similarity index 100% rename from tools/UpdatePaths/Scripts/Removes Deepcore.txt rename to tools/UpdatePaths/Scripts/2063_Removes Deepcore.txt diff --git a/tools/ci/check_grep.sh b/tools/ci/check_grep.sh index 02b77f97821f..4a28010284e1 100755 --- a/tools/ci/check_grep.sh +++ b/tools/ci/check_grep.sh @@ -73,7 +73,12 @@ fi; part "common spelling mistakes" if $grep -i 'nanotransen' $map_files; then echo - echo -e "${RED}ERROR: Misspelling of Nanotrasen detected in maps, please remove the extra N(s).${NC}" + echo -e "${RED}ERROR: Misspelling(s) of Nanotrasen detected in maps, please remove the extra N(s).${NC}" + st=1 +fi; +if $grep 'NanoTrasen' $map_files; then + echo + echo -e "${RED}ERROR: Misspelling(s) of Nanotrasen detected in maps, please uncapitalize the T(s).${NC}" st=1 fi; if $grep -i'centcomm' $map_files; then @@ -96,28 +101,42 @@ if $grep '^\t+ [^ *]' $code_files; then st=1 fi; -section "unit tests" -part "mob/living/carbon/human usage" -if $grep 'allocate\(/mob/living/carbon/human[,\)]' code/modules/unit_tests/**/**.dm || - $grep 'new /mob/living/carbon/human\s?\(' || - $grep 'var/mob/living/carbon/human/\w+\s?=\s?new' ; then - echo - echo -e "${RED}ERROR: Usage of mob/living/carbon/human detected in a unit test, please use mob/living/carbon/human/consistent.${NC}" - st=1 -fi; +#section "unit tests" +#unit_test_files="code/modules/unit_tests/**/**.dm" +#part "mob/living/carbon/human usage" +#if $grep 'allocate\(/mob/living/carbon/human[,\)]' $unit_test_files || +# $grep 'new /mob/living/carbon/human\s?\(' $unit_test_files || +# $grep 'var/mob/living/carbon/human/\w+\s?=\s?new' $unit_test_files ; then +# echo +# echo -e "${RED}ERROR: Usage of mob/living/carbon/human detected in a unit test, please use mob/living/carbon/human/consistent.${NC}" +# st=1 +#fi; section "common mistakes" part "global vars" if $grep '^/*var/' $code_files; then echo - echo -e "${RED}ERROR: Unmanaged global var use detected in code, please use the helpers.${NC}" - st=1 + echo -e "${RED}ERROR: Unmanaged global var use detected in code, please use the helpers.${NC}" + st=1 fi; + part "proc args with var/" if $grep '^/[\w/]\S+\(.*(var/|, ?var/.*).*\)' $code_files; then echo - echo -e "${RED}ERROR: Changed files contains a proc argument starting with 'var'.${NC}" - st=1 + echo -e "${RED}ERROR: Changed files contains a proc argument starting with 'var'.${NC}" + st=1 +fi; + +part "src as a trait source" # ideally we'd lint / test for ANY datum reference as a trait source, but 'src' is the most common. +if $grep -i '(add_trait|remove_trait)\(.+,\s*.+,\s*src\)' $code_files; then + echo + echo -e "${RED}ERROR: Using 'src' as a trait source. Source must be a string key - dont't use references to datums as a source, perhaps use 'REF(src)'.${NC}" + st=1 +fi; +if $grep -i '(add_traits|remove_traits)\(.+,\s*src\)' $code_files; then + echo + echo -e "${RED}ERROR: Using 'src' as trait sources. Source must be a string key - dont't use references to datums as sources, perhaps use 'REF(src)'.${NC}" + st=1 fi; part "balloon_alert sanity" @@ -140,6 +159,13 @@ if $grep 'balloon_alert\(.*?, ?"[A-Z]' $code_files; then st=1 fi; +part "update_icon_updates_onmob element usage" +if $grep 'AddElement\(/datum/element/update_icon_updates_onmob.+ITEM_SLOT_HANDS' $code_files; then + echo + echo -e "${RED}ERROR: update_icon_updates_onmob element automatically updates ITEM_SLOT_HANDS, this is redundant and should be removed.${NC}" + st=1 +fi; + part "common spelling mistakes" if $grep -i 'centcomm' $code_files; then echo @@ -151,22 +177,40 @@ if $grep -ni 'nanotransen' $code_files; then echo -e "${RED}ERROR: Misspelling(s) of Nanotrasen detected in code, please remove the extra N(s).${NC}" st=1 fi; +if $grep 'NanoTrasen' $code_files; then + echo + echo -e "${RED}ERROR: Misspelling(s) of Nanotrasen detected in code, please uncapitalize the T(s).${NC}" + st=1 +fi; part "map json sanity" for json in _maps/configs/*.json do map_path=$(jq -r '.map_path' $json) - while read map_file; do - filename="_maps/$map_path/$map_file" - if [ ! -f $filename ] - then - echo - echo -e "${RED}ERROR: Found an invalid file reference to $filename in _maps/$json ${NC}" - st=1 - fi - done < <(jq -r '[.map_file] | flatten | .[]' $json) + if [ ! -f $map_path ] + then + echo + echo -e "${RED}ERROR: Found an invalid file reference to $map_path in $json ${NC}" + st=1 + fi done +part "updatepaths validity" +missing_txt_lines=$(find tools/UpdatePaths/Scripts -type f ! -name "*.txt" | wc -l) +if [ $missing_txt_lines -gt 0 ]; then + echo + echo -e "${RED}ERROR: Found an UpdatePaths File that doesn't end in .txt! Please add the proper file extension!${NC}" + st=1 +fi; + +number_prefix_lines=$(find tools/UpdatePaths/Scripts -type f | wc -l) +valid_number_prefix_lines=$(find tools/UpdatePaths/Scripts -type f | $grep -P "\d+_(.+)" | wc -l) +if [ $valid_number_prefix_lines -ne $number_prefix_lines ]; then + echo + echo -e "${RED}ERROR: Detected an UpdatePaths File that doesn't start with the PR number! Please add the proper number prefix!${NC}" + st=1 +fi; + section "515 Proc Syntax" part "proc ref syntax" if $grep '\.proc/' $code_x_515 ; then @@ -177,6 +221,12 @@ fi; if [ "$pcre2_support" -eq 1 ]; then section "regexes requiring PCRE2" + part "empty variable values" + if $grep -PU '{\n\t},' $map_files; then + echo + echo -e "${RED}ERROR: Empty variable value list detected in map file. Please remove the curly brackets entirely.${NC}" + st=1 + fi; part "to_chat sanity" if $grep -P 'to_chat\((?!.*,).*\)' $code_files; then echo @@ -195,6 +245,12 @@ if [ "$pcre2_support" -eq 1 ]; then echo -e "${RED}ERROR: File(s) with no trailing newline detected, please add one.${NC}" st=1 fi + #part "improper atom initialize args" + #if $grep -P '^/(obj|mob|turf|area|atom)/.+/Initialize\((?!mapload).*\)' $code_files; then + # echo + # echo -e "${RED}ERROR: Initialize override without 'mapload' argument.${NC}" + # st=1 + #fi; else echo -e "${RED}pcre2 not supported, skipping checks requiring pcre2" echo -e "if you want to run these checks install ripgrep with pcre2 support.${NC}"