Kaihong Zhou

11 papers Journal 4Unranked 7
YearRankTypeTitle / Venue / Authors
2024 J jnl
Symmetry
Kaihong Zhou, Sengang Mo, Shu Li
2024 J jnl
Symmetry
Kaihong Zhou, Haixu Liu, Shu Li
2024 J jnl
Comput. Ind. Eng.
Kaihong Zhou, Gang Du, Roger J. Jiao, Jin Ling
2022 J jnl
Comput. Ind. Eng.
Kaihong Zhou, Gang Du, Roger J. Jiao
2021 conf
ICIIP
Kaihong Zhou, Dong She, Xiaofeng Li
2021 conf
ICIIP
Kaihong Zhou, Zhenwei Yin, Xueqian Zhang
2020 conf
ISBDAI
Kaihong Zhou, Simin Huang, Xueqian Zhang
2020 conf
ISBDAI
Kaihong Zhou, Yutian Guo, Xiaofeng Li
2019 conf
ICIIP
Kaihong Zhou, Xiaofeng Li, Bohan Xu
2019 conf
ICIIP
Kaihong Zhou, Xueqian Zhang, Yongjiao Wang
2018 conf
ISBDAI
Kaihong Zhou, Xinxin Qiao, Jingkai Shi
lint.sh
← Index lint.sh bash
#!/bin/bash

# Linting script for REDB project
# Usage: ./lint.sh [--fix] [--check-only]

set -e

# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

# Default values
FIX=false
CHECK_ONLY=false

# Parse arguments
while [[ $# -gt 0 ]]; do
    case $1 in
        --fix)
            FIX=true
            shift
            ;;
        --check-only)
            CHECK_ONLY=true
            shift
            ;;
        *)
            echo "Unknown option: $1"
            echo "Usage: $0 [--fix] [--check-only]"
            exit 1
            ;;
    esac
done

echo -e "${GREEN}Running linting checks on REDB project...${NC}"

# Check if we're in a virtual environment
if [[ "$VIRTUAL_ENV" == "" ]]; then
    echo -e "${YELLOW}Warning: Not in a virtual environment. Consider activating one.${NC}"
fi

# Function to run a command and check its exit status
run_check() {
    local name="$1"
    local command="$2"
    
    echo -e "\n${YELLOW}Running $name...${NC}"
    if eval "$command"; then
        echo -e "${GREEN}✓ $name passed${NC}"
    else
        echo -e "${RED}✗ $name failed${NC}"
        return 1
    fi
}

# Track overall success
overall_success=true

# 1. isort (import sorting)
if [[ "$FIX" == true ]]; then
    run_check "isort" "isort redb/" || overall_success=false
else
    run_check "isort" "isort --check-only --diff redb/" || overall_success=false
fi

# 2. black (code formatting)
if [[ "$FIX" == true ]]; then
    run_check "black" "black redb/" || overall_success=false
else
    run_check "black" "black --check --diff redb/" || overall_success=false
fi

# 3. flake8 (style and error checking)
run_check "flake8" "flake8 redb/" || overall_success=false

# 4. pylint (comprehensive analysis)
run_check "pylint" "pylint --rcfile=pyproject.toml redb/" || overall_success=false

echo -e "\n${GREEN}Linting completed!${NC}"

if [[ "$overall_success" == true ]]; then
    echo -e "${GREEN}All checks passed! ✨${NC}"
    exit 0
else
    echo -e "${RED}Some checks failed. Please fix the issues above.${NC}"
    exit 1
fi