diff --git a/tool/store-helper/ss-launcher b/tool/store-helper/ss-launcher index 1d9ad9e..eae5f35 100755 --- a/tool/store-helper/ss-launcher +++ b/tool/store-helper/ss-launcher @@ -1,15 +1,70 @@ #!/bin/bash +# ===== Log ===== +# log.info xxx +# log.warn xxx +# log.info xxx +# log.debug xxx +# 带颜色的echo +function log.color_output() { + local color=$1 + shift 1 + + echo >&2 -e "\033[${color}m$@\033[0m" + return 0 +} + +# Log is named without prefix "utils." for convenience +# Usage: log.log <level> ...content +function log.log() { + if [[ $# < 2 ]]; then + return -1 + fi + + local level=$1 + shift 1 + + case $level in + error) log.color_output "0;31" "[ERROR] $@" ;; + warn) log.color_output "1;33" "[WARN] $@" ;; + info) log.color_output "1;37" "[INFO] $@" ;; + debug) log.color_output "1;30" "[DEBUG] $@" ;; + esac + + return 0 +} + +function log.error() { log.log "error" "$@"; } +function log.warn() { log.log "warn" $@; } +function log.info() { log.log "info" $@; } +function log.debug() { log.log "debug" $@; } + + +function scan_desktop_file_log(){ +unset desktop_file_path + for desktop_file_path in $(dpkg -L "$1" |grep /usr/share/applications/ | awk '/\.desktop$/ {print}'); do + if [ "$(cat $desktop_file_path | grep NoDisplay=true)" = "" ];then + log.info "$desktop_file_path is found." + fi + done + for desktop_file_path in $(dpkg -L "$1" |grep /opt/apps/$package_name/entries/applications | awk '/\.desktop$/ {print}'); do + if [ "$(cat $desktop_file_path | grep NoDisplay=true)" = "" ];then + log.info "$desktop_file_path is found." + fi + done + + +} function scan_desktop_file(){ unset desktop_file_path for desktop_file_path in $(dpkg -L "$1" |grep /usr/share/applications/ | awk '/\.desktop$/ {print}'); do if [ "$(cat $desktop_file_path | grep NoDisplay=true)" = "" ];then - echo "$desktop_file_path is found" + echo "$desktop_file_path" fi done for desktop_file_path in $(dpkg -L "$1" |grep /opt/apps/$package_name/entries/applications | awk '/\.desktop$/ {print}'); do if [ "$(cat $desktop_file_path | grep NoDisplay=true)" = "" ];then - echo $desktop_file_path is found + echo "$desktop_file_path" fi done @@ -20,7 +75,7 @@ function launch_app(){ # 检查是否传入了路径参数 if [ -z "$1" ]; then - echo "请传入文件路径作为参数" + log.error "请传入文件路径作为参数" exit 1 fi @@ -38,37 +93,45 @@ function launch_app(){ exec_command="${exec_command%\%*}" # 打印提取的命令 - echo "$exec_command" + log.info "Command is $exec_command" # 在默认终端执行命令 eval "$exec_command" } if [ "$#" -lt 2 ];then -echo "Usage: $0 check/launch packagename" +log.info "Usage: $0 check/launch/list/start packagename/desktop-file" exit -1 fi if [ "$1" = "check" ];then -scan_desktop_file "$2" +scan_desktop_file_log "$2" if [ "$desktop_file_path" = "" ];then - echo "No desktop file found. exit -1" + log.error "No desktop file found. exit -1" exit -1 else exit 0 fi - - -elif [ "$1" = "launch" ];then +elif [ "$1" = "list" ];then scan_desktop_file "$2" + if [ "$desktop_file_path" = "" ];then + exit -1 + else + exit 0 + fi +elif [ "$1" = "launch" ];then +scan_desktop_file_log "$2" if [ "$desktop_file_path" = "" ];then - echo "No desktop file found. exit -1" + log.error "No desktop file found. exit -1" exit -1 fi +launch_app "${desktop_file_path}" + +elif [ "$1" = "start" ];then launch_app "${desktop_file_path}" fi