2007/01/05

在 shell script 內處理網頁的 Form Data

為了讓 geexbox 方便遠端管理,就上網找了個 ProcCGI,底下是一般流程。

  1. 選定 Applet 名稱,這是用來設定 CONFIG_NAME 用的,此處是用 PROCCGI,也就是 CONFIG_PROCCGI
  2. 將 source code 放到適當的目錄,我是放到 networking 下,並將proccgi.c的 main() 改成 Applet_main(),即 proccgi_main()。
  3. 修改networking 目錄下的 Config.in,找適當的地方新增選項,請參考其他選項作適當的編修,我是放在照字母順序放在 Router 前:

    config CONFIG_PROCCGI
    bool "proccgi"
    default y
    depends on FEATURE_HTTPD_CGI
    help
    proccgi is s utility for web cgi-bin

  4. 同樣在 networking 目錄下,修改 Kbuild,在適當的地方加入:

    lib-$(CONFIG_PROCCGI) += proccgi.o

  5. 修改 include/applets.h,它與底下的 usage.h 都必須按照字母順序排列,因此請自行在適當的地方加入:

    USE_PROCCGI(APPLET(proccgi, _BB_DIR_USR_BIN, _BB_SUID_NEVER))

    不知道您有沒有注意到這跟前二條的說明是配合的。
  6. 修改 include/usage.h,加入命令輔助訊息,一樣要注意按照字母順序:

    #define proccgi_trivial_usage "eval \"`proccgi $*`\""
    #define proccgi_full_usage "eval \"`proccgi $*`\"\n" "will set the form variable into env"

  7. 記得將 proccgi.c 中的 main() 改成 proccgi_main()
  8. 參考適用於busybox-1.3.1patch

0 意見: