`Mask`工具使用範例

2020-09-28 10:01:04

安裝:核心工具

主要使用工具
mask

Mac 中的安裝方式為

brew install mask

安裝:實現預設任務效果所需工具

mask
0.9.0
不支援預設任務,所以暫時使用
Just

Mac 中的安裝方式為

brew install just

相關程式碼為

_default:
    mask mask-choose

執行方式為

just

安裝:互動選擇工具

範例程式碼中使用了互動選擇工具 choose-gui,在 Mac 中的安裝方式為

brew install choose-gui

安裝:文書處理工具

範例程式碼中使用 awk 處理文字,在 Mac 中的安裝方式為

brew install gawk

程式碼位置

本頁面

實現預設任務效果程式碼

發表

Mask工具使用範例

任務

mask-choose

使用互動選擇工具 choose-gui 選擇本檔案中可以執行的命令

choose_recipe=$(mask mask-SubCommands-visible | /usr/local/opt/choose-gui/bin/choose)
echo "Choose Recipe: ${choose_recipe}"
task=$(echo "${choose_recipe}" | mask mask-SubCommand-names-extractor)
echo "Task : ${task}"
mask "${task}"

mask-SubCommands

提取本檔案中的子命令

mask --help | mask mask-SubCommands-extractor

mask-SubCommands-visible

提取本檔案中互動選擇可見的子命令,描述的開頭使用 (hidden) 標記互動選擇中不可見的子命令,在 mask-SubCommand-visible-filter 中過濾

mask mask-SubCommands | mask mask-SubCommand-visible-filter

mask-SubCommand-names

本檔案中的子命令的名稱列表

mask mask-SubCommands | mask mask-SubCommand-names-extractor

mask-SubCommand-visible-names

本檔案中互動選擇可見的子命令的名稱列表

mask mask-SubCommands-visible | mask mask-SubCommand-names-extractor

mask-SubCommands-extractor

(hidden) 從 mask 的幫助中提取子命令的 awk 指令碼,在互動選擇列表中不可見

{
    if ("SubCommands" == section)
    {
        sub(/^[ ]+/, "");
        print;
    }
}
{
    if ("SUBCOMMANDS:" == $0)
        section = "SubCommands"
}

mask-SubCommand-visible-filter

(hidden) 過濾描述的開頭使用 (hidden) 標記互動選擇中不可見的子命令的 awk 指令碼,在互動選擇列表中不可見

{
    if ("(hidden)" != $2)
        print;
}

mask-SubCommand-names-extractor

(hidden) 提取子命令名稱的 awk 指令碼

{
    print $1;
}

mask-draft-dir

個人本地使用的指令碼,讀者請忽略

jump cd mask-draft

code

個人本地使用的指令碼,讀者請忽略

    root_dir=`pwd`
    code_workspace="${root_dir}/mask.code-workspace"
    if [ -f "${code_workspace}" ]; then
        code "${code_workspace}";
    else
        code "${root_dir}";
    fi