用于用静态配置包装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 Intellij通过方法中的包查找用法   java中VS代码和打包命名的问题   将java CMS功能集成到具有高度动态内容的网站(Lucene/Mysql/Nosql)的策略   oracle的java类强制转换异常。jdbc。驾驶员OracleConnection   字节码向JVM添加上指令   如何在抽象类中执行java方法?   java是否可以在apache访问日志中排除指定的GET参数?(作者:W7开发环境)   java如何获取已安装音频播放器的列表?   尝试向HS学生展示如何使用Java访问MS数据库   使用正则表达式java对给定行中的特定字符串进行计数   java JOOQ Select查询中的Select计数   方法Java,如何从二维双精度数组中找到特定值?   获取图像URL的java正则表达式   java在切换到新的窗口驱动程序后找不到元素