@@ -102,6 +102,31 @@ cfg_map_to_file_key() {
102102 esac
103103}
104104
105+ # Map a .gtrconfig key to its gtr.* config equivalent (reverse of cfg_map_to_file_key)
106+ # Usage: cfg_map_from_file_key <file_key>
107+ # Returns: mapped gtr.* key, or empty if no mapping exists
108+ cfg_map_from_file_key () {
109+ case " $1 " in
110+ copy.include) echo " gtr.copy.include" ;;
111+ copy.exclude) echo " gtr.copy.exclude" ;;
112+ copy.includeDirs) echo " gtr.copy.includeDirs" ;;
113+ copy.excludeDirs) echo " gtr.copy.excludeDirs" ;;
114+ hooks.postCreate) echo " gtr.hook.postCreate" ;;
115+ hooks.preRemove) echo " gtr.hook.preRemove" ;;
116+ hooks.postRemove) echo " gtr.hook.postRemove" ;;
117+ hooks.postCd) echo " gtr.hook.postCd" ;;
118+ defaults.editor) echo " gtr.editor.default" ;;
119+ editor.workspace) echo " gtr.editor.workspace" ;;
120+ defaults.ai) echo " gtr.ai.default" ;;
121+ worktrees.dir) echo " gtr.worktrees.dir" ;;
122+ worktrees.prefix) echo " gtr.worktrees.prefix" ;;
123+ defaults.branch) echo " gtr.defaultBranch" ;;
124+ defaults.provider) echo " gtr.provider" ;;
125+ gtr.* ) echo " $1 " ;;
126+ * ) echo " " ;;
127+ esac
128+ }
129+
105130# Get all values for a multi-valued config key
106131# Usage: cfg_get_all key [file_key] [scope]
107132# file_key: optional key name in .gtrconfig (e.g., "copy.include" for gtr.copy.include)
@@ -300,25 +325,8 @@ cfg_list() {
300325 fvalue=" "
301326 fi
302327 # Map .gtrconfig keys to gtr.* format
303- case " $fkey " in
304- copy.include) mapped_key=" gtr.copy.include" ;;
305- copy.exclude) mapped_key=" gtr.copy.exclude" ;;
306- copy.includeDirs) mapped_key=" gtr.copy.includeDirs" ;;
307- copy.excludeDirs) mapped_key=" gtr.copy.excludeDirs" ;;
308- hooks.postCreate) mapped_key=" gtr.hook.postCreate" ;;
309- hooks.preRemove) mapped_key=" gtr.hook.preRemove" ;;
310- hooks.postRemove) mapped_key=" gtr.hook.postRemove" ;;
311- hooks.postCd) mapped_key=" gtr.hook.postCd" ;;
312- defaults.editor) mapped_key=" gtr.editor.default" ;;
313- editor.workspace) mapped_key=" gtr.editor.workspace" ;;
314- defaults.ai) mapped_key=" gtr.ai.default" ;;
315- defaults.branch) mapped_key=" gtr.defaultBranch" ;;
316- defaults.provider) mapped_key=" gtr.provider" ;;
317- worktrees.dir) mapped_key=" gtr.worktrees.dir" ;;
318- worktrees.prefix) mapped_key=" gtr.worktrees.prefix" ;;
319- gtr.* ) mapped_key=" $fkey " ;;
320- * ) continue ;; # Skip unmapped keys
321- esac
328+ mapped_key=$( cfg_map_from_file_key " $fkey " )
329+ [ -z " $mapped_key " ] && continue # Skip unmapped keys
322330 _cfg_list_add_entry " .gtrconfig" " $mapped_key " " $fvalue "
323331 done < <( git config -f " $config_file " --get-regexp ' .' 2> /dev/null || true)
324332 fi
0 commit comments