/
githubmirror
/
zstd
Обзор
Документация
Войти
/
githubmirror
/
zstd
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
regression-data
contrib/linux-kernel/kernelize.sh
110 строк
3 KB
Nick Terrell
[linux-kernel] Fix some up clang-format edge cases
24 май 2017, 23:52
24 май 2017, 23:52
74b12f4
Код
Авторство
О чём код?
#!/bin/sh set -e # Constants SED_COMMANDS="commands.tmp" CLANG_FORMAT="clang-format-3.9" INCLUDE='include/linux/' LIB='lib/zstd/' SPACES=' ' TAB=$'\t' TMP="replacements.tmp" function prompt() { while true; do read -p "$1 [Y/n]" yn case $yn in '' ) yes='yes'; break;; [Yy]* ) yes='yes'; break;; [Nn]* ) yes=''; break;; * ) echo "Please answer yes or no.";; esac done } function check_not_present() { grep "$1" $INCLUDE*.h ${LIB}*.{h,c} && exit 1 || true } function check_not_present_in_file() { grep "$1" "$2" && exit 1 || true } function check_present_in_file() { grep "$1" "$2" > /dev/null 2> /dev/null || exit 1 } echo "Files: " $INCLUDE*.h $LIB*.{h,c} prompt "Do you wish to replace 4 spaces with a tab?" if [ ! -z "$yes" ] then # Check files for existing tabs grep "$TAB" $INCLUDE*.h $LIB*.{h,c} && exit 1 || true # Replace the first tab on every line sed -i '' "s/^$SPACES/$TAB/" $INCLUDE*.h $LIB*.{h,c} # Execute once and then execute as long as replacements are happening more_work="yes" while [ ! -z "$more_work" ] do rm -f $TMP # Replaces $SPACES that directly follow a $TAB with a $TAB. # $TMP will be non-empty if any replacements took place. sed -i '' "s/$TAB$SPACES/$TAB$TAB/w $TMP" $INCLUDE*.h $LIB*.{h,c} more_work=$(cat "$TMP") done rm -f $TMP fi prompt "Do you wish to replace '{ ' with a tab?" if [ ! -z "$yes" ] then sed -i '' "s/$TAB{ /$TAB{$TAB/g" $INCLUDE*.h $LIB*.{h,c} fi rm -f $SED_COMMANDS cat > $SED_COMMANDS <<EOF s/current/curr/g s/MEM_STATIC/ZSTD_STATIC/g s/MEM_check/ZSTD_check/g s/MEM_32bits/ZSTD_32bits/g s/MEM_64bits/ZSTD_64bits/g s/MEM_LITTLE_ENDIAN/ZSTD_LITTLE_ENDIAN/g s/MEM_isLittleEndian/ZSTD_isLittleEndian/g s/MEM_read/ZSTD_read/g s/MEM_write/ZSTD_write/g EOF prompt "Do you wish to run these sed commands $(cat $SED_COMMANDS)?" if [ ! -z "$yes" ] then sed -i '' -f $SED_COMMANDS $LIB*.{h,c} fi rm -f $SED_COMMANDS prompt "Do you wish to clang-format $LIB*.{h,c}?" if [ ! -z "$yes" ] then $CLANG_FORMAT -i ${LIB}*.{h,c} fi prompt "Do you wish to run some checks?" if [ ! -z "$yes" ] then check_present_in_file ZSTD_STATIC_ASSERT ${LIB}zstd_internal.h check_not_present_in_file STATIC_ASSERT ${LIB}mem.h check_not_present_in_file "#define ZSTD_STATIC_ASSERT" ${LIB}compress.c check_not_present MEM_STATIC check_not_present FSE_COMMONDEFS_ONLY check_not_present "#if 0" check_not_present "#if 1" check_not_present _MSC_VER check_not_present __cplusplus check_not_present __STDC_VERSION__ check_not_present __VMS check_not_present __GNUC__ check_not_present __INTEL_COMPILER check_not_present FORCE_MEMORY_ACCESS check_not_present STATIC_LINKING_ONLY fi