GXL 语法
结构
#![allow(unused)] fn main() { mod envs { env dev { } } mod main { flow conf { } } }
- mod 模块
- env 环境
- flow 处理流
flow
示例
简单使用
#![allow(unused)] fn main() { flow test { gx.echo ( "hello world" ); } }
增加描述
#![allow(unused)] fn main() { #[usage(desp="test flow")] flow test() { gx.echo ( "hello world" ); } }
编排
#![allow(unused)] fn main() { flow head { gx.echo ( "head"; ) } flow tail { gx.echo ( "tail"; ) } // 执行过程为: test -> head -> tail flow @test | head | tail { } flow test | head | tail { } // 执行过程为: head -> tail -> test flow | head | tail |@test { } //执行过程为: head -> test -> tail flow head | @test | tail { gx.echo ( "test"; ) } }
定义
#![allow(unused)] fn main() { flow [ <flows>|] @<flow_name> [|<flows>] { } }
分支
#![allow(unused)] fn main() { mod main { api = "1.0" flow conf { if ${API} == "1.0" { gx.echo ( value : "this is if true cond " ); } else { gx.echo ( value : "this is if false cond" ); } } } }
通配比较
#![allow(unused)] fn main() { mod main { api = "1.0" flow conf { if ${API} =* "1*" { gx.echo ( value : "this is if true cond " ); } else { gx.echo ( value : "this is if false cond" ); } } } }
env
环境设定集合
示例
#![allow(unused)] fn main() { env dev { root = "./" ; } }
#![allow(unused)] fn main() { #[useage(desp="开发环境")] env dev { root = "./" ; } }
mix env
#![allow(unused)] fn main() { env base {} env dev : base { root = "./" ; } }
- 默认env: default , 可以省去 gflow -e 参数 ;
定义
#![allow(unused)] fn main() { env <name> [: <mix-envs>] { } }
- name :
- mix-envs : 可继承的env
mod
mod 是顶级的组织结构
只有 envs,main 两个mod 中的 env 和 flow cli 直接load
#![allow(unused)] fn main() { mod envs { prop1 = "prop1" env dev {} } mod main { prop1 = "prop1" flow test {} } }
执行
#![allow(unused)] fn main() { gflow -e dev test }
mod 注解
mod继承
示例
#![allow(unused)] fn main() { }
Activity
- 包装shell 成为 activity
#![allow(unused)] fn main() { activity copy { src = "" ; dst = "" ; log = "1" ; out = "true" executer = "copy_act.sh" ; } }