教育房产时事环球科技商业
投稿投诉
商业财经
热点动态
科技数码
软件应用
国际环球
晨报科学
新闻时事
信息智能
汽车房产
办公手机
教育体育
生活生物

插件清理(用Rust清理eclipse自动升级后的重复插件)

  插件清理(用Rust清理eclipse自动升级后的重复插件)
  1. 简介
  eclipse自动升级版本之后,在/eclipse/plugins目录仍然会保留旧版本的插件,想要写一个脚本清理插件,正好最近刚学习rust编程,便用rust开发了一个eclipse插件清理工具eclean。
  本文简单介绍清理工具的开发过程,详细源代码可以在github下载并自行编译:gitclonehttps://github.com/leexgone/ecleaner.gitcd./ecleanercargobuild--release
  工具支持清理eclipse升级后plugins目录下的冗余插件。
  清理eclipse插件目录并将清理插件备份:ecleanc:\eclipsee:\backup\eclipse
  检测eclipse目录下是否含有可清理的插件:eclean-tc:\eclipse
  更多命令可以查阅:eclean--help2.创建工程
  使用cargo new elean创建工程,调整Cargo.toml内容并在src目录下创建lib.rs文件。3.命令行参数解析
  eclean是一个命令行工具,首先我们需要支持命令行参数的解析。
  rust的clap库是一套功能强大的命令行参数解析库,这里我们使用clap解析命令行参数。3.1 引用clap库
  在Cargo.toml里加入clap依赖:[dependencies]clap="2.33.3"3.2 创建Config结构
  编辑lib.rs代码,定义Config结构存储命令配置信息,使用clap解析命令参数:usestd::{collections::HashMap,error::Error,fs,io::{self,ErrorKind},path::{Path,PathBuf},usize};usestd::fmt::Display;useclap::{App,Arg};pubstructConfig{  dir:String,  backup:String,  verbose:bool,  test:bool,  force:bool,  }implDisplayforConfig{fnfmt(&self,f:&mutstd::fmt::Formatter<'_>)->std::fmt::Result{write!(f,"[dir={},backup={},verbose={},test={},force={}]",self.dir,self.backup,self.verbose,self.test,self.force)  }  }implConfig{pubfnnew()->Result<Config,String>{letmatches=App::new("eclean")  .version("1.1.0")  .author("StevenLee<leexgone@163.com>")  .about("Cleanuptheduplicatedpluginsineclipsepluginsdirectory.")  .arg(Arg::with_name("DIR")  .help("Theeclipserootdirectorytobecleaned.The`/plugins`directoryshouldbeunderthisdirectory.")  .required(true)  .index(1))  .arg(Arg::with_name("BACKUP")  .help("Specifyabackupdirectorytostoretheremovedplugins.")  .required_unless("test")  .index(2))  .arg(Arg::with_name("verbose")  .short("v")  .long("verbose")  .help("Useverboseoutput"))  .arg(Arg::with_name("test")  .short("t")  .long("test")  .help("Scanandfindtheduplicatedplugins,butdonothing"))  .arg(Arg::with_name("force")  .short("f")  .long("force")  .help("Cleanuptheduplicatedpluginsautomatically.Neverprompt."))  .get_matches();letdir=matches.value_of("DIR").unwrap();letbackup=matches.value_of("BACKUP").unwrap_or("");letverbose=matches.is_present("verbose");lettest=matches.is_present("test");letforce=matches.is_present("force");letroot_path=Path::new(dir);if!root_path.is_dir(){letmsg=format!("DIR'{}'doesnotexist",dir);returnErr(msg);  }if!test{letbackup_path=Path::new(backup);if!backup_path.is_dir(){letmsg=format!("BACKUPdir'{}'doesnotexist",backup);returnErr(msg);  }  }Ok(Config{  dir:String::from(dir),  backup:String::from(backup),  verbose,  test,  force,  })  }  }
  Config结构存储了用户参数命令的配置信息:
  dir:eclipse目录(必须)
  backup: 清理插件备份目录(必须,在test模式下可以忽略)
  verbose:输出详细日志
  test:仅检测eclipse插件目录,不执行清理操作
  force:不询问用户强制清理插件
  这里我们对用户的输入进行了检测,在目录不存在时提示错误;而必须参数的校验则通过clap完成即可。

似水年华的意思(似水流年是什么意思词语解释)似水年华的意思(似水流年是什么意思词语解释)似水流年是什么意思?似水流年是什么?成语是我们展示文化水平的一种方式,但是很多成语我们都可能未必知道它的意思,那么似水流年是什么?今天我备胎是什么意思(如何判断自己是不是感情中的备胎)备胎是什么意思(如何判断自己是不是感情中的备胎)一提到备胎,很多人自然的就把这个词和屌丝联系到了一起,觉得备胎就是一些女神的备用选择,但其实,这样的说法过于片面了,那备胎到底是什么淼的字义(淼取名字的意思是什么)淼的字义(淼取名字的意思是什么)谈到给孩子取名,宝爸妈们应该耗费了不少心思,各种绝招可能都用上了,比如翻字典看诗经楚辞唐诗宋词等等。起一个好的名字不容易,要耗费不少时间和精力,尚名carrot是什么意思(carrot英文是什么意思)carrot是什么意思(carrot英文是什么意思)这两个含义对于学习了几十年英语的人,如果没有专门搜索过,在学习中也很少碰到,这也就是中国人的英语学习方法的缺点和不足之处。1。c命理学入门(八字命理简易入门步骤)命理学入门(八字命理简易入门步骤)一排八字1排年柱查万年历2排日柱查万年历3排月柱1)找到月支2)由年干月支推导月干4排时柱1)找到时支2)由日干时支推导时干5补藏干二排岁运(大运中医学专业学什么(中医学类专业全息解读)中医学专业学什么(中医学类专业全息解读)根据教育部最新发布的普通高等学校本科专业目录可知,中医学类包括中医学针灸推拿学藏医学等7个专业(T代表特设专业)。什么是中医学?按照中国全国岩石圈的物质循环(岩石圈物质循环与地质地貌形成过程)岩石圈的物质循环(岩石圈物质循环与地质地貌形成过程)历年考情一岩石圈的物质循环(一)三类岩石的认识掌握三大岩石的转化1。理清三大类岩石相互转化图上箭头的方向(1)岩浆岩只能由岩浆转金岩石博客(金岩石简介)金岩石博客(金岩石简介)金岩石,曾为国金证券首席经济学家,被海内外媒体誉为索罗斯的中国门徒纳斯达克市场的活字典。2010年,因诚信危机门,被炒得沸沸扬扬。2010年12月4日,国金什么的微风填词语补充(关于风的唯美句子)什么的微风填词语补充(关于风的唯美句子)很多同学想知道什么的微风填空有哪些,下面是小编整理的相关内容,希望对大家有所帮助!1什么的微风填空词语有哪些什么的微风填空词语有轻轻的微风凉芙蓉花几月开(你出生的月份是什么花?)芙蓉花几月开(你出生的月份是什么花?)在我们古代的时候,很多老百姓都非常喜欢养花,对花也非常尊重。所以每个月都有代表花卉,被称作是当月的花神,今天花花就将12个月的花神给大家整理出沈阳职业技师学院(沈阳2021年中招录取日程安排公布)沈阳职业技师学院(沈阳2021年中招录取日程安排公布)沈阳市招考办最新公布了沈阳市2021年中招录取日程安排及录取结果查询方式日程安排7月21日第一批次学校体育艺术特优生自主招生备
过小年习俗(你get到这些习俗了吗?)过小年习俗(你get到这些习俗了吗?)腊月二十三就是小年,民间有祭祖祭灶的习俗,提前一周进入过年氛围。民谚二十三糖瓜粘,二十四写福字,二十五扫尘土,二十六炖牛肉,二七二八把面发,二start是什么意思(Start和begin到底怎么用)start是什么意思(Start和begin到底怎么用)Feifei大家好,欢迎收听BBC英语教学的你问我答。我是冯菲菲。在本期节目中我们要回答的问题来自微博网友平行時空12138start什么意思(start与begin的区别)start什么意思(start与begin的区别)一音标及中文意思startstrt开始着手动手。beginbigin开始启动启始。二用法对比分析作为动词,start与begin通start什么意思(start)start什么意思(start)start是什么意思(Start和begin到底怎么用)Feifei大家好,欢迎收听BBC英语教学的你问我答。我是冯菲菲。在本期节目中我们要回答的问start什么意思(start什么)start什么意思(start什么)start是什么意思(Start和begin到底怎么用)Feifei大家好,欢迎收听BBC英语教学的你问我答。我是冯菲菲。在本期节目中我们要回答网络危害(孩子过度使用网络)网络危害(孩子过度使用网络)网络成瘾,又称病态网络使用,是一种冲动性过度使用网络的现象,导致社会心理功能明显受损。网瘾为网络成瘾症的简称,是指上网者由于长时间地和习惯性地沉浸在网络内科护理学试题及答案(护理知识习题)内科护理学试题及答案(护理知识习题)1。下列不属于基础护理的是()基础护理学A。生活护理B。重症监护C。生命体征测量D。无菌操作技术2。用高温蒸汽法处理手术器材属于()基础护理学A熟悉的反义词(反义词)熟悉的反义词(反义词)熟悉的反义词有1生疏shngsh没有接触过或很少接触的,因长期不用而不熟练。造句我喜欢经常打打网球,以免技术生疏。2陌生mshng生疏,不熟悉。造句这个城市对赴汤蹈火的汤是什么意思(成语故事之赴汤蹈火)赴汤蹈火的汤是什么意思(成语故事之赴汤蹈火)昨天我们学习的成语是负荆请罪,讲的是廉颇和蔺相如的故事,告诉我们,犯了错误要勇于承认,有承认错误的勇气。话不多说,我们进入今天的学习。今什么是关联词(关联词有哪些有什么类型)什么是关联词(关联词有哪些有什么类型)常见的关联词有虽然但是既然也尽管还是如果就即便也既又不但而且与其不如因为所以只要就首先然后等。1关联词有什么1。转折关系尽管可是虽然但是2。假提前专科(专科也有提前批)提前专科(专科也有提前批)在每年的这个时间也是高考结束以后高职高专批次志愿填报的时间,现在我们大家对于高职高专批次志愿的填报似乎并不是很放在心上,重视程度也不够,因为有很多考生和家