文档章节

code-push 交互式命令行脚本

郁也风
 郁也风
发布于 2016/06/25 14:14
字数 377
阅读 352
收藏 0

一直觉得 RN 的升级方式挺酷的(交互式命令行),研究了一下,搞了个 code-push 的交换脚本。

准备工作

npm install inquirer --save-dev npm install shelljs --save-dev npm install chalk --save-dev

当然,code-push 环境必须已经设置好了。

脚本内容

名称: tools/codepush-cli.js

/**
 * code-push 交互式命令行发布工具, 可以根据相应提示进行选择或输入, 更加便利。
 */
/* eslint-disable */
var shell = require("shelljs");
var inquirer = require('inquirer');
var chalk = require("chalk");

console.log(chalk.cyan("  _____        __  " + chalk.green("  ___           __ ")));
console.log(chalk.cyan(" / ___/__  ___/ /__" + chalk.green(" / _ \\__ _____ / / ")));
console.log(chalk.cyan("/ /__/ _ \\/ _  / -_)" + chalk.green(" ___/ // (_-</ _ \\")));
console.log(chalk.cyan("\\___/\\___/\\_,_/\\__/" + chalk.green("_/   \\_,_/___/_//_/")));
console.log(chalk.cyan("======================================"));

console.log(chalk.bold.cyan('\n欢迎使用 code-push 交互式命令行发布工具\n'));

var questions = [{
    type: 'list',
    name: 'platform',
    message: '请选择发布平台',
    choices: ['iOS', 'Android'],
    filter: function (val) {
        return val.toLowerCase();
    }
}, {
    type: 'list',
    name: 'deploymentName',
    message: '请选择发布目标',
    choices: ['Staging', 'Production']
}, {
    type: 'input',
    name: 'targetBinaryVersion',
    message: '请输入 iOS 或 Android 代码当前版本号(格式为: 1.0.0):',
    validate: function (value) {
        var pass = value.match(/^[\d]+\.[\d]+\.[\d]+$/i);
        if (pass) {
            return true;
        }

        return '请输入有效版本号(格式为: 1.0.0)';
    }
}, {
    type: 'input',
    name: 'description',
    message: '请输入更新信息, [\\n]换行',
    default: '修正一些 Bug'
}, {
    type: 'confirm',
    name: 'confirm',
    message: '确定发布?',
    default: false
}];

inquirer.prompt(questions).then(function (answers) {
    console.log();

    if (!answers.confirm) {
        console.log(chalk.bold.red('放弃发布!'));
    } else {
        var cmd = `code-push release-react YOUR_APP_NAME ${answers.platform} --deploymentName ${answers.deploymentName}  --targetBinaryVersion "${answers.targetBinaryVersion}" --description "${answers.description}"`;
        console.log(chalk.cyan('> ' + cmd));
        console.log();

        shell.exec(cmd);
    }

    console.log();
});

效果图

效果1

效果2

最后

可以根据自己的项目需要修改上面的 YOUR_APP_NAME, 当然,也可以很方便扩充命令,例如提供 Mandatory 设置。

还可以在 package.jsonscript 里面配置一行:

"codepush": "node tools/codepush-cli.js"

© 著作权归作者所有

郁也风
粉丝 16
博文 31
码字总数 17009
作品 0
长宁
项目经理
私信 提问
DevExtreme 18.2 发布,响应式 Web 开发 JS 组件

DevExtreme 宣布他们的新半年度发布。DevExtreme 是用于响应式 Web 开发的 HTML5 JavaScript 组件套件,跨平台组件套件包含为触摸设备和传统桌面创建响应式 Web 应用所需的全部内容:数据网格...

DevExtreme
2018/11/09
574
0
第三章:Creating Utilities--24.一个交互式的计算器

之前写了第九个脚本,允许命令行调用bc进行浮点计算,所以现在必然要写一个交互式的,基于命令行的计算器封装脚本。它有一个优点:即使加上帮助信息,也很短。 #!/bin/sh calc.sh -- 一个看起...

十舍七匹狼
2013/01/09
48
0
使用 Impala Shell(翻译)

使用 Impala Shell 你可以使用 Impala shell 工具 (impala-shell) 配置数据库和表、插入数据和执行查询。你可以在交互式会话里提交 SQL 语句进行即席查询和探测(For ad hoc queries and exp...

weiqingbin
2014/01/07
824
0
创建交互式rpm包

所谓交互式的rpm包,就是说在安装过程中接受用户输入,来完成诸如许可证确认、创建配置文件等工作。 首先要说明,不推荐使用rpm创建交互式安装包。rpm的设计目标就是在完全不需要用户干涉的前...

Norman_li
2016/06/03
0
0
IPython 5.2.0 发布,Python 命令行交互

IPython 5.2.0 发布了,IPython 是 Python 的原生交互式 shell 的增强版,可以完成许多不同寻常的任务,比如帮助实现并行化计算;主要使用它提供的交互性帮助,比如代码着色、改进了的命令行...

凝小紫
2017/01/30
735
1

没有更多内容

加载失败,请刷新页面

加载更多

检查字符串是否不为空且不为空

如何检查字符串是否不为null也不为空? public void doStuff(String str){ if (str != null && str != "**here I want to check the 'str' is empty or not**") { /* handl......

javail
4分钟前
7
0
No module named 'apscheduler.schedulers'

关于 ModuleNotFoundError: No module named 'apscheduler.schedulers' 和 ModuleNotFoundError: No module named 'apscheduler' 的问题,网上有不少解决。大多数都是因为,文件起名与模块名......

開援带碼
25分钟前
27
0
如何查看Android的系统版本?

有谁知道我怎么能检查系统版本(例如1.0 , 2.2 ,等)编程? #1楼 我无法对答案发表评论,但是Kaushik的答案存在一个严重错误:SDK_INT与系统版本不同,但实际上是指API级别。 if(Build.VER...

技术盛宴
50分钟前
35
0
引入AI变量,精准农业正在加速豹变?

  不久前,“江苏省脱贫率达 99.99%,尚未脱贫人数仅剩 6 户、17 人”这样一则新闻刷屏。“把这 17 个人迁出,江苏就全省脱贫”、“最后这 6 户人家拖了后腿”,在网民们的调侃和质疑声背后...

水果黄瓜
54分钟前
41
0
Elasticsearch系列---结构化搜索

概要 结构化搜索针对日期、时间、数字等结构化数据的搜索,它们有自己的格式,我们可以对它们进行范围,比较大小等逻辑操作,这些逻辑操作得到的结果非黑即白,要么符合条件在结果集里,要么...

清茶豆奶
今天
69
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部