测试代码code

Raspberry Pi系统信息检查与软件包管理脚本
该脚本用于检查Raspberry Pi的硬件修订版、内核版本、操作系统代号、架构以及软件包版本。它还会根据系统信息动态调整软件包版本,并列出可用的软件包。如果提供的软件包不受支持,脚本会提示用户并提供错误信息。
#!/bin/bash
rev=$(cat /proc/cpuinfo | grep Revision | awk '{print substr($NF,length($NF)-5,6)}')
code_name=$(awk -F"[)(]+" '/VERSION=/ {print $2}' /etc/os-release)
kernel_info=$(uname -a)
kernel=$(uname -r)
arch=$(arch)
pkg_version=$code_name
rpi_kernel=$(dpkg-query -f '${Version}' --show raspberrypi-kernel)

$(dpkg-architecture -earm64)
if [ $? == 0 ]; then
    pkg_version=$pkg_version"-arm64"
fi

$(dpkg --compare-versions 1:1.20211201~ '>=' $rpi_kernel)
if [[ $? == 1 && $code_name != "buster" ]]; then
    pkg_version=$pkg_version"-v5"
fi

echo $pkg_version
echo "================================================="
echo "Hardware Revision: ${rev}"
echo "Kernel Version: ${kernel}"
echo "OS Codename: ${code_name}"
echo "ARCH: ${arch}"
echo "pkg_version: ${pkg_version}"
echo "================================================="
echo ""

CONFIG_FILE_NAME=packages.txt
# CONFIG_FILE_DOWNLOAD_LINK=https://github.com/ArduCAM/Arducam-Pivariety-V4L2-Driver/releases/download/install_script/packages.txt
RED='\033[0;31m'
NC='\033[0m' # No Color


listPackages()
{
    if [ ! -f $CONFIG_FILE_NAME ]; then
        echo "can not find $CONFIG_FILE_NAME"
    fi
    source $CONFIG_FILE_NAME
    echo "Supported packages:"
    for key in ${!package_cfg_names[*]};do
    echo -e "\t$key"
    done
    echo ""
}

helpFunction()
{
    if [ ! -f $CONFIG_FILE_NAME ]; then
        echo "can not find $CONFIG_FILE_NAME"
    fi
    echo ""
    echo "Usage: $0 [option]... -p <package name>"
    echo -e "Options:"
    echo -e "\t-p <package name>\tSpecify the package name."
    echo -e "\t-h \t\t\tShow this information."
    echo -e "\t-l \t\t\tUpdate and list available packages."
    echo ""
    listPackages
    exit 1
}

while getopts hlv:p: flag
do
    case "${flag}" in
        v)  pkg_version=${OPTARG};;
        p)  package=${OPTARG};;
        l)  listPackages
            exit 1
            ;;
        ?)  helpFunction;;
    esac
done

if [ ! -f $CONFIG_FILE_NAME ]; then
    echo "can not find $CONFIG_FILE_NAME"   
fi

source $CONFIG_FILE_NAME
echo "source 1 $CONFIG_FILE_NAME"


if [ -z $package ]; then
    helpFunction
fi

package_cfg_name=${package_cfg_names[$package]} #according input, to find the txt files
#package_cfg_download_link=${package_cfg_download_links[$package]}

if [[ (-z $package_cfg_name)  ]]; then
    echo -e "${RED}Unsupported package.${NC}"
    echo ""
    listPackages
    exit -1
fi

# echo "package_cfg_name: $package_cfg_name"
# echo "package_cfg_download_link: $package_cfg_download_link"

# rm -f $package_cfg_name
# wget -O $package_cfg_name $package_cfg_download_link
source $package_cfg_name
echo  "source 2 $package_cfg_name"

download_link=
pkg_name=

if [[ $package == *"kernel_driver"* ]]; then
#    download_link=${package_download_links[$kernel]}
    echo "download_link 1 $download_link"
    pkg_name=${package_names[$kernel]}
    echo "pkg_name 1 $pkg_name"
 else
  #  download_link=${package_download_links[$pkg_version]}
    echo "download_link  2$download_link"
    pkg_name=${package_names[$pkg_version]}
    echo "pkg_name 2 $pkg_name"
fi

if [[ (-z $pkg_name)  ]]; then
    echo -e "${RED}"
	echo -e "Cannot find the corresponding package, please send the following information to support@arducam.com"
    echo -e "Hardware Revision: ${rev}"
    echo -e "Kernel Version: ${kernel}"
    echo -e "Package: ${package} -- ${pkg_version}"

    if [[ $package == *"kernel_driver"* ]]; then
        echo -e "You are using an unsupported kernel version, please install the official SD Card image(do not execute rpi-update):"
        echo -e "https://www.raspberrypi.com/software/operating-systems/"
    fi

    echo -e "${NC}"
	exit -1
fi

# echo  "$pkg_name"
# rm -rf $pkg_name
if [[ $package == *"kernel_driver"* ]]; then
  #  download_link=${package_download_links[$kernel]}
    echo "download_link 1 $download_link"
    pkg_name=${package_names[$kernel]}
    echo "pkg_name 1 $pkg_name"
 else
    echo  " sudo dpkg -i $pkg_name"
fi
# echo  "wget -O $pkg_name $download_link"
# wget -O $pkg_name $download_link

if [[ ( $? -ne 0) || (! -f "${pkg_name}") ]]; then
	echo -e "${RED}download failed${NC}"
	exit -1
fi

if [[ $package == *"kernel_driver"* ]]; then
    echo "is kernel driver"
    tar -zxvf $pkg_name Release/
    cd Release/
    ./install_driver.sh
else
    if [[ $package == *"libcamera_dev"* ]]; then
        echo -e "remove libcamera0"
        echo ""
        sudo apt remove -y libcamera0
    fi
    echo "sudo apt update"
    sudo apt update
    echo "sudo apt --reinstall install -y $pkg_name"
    sudo apt --reinstall install -y $pkg_name
    # if [[ $package == *"libcamera_apps"* && ! -f /usr/lib/arm-linux-gnueabihf/libboost_program_options.so.1.67.0 ]]; then
    #     echo -e "Soft link to libboost_program_options.so"
    #     echo ""
    #     sudo ln -s /usr/lib/arm-linux-gnueabihf/libboost_program_options.so /usr/lib/arm-linux-gnueabihf/libboost_program_options.so.1.67.0
    # fi
fi

if [ $? -ne 0 ]; then
    echo ""
	echo -e "${RED}Unknown error, please send the error message to support@arducam.com${NC}"
	exit -1
fi

#!/usr/bin/python
# -*- coding: utf-8 -*-

import os,sys

print os.getcwd()
# 输入文件夹地址
path = sys.path[0]
files = os.listdir(path)

# 输出所有文件名,只是为了看一下
for file in files:
    print(file)

# 获取旧名和新名
i = 0
for file in files:
    # old 旧名称的信息
    old = files[i]
    new = file.replace('arducam','weixiang')
    os.rename(old,new)
    i+=1

# 输出所有文件名,只是为了看一下
for file in files:
    print(file)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值