6.23 積木定義實例
colors.py
客製化輸出訊息之顏色,讓 programmer 易操控輸出字串之顏色。
out.py
viper 會依據不同執行狀態,印出相對應的客製化訊息。
此程式客製化不同執行狀態 (info, warning, error, success) 輸出訊息。
客製化表單。(以表單呈現 viper 之模組或指令)
out.py + colors.py
針對 viper 不同執行狀態,客製化相對應之輸出訊息與顏色。
abstracts.py
定義模組之基因。
未來新增加之模組會繼承此基因,並依不同狀況修改。
abstracts.py + colors.py
只看到 abstracts.py 中 import colors。但未看到使用 colors 中功能。
objects.py
負責計算與提供檔案基本資訊,例如:檔案類型,sha256 hash value 等。
session.py
定義工作階段之基因。
工作階段,每個不同檔案被分析時,各是一個工作階段。
每個檔案被分析時,就會開啟 session,並將檔案相關資訊 (file type, hash value, file path etc.) 載入。
session.py + (objects.py + out.py) + colors.py
初次分析檔案時,會開啟 session,並將檔案相關資訊 (file type, hash value, file path etc.) 載入。
使用模組分析檔案之前,都會使用 session.is_set() 檢查現在是否有 session 開啟。若有開啟,則表示檔案相關資訊有載入,可利用。
database.py
實作在資料庫中儲存、尋找及刪除檔案。
database.py + (objects.py + out.py) + colors.py
在資料庫中操作時(儲存、尋找、刪除檔案)時,需要 objects.py 提供相關資訊以操作。
objects.py 中同時定義了 Singleton 模式,供 Database 類別繼承,保證一個類別只能有一個 instance。
storage.py
檔案儲存前,將儲存路徑給定義好。
取得已儲存檔案之路徑。
plugins.py
使用 pkgutil 模組,該模組提供實用 function 以支援 import 系統。
使用 inspect 模組,針對所匯入之模組做一些基本檢查,例如:是否為 class 等。
commands.py
定義 viper 的系統指令。
console.py
模擬 bash console 介面。
自訂 history file。
可吃 viper 指令。指令前加上驚嘆號,則表示為 Linux 系統指令。
viper.py
啟動 viper console 介面。
Last updated
Was this helpful?