# myrelease
==================

这是一个根据lazarus的lpi格式项目文件，快速批量打包生成deb、rpm包的Linux脚本。支持多CPU架构。多OS平台(开发中)。主要详细功能：
* 自动生成rpm、deb包，自动填入必要信息
* 包含i18n的翻译文件
* 包含必要的.icon文件、.desktop文件
* 支持多CPU架构
* 支持多OS平台（开发中）

### 编译
这是一个脚本，无需编译即可使用

### 安装
确保“myrelease.sh”具有可执行权限。
使用终端进入，并执行“./myrelease.sh -i”
根据提示输入密码。如果不安装，则每次使用本脚本需要在终端包含完整的路径。

### 运行环境
myrelease需要以下包/命令支持：
xmlstarlet、dpkg-deb、rpmbuild、zip、fakeroot
脚本运行时会检测，如果缺少必要的包会提示错误。

### 使用
* 默认打包当前目录下的所有lpi文件所包含的项目，生成rpm、deb包，输出目录.dist/。所有信息默认。
~$ cd /your_lazarus_project_dir/
~$ myrelease 

* 打包指定lpi文件所包含的项目，生成rpm、deb包，输出目录./dist/。所有信息默认。
~$ myrelease -f /your_lazarus_project_dir/project.lpi

* 其他参数含义
  -o dir        指定输出包文件的目录 (默认 ./dist/)
  -p            版本号格式化成类似 XXXX-XX-XX
  -q            静默模式，最少的输出信息
  -z            输出的包文件压缩后输出
  -k            不删除临时文件，用于调试分析
  -i            安装myrelease至/usr/bin/目录
  -c            清除config文件
  -v            输出版本号
  -h            显示帮助

* 修改当前项目/包的信息
使用文本编辑器修改“your_lazarus_project_dir/myrelease.cfg”文件。需要注意，至少要在对应目录执行过一次myrelease

* 修改myrelease默认的信息，避免每次修改“myrelease.cfg”
使用文本修改器修改“~/.config/myrelease/config”

* 范例
压缩包中“testprjsingle”“testprjmulti”是两个范例
testprjsingle 是一个默认lazarus空白项目
testprjmulti 是一个多CPU架构lazarus空白项目，包含“linux_x86”、“linux_aarch64”、“win_x86”三种

### 已知问题
* win平台功能未完成
* rpm group, debian section, desktop categories未测试，可能出现问题
* 不支持额外附加程序/库

### 版权协议
MIT

### 联系作者
Eric Quan <gasensor@sina.com> / <gasensor@gmail.com>
www.gasensor.cn



