better structure
This commit is contained in:
60
config/fish/apply-color-omp
Executable file
60
config/fish/apply-color-omp
Executable file
@@ -0,0 +1,60 @@
|
||||
#!/bin/bash
|
||||
|
||||
path=$(dirname "$(readlink -f "$0")")
|
||||
. "$path"/../../utils/apply-color-helper
|
||||
|
||||
file="$path"/../posh_theme.omp.json
|
||||
|
||||
targetTypes=("os" "session" "status")
|
||||
|
||||
if ! python3 - "$file" "$colorHex" "${targetTypes[@]}"; then {
|
||||
log_error "Failed to edit ${file}"
|
||||
exit 1
|
||||
} fi <<EOF
|
||||
import json
|
||||
import sys
|
||||
|
||||
data = None
|
||||
file = sys.argv[1]
|
||||
colorHex = sys.argv[2]
|
||||
targetTypes = sys.argv[3:]
|
||||
|
||||
with open(file, "r") as f:
|
||||
data = json.load(f)
|
||||
|
||||
def processSegments(segments):
|
||||
for segment in segments:
|
||||
if "type" in segment and segment["type"] in targetTypes:
|
||||
if "foreground" in segment:
|
||||
segment["foreground"] = f"#{colorHex}"
|
||||
|
||||
def processTransientPrompt(transientPrompt):
|
||||
if "foreground" in transientPrompt:
|
||||
transientPrompt["foreground"] = f"#{colorHex}"
|
||||
|
||||
def process(obj):
|
||||
if isinstance(obj, dict):
|
||||
for k, v in obj.items():
|
||||
if k == "segments" and isinstance(v, list):
|
||||
processSegments(v)
|
||||
elif k == "transient_prompt" and isinstance(v, dict):
|
||||
processTransientPrompt(v)
|
||||
else:
|
||||
process(v)
|
||||
elif isinstance(obj, list):
|
||||
for item in obj:
|
||||
process(item)
|
||||
|
||||
process(data)
|
||||
|
||||
if data is not None:
|
||||
with open(file, "w") as f:
|
||||
json.dump(data, f, indent=4)
|
||||
EOF
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
log_error "Failed to edit ${file}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log_success "oh-my-posh"
|
||||
Reference in New Issue
Block a user