Compare commits

..

15 Commits

Author SHA1 Message Date
Alexey Chubar c47306b609 fixed PROP macro losing quotation marks from string props
Publish PHP Package / docker (push) Successful in 8s Details
2024-07-09 11:50:00 +03:00
Pavel Shevaev 6d6e9e6e7b Добавить .gitea/workflows/build_composer.yaml
Publish PHP Package / docker (push) Successful in 4s Details
2024-02-13 14:55:39 +03:00
wrenge acebcca92b VCLASSID implemented 2023-11-14 17:40:46 +03:00
Pavel Shevaev 861c5d4608 Making PHPStan happy 2023-08-16 14:12:22 +03:00
wrenge 2d0129267b Merge branch 'master' of https://git.bit5.ru/bit/jsm_macros 2023-07-06 10:03:58 +03:00
wrenge 4c4d1af1a5 New WEEK_DATE macro 2023-07-06 10:02:58 +03:00
Pavel Shevaev b33d7a471c Merge branch 'master' of https://git.bit5.ru/bit/jsm_macros 2023-06-26 15:10:18 +03:00
Pavel Shevaev 24b2a0ee45 Adding initial version of OVERRIDE(..) macro 2023-06-26 15:09:59 +03:00
Alexey Chubar 05e640d6a3 Version v1.2.5 2023-06-21 12:24:45 +03:00
Alexey Chubar eb0ee2a587 Version v1.2.5 2023-06-21 12:23:02 +03:00
Alexey Chubar d44fe3cccb Version v1.2.4 2023-06-21 12:11:35 +03:00
Alexey Chubar ab4ce6d96a Merge 2023-06-20 19:34:54 +03:00
Alexey Chubar fa18e07f23 Added PROP macro 2023-06-20 19:33:06 +03:00
Pavel Shevaev d079c79d50 Removing non-working stuff 2023-06-02 15:33:55 +03:00
Pavel Shevaev 04179fcd26 Adding UNWRAP macro which removes config surrounding braces 2023-05-29 11:52:17 +03:00
2 changed files with 143 additions and 4 deletions

View File

@ -0,0 +1,29 @@
name: Publish PHP Package
on:
push:
tags:
- 'v*'
jobs:
docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Get tag name
run: echo "TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: zip and send
run: |
ls -la
apt-get update -y
apt-get install -y zip
cd ../
zip -r ${{ gitea.event.repository.name }}.zip ${{ gitea.event.repository.name }} -x '*.git*'
curl -v \
--user composer-pbl:${{ secrets.COMPOSER_PSWD }} \
--upload-file ${{ gitea.event.repository.name }}.zip \
https://git.bit5.ru/api/packages/bit/composer?version=${{ env.TAG }}

View File

@ -1,5 +1,21 @@
<?php
/**
* @global
*/
function macro_VCLASSID($proc, $class)
{
return '"$id" : ' . constant("$class::CLASS_ID");
}
/**
* @global
*/
function macro_VCLASS($proc, $class)
{
return '"__vclass" : ' . constant("$class::CLASS_ID");
}
/**
* @global
*/
@ -31,6 +47,51 @@ function macro_INTERVAL($proc, $spec)
return $sec;
}
/**
* @global
*/
function macro_WEEK_DATE($proc, $spec)
{
$parts = explode(" ", $spec);
$dow_str = $parts[0];
$time_str = $parts[1];
$day = 0;
switch ($dow_str) {
case 'MONDAY':
$day = 0;
break;
case 'TUESDAY':
$day = 1;
break;
case 'WEDNESDAY':
$day = 2;
break;
case 'THURSDAY':
$day = 3;
break;
case 'FRIDAY':
$day = 4;
break;
case 'SATURDAY':
$day = 5;
break;
case 'SUNDAY':
$day = 6;
break;
default:
throw new Exception("Bad day of week: $spec");
}
$stamp = strtotime($time_str);
if($stamp === false)
throw new Exception("Bad time: $spec");
$stamp += $day * 24 * 60 * 60;
return $stamp;
}
/**
* @global
*/
@ -114,7 +175,7 @@ function macro_SELF_CONF_ID($jsm)
$proto_id = 0;
$alias = "";
if(!\taskman\config_get_header($file, $proto_id, $alias))
$proto_id = \taskman\config_get_id($file);
throw new Exception("No valid header for config: $file");
return $proto_id;
}
@ -142,15 +203,18 @@ function macro_BOOL($jsm, $expr)
*/
function macro_IS_DEV($jsm)
{
return taskman_propor("GAME_IS_DEV", 0);
return \taskman\getor("GAME_IS_DEV", 0);
}
/**
* @global
*/
function macro_VCLASS($proc, $class)
function macro_PROP($jsm, $expr)
{
return '"vclass__" : ' . constant("$class::CLASS_ID");
$res = \taskman\get($expr);
if(is_string($res))
return '"'.$res.'"';
return $res;
}
/**
@ -161,3 +225,49 @@ function macro_ITEM($proc, $proto_id, $amount)
return array('proto_id' => $proto_id, 'amount' => $amount);
}
/**
* @global @raw_args
*/
function macro_UNWRAP($jsm, $content)
{
$content = trim($content);
$content = ltrim($content, '{');
$content = rtrim($content, '}');
return $content;
}
function _array_merge_recursive_distinct(array $array1, array $array2)
{
$merged = $array1;
foreach($array2 as $key => $value)
{
if(is_array($value) && isset($merged[$key]) && is_array($merged[$key]))
$merged[$key] = _array_merge_recursive_distinct($merged[$key], $value);
else
$merged[$key] = $value;
}
return $merged;
}
/**
* @global @raw_args
*/
function macro_OVERRIDE($jsm, $content)
{
$items = \jzon_parse($content);
if(!is_array($items))
throw new Exception("OVERRIDE contents not an array");
if(sizeof($items) != 2)
throw new Exception("OVERRIDE array size is not 2, it's " . sizeof($items));
$merged = _array_merge_recursive_distinct($items[0], $items[1]);
$json = json_encode($merged, JSON_UNESCAPED_LINE_TERMINATORS | JSON_UNESCAPED_SLASHES);
$json = ltrim($json, '{');
$json = rtrim($json, '}');
return $json;
}