Crates.io | pipeline-cli |
lib.rs | pipeline-cli |
version | 0.12.0 |
source | src |
created_at | 2023-12-08 08:41:27.66916 |
updated_at | 2024-04-12 10:35:56.081202 |
description | A build tools written by rust to build project and execute a serials of task. |
homepage | |
repository | https://github.com/yanguiyuan/pipeline-cli.git |
max_upload_size | |
id | 1061829 |
size | 256,119 |
一个rust写的windows平台的构建工具,用于快捷执行一系列脚本。该命令行工具的想法来源是pipelight,但是pipelight不支持windows,所以写了这个工具。
使用cargo进行安装
cargo install pipeline-cli
使用import pipe
导入
//行注释
/* 注释段 */
/*
注释段
*/
fn add(a:Int,b:Int){
return a+b
}
print(add(12,5))
let a=add(12,5)
a.print()//如果参数是函数的第一个参数,可以通过.函数的方式进行调用。
let a=true
if a{
println("Hello")
}
let,var,val目前是等价的,val和var目的是使用kotlin script 的代码提示
let a=1
let a=1.25
let a="hello"
var a=true
val b=a
6.循环
a=3
while a>1{
println(a)
a=a-1
}
目前仅支持+,-,*,/,%,>,<,==等二元表达式
let ast=PipelineEngine::default()
.eval_stmt_blocks("a=[1,2,3,4];println(a[1]);a[0]=10;println(a)").await.unwrap();
8.模块导入
默认会去用户目录的.pipeline/package下寻找,以下示例会去寻找~/.pipeline/package/math.kts文件,如果没找到,默认去当前目录下找math.kts
import math
假设我们需要再一个目录下生成项目相关文件,其结构如下:
internal/
pkg/
main.go
go.mod
则我们需要确保~/.pipeline/layout/go/layout.kts文件中内容如下:
import layout
val projectName = readString("请输入项目名:");
layout("go"){
template("main.go","main.go.tpl")
template("go.mod","go.mod.tpl"){
ctx.set("projectName",projectName)
}
folder("internal")
folder("pkg")
}
同目录下的main.go.tpl内容如下:
package main
import "fmt"
func main(){
fmt.Println("Hello,World!")
}
同目录下的go.mod.tpl内容如下
module ${projectName}
go 1.21
最后我们创建一个demo目录,切换到demo目录下,使用一下命令:
pipeline layout go
它会提示你输入项目名,输入完毕后会生成对应的结构
需要在项目目录下添加一个名为pipeline.kts的文件,文件语法采用kotlin dsl语法,仅支持函数使用内建函数进行调用
一个pipeline.kts的例子:
pipeline("dev"){
step("web"){
workspace("./web")
cmd("yarn dev")
}
step("tailwind"){
workspace("./web")
cmd("npx tailwindcss -i./src/style.css -o./src/output.css --watch")
}
step("go"){
workspace("./test")
copy("cmd/main.go","t/main.go")
move("t/main.go","cmd/main.go")
}
}
pipeline("hz"){
step("new"){
workspace("./")
cmd("hz new -module github.com/yanguiyuan/cloudspace -idl idl/api/api.thrift")
cmd("go mod tidy")
}
step("clean"){
workspace("./")
cmd("Remove-Item -Path ./biz -Recurse ")
cmd("Remove-Item -Path ./script -Recurse ")
cmd("del ./.hz")
cmd("del ./build.sh")
cmd("del ./router.go")
cmd("del ./router_gen.go")
cmd("del ./main.go")
}
}
1.执行Pipeline dev下的Step web相关命令:
pipeline run dev.web
或者运行dev下的所有step
pipeline run dev
2.列出所有的任务
pipeline list
3.初始化项目使用模板
pipeline init -t <template_name>
//或者
pipeline init --template <template_name>
//例如
pipeline init -t hertz-vue
4.列出所有可用的模版(模版存放在用户目录的.pipeline目录下,可能需要你手动创建目录)
pipeline template
5.将当前项目中的pipeline.kts保存为模版
pipeline template -a/--add <template_name>
6.移除指定模版
pipeline template -r/--remove <template_name>