高效CLI应用质量检测工具

news/2025/10/29 6:05:40/文章来源:https://www.cnblogs.com/qife122/p/19173070

CLI应用质量检测工具

项目描述

这是一个专门用于检测Awesome CLI应用列表中项目状态的自动化脚本工具。项目旨在维护CLI应用列表的质量,通过自动化检测已归档的GitHub仓库和失效链接,确保列表中所有应用都处于活跃和可用状态。

功能特性

  • GitHub仓库归档检测:自动检查列表中所有GitHub仓库是否已被所有者归档
  • 链接有效性验证:使用deadlink工具检测非GitHub链接是否仍然有效
  • 并行处理优化:支持多进程并行检测,默认使用6个并行进程提高检测效率
  • 结果输出:将已弃用的仓库信息自动保存到指定输出文件中
  • 用户友好:提供详细的帮助信息和使用说明

安装指南

系统要求

  • Bash shell环境
  • curl命令行工具
  • deadlink链接检测工具

依赖安装

# 安装deadlink工具(需要先安装Rust)
cargo install deadlink

获取脚本

# 直接使用提供的bash脚本文件
chmod +x check-for-deprecation.sh

使用说明

基本使用

# 运行完整的检测流程
./check-for-deprecation.sh

获取帮助

# 查看使用说明和参数信息
./check-for-deprecation.sh --help
./check-for-deprecation.sh -h
./check-for-deprecation.sh help

输出结果

检测结果将自动保存到 deprecated.txt 文件中,同时会在终端显示实时检测进度。

核心代码

主检测函数

#!/bin/bashJ=6
OUT_FILE=deprecated.txtif [ "$1" = "--help" ] || [ "$1" = "-h" ] || [ "$1" = "help" ]; thencat <<EOF
$ check-for-deprecation.shRunning $J processes in parallel.Found deprecated repos are written to: $OUT_FILE
EOFexit
fi

该代码段处理命令行参数,提供用户帮助信息,并设置并行进程数和输出文件配置。

GitHub仓库归档检测

check_if_archived_on_github() {check_deprecation() {REPO="$1"if nice curl -SsL "$REPO" | grep "This repository has been archived by the owner on" >/dev/null; thenecho "DEPRECATED $REPO" | tee -a $OUT_FILEelseecho "CHECKED $REPO"fi}for app in $(echo $APPS); do((i=i%J)); ((i++==0)) && waitcheck_deprecation "$app" &done
}

链接有效性检测

check_if_link_is_dead() {command -v deadlink >/dev/null || { echo "deadlink is not installed" 1>&2; exit 127; }tmp=$(mktemp)deadlink check $tmp
}

该函数检查deadlink工具是否已安装,提取所有非GitHub链接,并使用deadlink进行有效性验证。

主执行流程

check_if_archived_on_github
check_if_link_is_dead

这是脚本的主要执行逻辑,依次调用GitHub仓库检测和链接有效性检测功能。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/949284.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ICPC2025成都 游记

从失败到失败,我是打铁大王吧。省流 从失败到失败,我是打铁大王吧。10.27 内含剧透,请vp后再来。 不是题解!!!!!!! 赛前 省略一些与比赛无关的东西,只剩下了两件事。一个是赛前几天基本没做题没复习还自我感…

应用安全 --- vmp流程

