当前位置: 首页 > 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.gsyq.cn/news/33335.html

相关文章:

  • 语义slam Fusion++ - MKT
  • tryhackme-网络安全基础-命令行- Linux Shells-23
  • Fusion++ 语义实例分割​​与​​稠密SLAM重建​​在TSDF子图层面进行了深度融合 - MKT
  • 2025年PFA隔膜阀厂家权威推荐榜:耐腐蚀高纯流体阀门专业制造商,精选PFA/四氟阀门优质品牌解析
  • 2025年PFA隔膜阀厂家权威推荐榜:耐腐蚀高纯流体专用阀门,PTFE/FEP/PFA材质隔膜阀源头企业综合评测
  • CodeForces-2153D Not Alone
  • EDK2环境搭建以及HelloWorld编译实现
  • P1561 [USACO12JAN] Mountain Climbing S
  • 以此贴作别算法
  • 正点原子--手把手教你轻松入门C语言及STM32
  • 【RabbitMQ】与ASP.NET Core集成
  • IMO2025 Problem 1
  • Java流程控制——switch多选择结构
  • P3607 [USACO17JAN] Subsequence Reversal P 题解
  • 随笔/杂记
  • 使用 Swift 解析验证码(结合 Tesseract OCR)
  • 常见排序算法Java实现
  • 175天 隧道技术篇防火墙组策略FRPNPSChiselSocks代理端口映射C2上线
  • link元素的用法及HTML样板
  • 10月28号
  • https://avoid.overfit.cn/post/44c8d547475340d59aa4480f634ea67f
  • Day 18
  • STM32之fromelf生成bin和反汇编文件
  • 常用存储器介绍
  • P11307 [COTS 2016] 建造费 Pristojba 分析
  • 乱学点东西#2 :菠萝/蓝莓/Boruvka算法
  • 文件清理,推荐几款常用软件
  • 【学习笔记】数据结构全家桶
  • 零散点小总结(25.10.28)
  • Top Tree大学习