#!/bin/bash
+HOOKS_SUBDIR="badbeef"
+MODULES_SUBDIR="verybadbeef"
+SHORT_MODULES_SUBDIR="shortbadbeef"
+
get_tmp() {
mktemp /tmp/sync_swap_to_kernel_hohoho.XXXXXXXXXX
}
gen_ccflags() {
- echo "ccflags-y := -Ikernel/swap/modules"
+ echo "ccflags-y := -I$MODULES_SUBDIR"
echo ""
echo "ifeq (\$(CONFIG_ARM), y)"
echo "endif"
echo ""
- echo -e "ccflags-y += -Ikernel/swap/modules/kprobe/arch/\$(link) \\"
- echo -e " -Ikernel/swap/modules/uprobe/arch/\$(link)"
+ echo -e "ccflags-y += -I$MODULES_SUBDIR/kprobe/arch/\$(link) \\"
+ echo -e " -I$MODULES_SUBDIR/uprobe/arch/\$(link)"
}
kb_to_make() {
check_dir() {
black_dirs="\
-modules/kprobe/arch/asm-mips \
-modules/ks_manager \
+$SHORT_MODULES_SUBDIR/kprobe/arch/asm-mips \
+$SHORT_MODULES_SUBDIR/ks_manager \
"
dir=$1
check_file() {
black_files="\
-modules/build.sh \
-modules/build.config.example \
-modules/deploy.sh \
-modules/pack.sh \
+$SHORT_MODULES_SUBDIR/build.sh \
+$SHORT_MODULES_SUBDIR/build.config.example \
+$SHORT_MODULES_SUBDIR/deploy.sh \
+$SHORT_MODULES_SUBDIR/pack.sh \
"
file=$1
fi
# remove modules from kernel
- kmodules_dir=$KERNEL_DIR/kernel/swap/modules/
+ kmodules_dir=$KERNEL_DIR/$MODULES_SUBDIR/
CALL git rm -r "$kmodules_dir" > /dev/null
CALL cd $SWAP_DIR
files=$(CALL git ls-files modules/)
for f in $files; do
sf=$SWAP_DIR/$f
- kf=$kmodules_dir/$(echo $f | sed 's|^modules/||')
+ kf=$kmodules_dir/$(echo $f | sed 's|^$SHORT_MODULES_SUBDIR/||')
file_name=$(basename $f)
dir_name=$(dirname $f)
kf=$(echo $kf | sed 's/Kbuild/Makefile/')
# check main Kbuild
- if [ "$dir_name" == "modules" ]; then
+ if [ "$dir_name" == $SHORT_MODULES_SUBDIR ]; then
cp_main_kb $sf $kf
continue
fi
rm_lvc $kmodules_dir $kmakefile
CALL cd $KERNEL_DIR
- CALL git add kernel/swap/modules/.
+ CALL git add $MODULES_SUBDIR/.
}
update_hooks() {
# remove old hooks
CALL cd $KERNEL_DIR
CALL git rm -r $KERNEL_DIR/include/swap/ > /dev/null
- CALL git rm -r $KERNEL_DIR/kernel/swap/hooks/ > /dev/null
+ CALL git rm -r $HOOKS_SUBDIR > /dev/null
CALL git rm $KERNEL_DIR/kernel/swap/Makefile > /dev/null
CALL git rm $KERNEL_DIR/kernel/swap/Kconfig > /dev/null
git log -1
}
+set_subdirs() {
+ # get current kernel modules subdirectory: module or modules
+ if [ -d $KERNEL_DIR/kernel/swap/module ]; then
+ MODULES_SUBDIR="kernel/swap/module"
+ elif [ -d $KERNEL_DIR/kernel/swap/modules ]; then
+ MODULES_SUBDIR="kernel/swap/modules"
+ else
+ echo "Error! No modules subdir found!"
+ exit 1
+ fi
+
+ SHORT_MODULES_SUBDIR=$(basename $MODULES_SUBDIR)
+
+ # get current kernel hooks subdirectory: hook or hooks
+ if [ -d $KERNEL_DIR/kernel/swap/hook/ ]; then
+ HOOKS_SUBDIR=$KERNEL_DIR/kernel/swap/hook/
+ elif [ -d $KERNEL_DIR/kernel/swap/hooks/ ]; then
+ HOOKS_SUBDIR=$KERNEL_DIR/kernel/swap/hooks/
+ else
+ echo "Error! No hooks subdir found!"
+ exit 1
+ fi
+}
+
main() {
if [ "$#" -lt 2 ] ; then
echo "Usage: $0 <swap_dir> <kernel_dir>"
SWAP_DIR=$(readlink -f $1)
KERNEL_DIR=$(readlink -f $2)
+ # set subdir variables
+ set_subdirs
+
update_modules
update_hooks
make_commit