应用安全 --- vmp流程VMP (2.0.3-2.13) 寻找OEP详细教程 📋 前置准备工具: OllyDbg / x64dbg / IDA Pro 插件: OllyDumpEx、Scylla(用于后续dump) 目标: 被VMP保护的程序🎯 方法一:VirtualProtect断点法(经典方…

语言-地图slam ConceptGraphs: Open-vocabulary 3D scene graphs for perception and planning, - MKT

语言-地图slam ConceptGraphs: Open-vocabulary 3D scene graphs for perception and planning,ConceptGraphs: Open-vocabulary 3D scene graphs for perception and planning,好的,​​ConceptGraphs​​ 这篇论文…

语义slam Fusion++ - MKT

语义slam Fusion++ 2. Fusion++的核心思想:范式转变 Fusion++彻底改变了游戏规则。它不再将世界看作一个统一的几何空间,而是将其看作由​​背景​​和​​多个独立的物体实例​​组成的集合。 思想一:实例级表示…

点云配准 Deep closest point: Learning representations for point cloud registration, - MKT

点云配准 Deep closest point: Learning representations for point cloud registration,

tryhackme-网络安全基础-命令行- Linux Shells-23

tryhackme-Cyber Security 101-Command Line-Linux Shells 房间地址:https://tryhackme.com/room/linuxshells 这是网络安全入门的基础模块的计算机科学基础知识:Linux Shells,序号 01 表示第一篇文章,当你不知道从…

开发Minecraft Forge模组遇到的问题记录

开发工具:IDEA 2022.2.5 JDK:21.0.7 Forge:60.0.11 这里一定要清楚这些版本号,很多问题都是因为版本不兼容引起的,所以先声明使用工具的版本号,接下来踩坑开始(遇到的坑大概率会按照逻辑的先后顺去说明,而不是…

【ESP32 在线语音】 待写 TTS

链接:https://blog.csdn.net/vor234/article/details/138387195?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522dac311b95071f02fedec5ea5a048fdf6%2522%252C%2522scm%2522%253A%252220140713.130102334…

Fusion++ 语义实例分割​​与​​稠密SLAM重建​​在TSDF子图层面进行了深度融合 - MKT

Fusion++ 语义实例分割​​与​​稠密SLAM重建​​在TSDF子图层面进行了深度融合 3. Fusion++ 的完整工作流程 ​​步骤一:基于RGB-D帧的实例分割(每帧)​​输入每一帧RGB-D图像。 使用2D实例分割网络(如Mask R-C…

tryhackme-网络安全基础-命令行- Windows PowerShell-22

tryhackme-Cyber Security 101-Command Line-Windows PowerShell 房间地址:https://tryhackme.com/room/windowspowershell 这是网络安全入门的基础模块的计算机科学基础知识:Windows PowerShell,序号 01 表示第一篇…

【ESP32 在线语音】音频接收的缓存机制和网络发送机制

首先是初始化 I2S 设备中,可能用到了缓存 //初始化 I2S 设备 INMP441Serial.println("Setup I2S ...");i2s_install();i2s_setpin();esp_err_t err = i2s_start(I2S_PORT_0);其中的 i2s_install() 配置了 …

XCPC英语学习day2

2024ICPC昆明 A. Antivicus 在介绍网络流的时候,几乎还没开始讲,pet chicken指出如何解决这个问题。老师惊呼:我们的禽流感太棒了。 ——Roasted-chicken Htrule进入了流感季。 Hyrule由n个城市组成,由m条有向道路…

2025年PFA隔膜阀厂家权威推荐榜:耐腐蚀高纯流体阀门专业制造商,精选PFA/四氟阀门优质品牌解析

2025年PFA隔膜阀厂家权威推荐榜:耐腐蚀高纯流体阀门专业制造商,精选PFA/四氟阀门优质品牌解析 行业背景与发展现状 在半导体制造、生物医药、精细化工等高技术领域,高纯流体输送系统的可靠性与洁净度直接关系到产品…

2025年PFA隔膜阀厂家权威推荐榜:耐腐蚀高纯流体专用阀门,PTFE/FEP/PFA材质隔膜阀源头企业综合评测

2025年PFA隔膜阀厂家权威推荐榜:耐腐蚀高纯流体专用阀门,PTFE/FEP/PFA材质隔膜阀源头企业综合评测 在半导体制造、生物医药、精细化工等高技术领域,高纯流体输送系统的稳定性和可靠性直接关系到生产质量和工艺安全。…

【ESP32 在线语音】音频接收的缓存机制

首先是初始化 I2S 设备中,可能用到了缓存 //初始化 I2S 设备 INMP441Serial.println("Setup I2S ...");i2s_install();i2s_setpin();esp_err_t err = i2s_start(I2S_PORT_0);其中的 i2s_install() 配置了 …

我在iOS/Swift工程中成功编译了HarfBuzz!

我在iOS/Swift工程中成功编译了HarfBuzz!https://github.com/HusterYP/HarfBuzziOS/tree/main 跨端渲染又进一步!!

Python access mysql and insert data batch by batch

pip install mysql-connector or pip install mysql-connector-python -i https://pypi.tuna.tsinghua.edu.cn/simple/create table t2(id bigint primary key auto_increment,firstname varchar(100) not null defaul…

CodeForces-2153D Not Alone

tag: 结论题,一维线性 DPCodeForces-2153D Not Alone tag: 结论题,一维线性 DP给定一个环形序列 \(b\),长度为 \(m\),每次操作可以将一个数加一或减一。 问最少需要多少次操作,可以使序列 \(b\) 中每一个元素至少…