当前位置: 首页 > news >正文

高效CLI应用质量检测工具

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.jsqmd.com/news/25097/

相关文章:

  • ICPC2025成都 游记
  • 应用安全 --- vmp流程
  • 语言-地图slam ConceptGraphs: Open-vocabulary 3D scene graphs for perception and planning, - MKT
  • 语义slam Fusion++ - MKT
  • 特征提取器 PointNet++ - MKT
  • 点云配准 GeoTransformer - MKT
  • 点云配准 Deep closest point: Learning representations for point cloud registration, - MKT
  • tryhackme-网络安全基础-命令行- Linux Shells-23
  • 开发Minecraft Forge模组遇到的问题记录
  • 【ESP32 在线语音】 待写 TTS
  • Fusion++ 语义实例分割​​与​​稠密SLAM重建​​在TSDF子图层面进行了深度融合 - MKT
  • tryhackme-网络安全基础-命令行- Windows PowerShell-22
  • XCPC英语学习day2
  • 2025年PFA隔膜阀厂家权威推荐榜:耐腐蚀高纯流体阀门专业制造商,精选PFA/四氟阀门优质品牌解析
  • 2025年PFA隔膜阀厂家权威推荐榜:耐腐蚀高纯流体专用阀门,PTFE/FEP/PFA材质隔膜阀源头企业综合评测
  • 【ESP32 在线语音】音频接收的缓存机制
  • 我在iOS/Swift工程中成功编译了HarfBuzz!
  • Python access mysql and insert data batch by batch
  • CodeForces-2153D Not Alone
  • Codeforces Round 1062 (Div. 4)
  • 一文吃透银行账务打通体系闭环 - 智慧园区
  • uups 逻辑合约也增加了升级函数,那总体不是也费gas吗?
  • 【URP】Unity[纹理压缩]算法多平台对比
  • AI元人文构想:三值纠缠模型
  • EDK2环境搭建以及HelloWorld编译实现
  • 谁生?谁死?从引用计数到可达性分析,洞悉GC的决策逻辑
  • P1561 [USACO12JAN] Mountain Climbing S
  • 六、阅读笔记六:保障软件可靠性的防线
  • 五、阅读笔记五 应对复杂系统的挑战
  • P3988 [SHOI2013] 发牌