用于用静态配置包装cli命令的库。

abcmd的Python项目详细描述


Latest PyPI versionhttps://travis-ci.org/modulus-sa/abcmd.svg?branch=masterhttps://codecov.io/gh/modulus-sa/abcmd/branch/master/graph/badge.svg

用于用静态配置包装shell命令的库。

用法

库提供可以使用的abcmd.Commandabc 创建shell命令包装器。

子类化abcmd.Command需要实现以下方法:

  • run

此外,以下方法是可选的,只有在实现时才会运行:

  • dont_run
  • handle_error
  • before_run
  • after_run

decoratorabcmd.error_handler用于修饰 只为匹配错误调用,这些错误没有特定的处理程序 如果实现了handle_error方法,则返回到调用该方法。

示例

自动备份点文件

首先,我们对Command进行子类划分,并描述过程:

importdatetimeimportosimportabcmdclassBackup(abcmd.Command):make='mkdir {directory}'copy='cp {files} {directory}'sync='rsync {directory} {user}@{server}:'defrun(self,*args,**kwargs):os.chdir(os.environ['HOME'])self.make()self.copy()self.sync()defdont_run(self,*args,**kwargs):# don't run between working hoursreturndt.datetime.now().hourinrange(8,16)defhandle_error(self,cmd,error):# if the backup directory exists ignore the error and continuereturncmd.startswith('mkdir')anderror.endswith('File exists')

然后我们用一个用来呈现模板的映射来实例化, 这将返回一个可调用对象,调用该对象时将运行过程:

config={'user':'laerus','directory':'dotfiles','files':['.vimrc','.bashrc','.inputrc'],'server':'192.168.1.10'}runner=Backup(config)runner()

这相当于运行以下命令:

$ cd ~
$ mkdir dotfiles
$ cp .vimrc .bashrc .inputrc dotfiles
$ rsync dotfiles laerus@192.168.1.10:

安装

$ pip install abcmd

兼容性

Python3.5+

许可证

麻省理工学院

作者

abcmdKonstantinos Tsakiltzidis编写。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java无法在未设置数据源的情况下启动springboot应用程序   返回/泛型的类型?   java通过在navigationView中按id重新加载navigationView内容   java实现安卓的状态更新   java Equals()对于两个相等的字符串不返回true   java如何保存屏幕截图(matlab)   java GWT如何在重新加载页面之前确保函数已完全执行   java在Groovy中实现ObjectJSON映射的标准方法是什么?   java在ApacheTomcat中,是否可以通过连接器过滤多个访问日志文件?   java当JVM达到其Xmx限制时,它会强制垃圾收集吗?   如何在JAVA中生成包含特定数字的不同随机数列表?   rcp中透视图之间的java切换   java理解名为“分区”的Linkedlist算法中的无限循环   RestTemplate的java测微计统计信息   Android中使用自定义服务BLE的java读/写特性   java验证输入以确保负数   关于Java扫描器的io基本查询   java如何使用子字符串或其他函数将字符串拆分为单词?   java Storm群集重复元组