美文网首页
Jambi 相关shell脚本:扫描目录调用juic生成java

Jambi 相关shell脚本:扫描目录调用juic生成java

作者: 蓝点工坊 | 来源:发表于2017-02-08 14:43 被阅读14次

    一.功能

    本脚本主要配合ant ,在编译前扫描res/jui目录,把所有.jui文件生成java文件,并输出到 src目录当中.

    
    #!/bin/sh
    
    # $1 --> src directory
    # $2 --> dst directory
    # $3 --> package name (option)
    # 因为juic 生成是按对前缀+对象名的格式生成,因此这里对juic文件名有要求就是顶层对象名本身
    
    SRC_DIR=$1
    DST_DIR=$2
    PACKAGE_NAME=$3
    
    
    juic_make(){
       
       echo arg $1
    
       juicFile=$1
       #baseName=${juicFile%%.*} #不带后缀的名字
       #baseName=${juicFile##*/}
       #baseName=$(basename $juicFile)
    
       tmp=${juicFile##*/}
       baseName=${tmp%%.*}
    
       javaFile="$DST_DIR/Ui_${baseName}.java"
    
       #${juicFile%/*}  取目录名
       JUIC_ARGS=$juicFile  
    
    
      # echo "all-filename: ${juicFile%.*}"  
       #echo "extension: ${juicFile##*.}"
       #echo "basename: ${juicFile##*/}"
    
       #tmp=${juicFile##*/}
       #echo "base2 ${tmp%%.*}"
       
       
    
       if [ -n "$DST_DIR" ] ;then
           JUIC_ARGS+=" -d $DST_DIR "
       fi
    
       if [ -n "$PACKAGE_NAME" ] ;then
           JUIC_ARGS+=" -p $PACKAGE_NAME "
       fi
    
       #echo "juic cmd $JUIC_ARGS  $javaFile"
    
       echo $javaFile  $juicFile
       
       if [ "$javaFile"  -ot "$juicFile" ]
       then  
          /usr/local/bin/juic   $JUIC_ARGS
        else  
          echo cancel $juicFile
       fi
    }
    
    echo $SRC_DIR 
    for file in $SRC_DIR/*.jui
    do
        echo "find $file"
        if test -f $file
        then
            echo $file 是文件
            juic_make $file
        fi
        
    done
    
    

    二. 代码说明

    主程序用 for file in $SRC_DIR/*.jui 进行文件扫描,得到$file是一个全路径的文件名.

    如果是一个普通文件,则调用juic_make()函数进行生成工作

    这里juicFile是输入的jui文件
    而javaFile="$DST_DIR/Ui_${baseName}.java"是输出后名字.

    这里有一个隐含规则, 因为juic 生成是按对前缀+对象名的格式生成,因此这里对juic文件名有要求就是顶层对象名本身.

    if [ "$javaFile" -ot "$juicFile" ] 是判断两个文件创建日期,如果javaFile的日期比juicFile日期旧才会转换. 这里[ -ot ]有一个规则,$javaFile 是空或者不存在的文件,它总会返回true.因此文件名不符合命名规则也会生成java文件

    主要转换语句是
    /usr/local/bin/juic $JUIC_ARGS

    相关文章

      网友评论

          本文标题:Jambi 相关shell脚本:扫描目录调用juic生成java

          本文链接:https://www.haomeiwen.com/subject/fegvittx.html