Cobra

golang命令行库cobra

房东的猫 提交于 2020-04-21 08:59:52
Cobra is both a library for creating powerful modern CLI applications as well as a program to generate applications and command files. github: https://github.com/spf13/cobra.git 参考: 1. grpc+grpc-gateway 「连载二」Hello World 来源: oschina 链接: https://my.oschina.net/u/4272135/blog/3287931

手把手教你开发docker一样的命令行

微笑、不失礼 提交于 2020-04-09 19:04:50
目录 前言 一、安装 二、初始化应用 初始化项目 创建入口文件cmd/root.go 创建主程序main.go 三、如何自定义命令 创建hello子命令 创建version子命令 四、如何设置flag选项 全局选项 本地选项 设置必填 绑定配置 五、如何设置arguments 使用示例 六、如何使用参数 获取flag参数 获取args参数 七、如何设置钩子 总结 前言 Cobra 是一个强大的用来构建命令行程序的库,许多流行的Go项目都是用它来构建的,比如Kubernetes、Docker、etcd、Istio、Github CLI等等。 接下来,演示开发一个我们自己的命令行程序chenqionghe,模仿一下docker命令行,预期功能如下 # 查看帮助 chenqiong -h # 查看版本,类似docker version chenqionghe version # 查看hello命令帮助,类似docker ps -h chenqionghe hello -h # 使用hello命令,类似docker run --name app --volume /app/data chenqionghe hello --name light-weight-baby --author gym Cobra基于三个基本概念 commands(行为) arguments(位置参数) flags

Jenkins CLI 命令行 v0.0.26

心不动则不痛 提交于 2020-02-28 09:32:31
本文首发于: Jenkins 中文社区 作者:Zhao Xiaojie Jenkins CLI 命令行 v0.0.26 jcli-v0.0.26 发布 本次版本发布,增加了两种包发行版: snapcraft 、 Chocolatey 。 snapcraft 是由 Ubuntu 提供的一个全新的 包管理器,它可以在 CentOS、Ubuntu、SUSE 等12种操作系统下使用。因此,Linux 用户可以更加方便地使用 jcli 。 命令行自动补全的特性可以大幅提高用户的工作效率,除了 bash 的用户外, zsh 以及 powerShell 的用户,现在也可以使用 jcli 的命令补全特性了。 🚀 功能 支持查看 jcli 的变更日志 (#328) @LinuxSuRen 支持根据父目录搜索任务 (#327) @LinuxSuRen 支持升级所有的插件 (#258) @yJunS 增加对 zsh 和 powerShell 的命令行补全的支持 (#296) @LinuxSuRen 🐛 缺陷修复 修复了无法启动非 LTS 的 Jenkins (#322) @LinuxSuRen 修复无法创建凭据的问题 (#325) @LinuxSuRen 📝 文档完善 增加对 snapcraft 的支持 (#321) @LinuxSuRen 增加对 Chocolatey 的支持 (#312)

Go 每日一库之 cobra

回眸只為那壹抹淺笑 提交于 2020-02-27 12:59:50
简介 cobra 是一个命令行程序库,可以用来编写命令行程序。同时,它也提供了一个脚手架, 用于生成基于 cobra 的应用程序框架。非常多知名的开源项目使用了 cobra 库构建命令行,如 Kubernetes 、 Hugo 、 etcd 等等等等。 本文介绍 cobra 库的基本使用和一些有趣的特性。 关于作者 spf13 ,这里多说两句。spf13 开源不少项目,而且他的开源项目质量都比较高。 相信使用过 vim 的都知道 spf13-vim ,号称 vim 终极配置。 可以一键配置,对于我这样的懒人来说绝对是福音。他的 viper 是一个完整的配置解决方案。 完美支持 JSON/TOML/YAML/HCL/envfile/Java properties 配置文件等格式,还有一些比较实用的特性,如配置热更新、多查找目录、配置保存等。 还有非常火的静态网站生成器 hugo 也是他的作品。 快速使用 第三方库都需要先安装,后使用。下面命令安装了 cobra 生成器程序和 cobra 库: $ go get github.com/spf13/cobra/cobra 如果出现了 golang.org/x/text 库找不到之类的错误,需要手动从 GitHub 上下载该库,再执行上面的安装命令。我以前写过一篇博客 搭建 Go 开发环境 提到了这个方法。 我们实现一个简单的命令行程序

Java/Swing offscreen rendering (Cobra HTMLPanel -> BufferedImage) Problem: Component doesn't finish redrawing first

馋奶兔 提交于 2019-12-24 16:27:49
问题 I'm trying to render the contents of a the Java/Swing Cobra HTML renderer to an offscreen BufferedImage, for use elsewhere in my app: slideViewPanel.setDocument(document, rendererContext); BufferedImage test = new BufferedImage(300,300,BufferedImage.TYPE_INT_RGB); Graphics g = test.getGraphics(); slideViewPanel.paint(g); The resulting image in g shows a partially rendered page -- sometimes the contents of the HTMLFrame before the new document was set; sometimes a half-rendered version of the

DM 源码阅读系列文章(二)整体架构介绍

拜拜、爱过 提交于 2019-11-27 19:41:43
作者:张学程 本文为 DM 源码阅读系列文章的第二篇, 第一篇文章 简单介绍了 DM 源码阅读的目的和规划,以及 DM 的源码结构以及工具链。从本篇文章开始,我们会正式开始阅读 DM 的源码。 本篇文章主要介绍 DM 的整体架构,包括 DM 有哪些组件、各组件分别实现什么功能、组件之间交互的数据模型和 RPC 实现。 整体架构 通过上面的 DM 架构图,我们可以看出,除上下游数据库及 Prometheus 监控组件外,DM 自身有 DM-master、DM-worker 及 dmctl 这 3 个组件。其中,DM-master 负责管理和调度数据同步任务的各项操作,DM-worker 负责执行具体的数据同步任务,dmctl 提供用于管理 DM 集群与数据同步任务的各项命令。 DM-master DM-master 的入口代码在 cmd/dm-master/main.go ,其中主要操作包括: 调用 cfg.Parse 解析命令行参数与参数配置文件 调用 log.SetLevelByString 设置进程的 log 输出级别 调用 signal.Notify 注册系统 signal 通知,用于接受到指定信号时退出进程等 调用 server.Start 启动 RPC server,用于响应来自 dmctl 与 DM-worker 的请求 在上面的操作中,可以看出其中最关键的是步骤 4