MCPcopy
hub / github.com/yuk7/wsldl / executeWithOptionsAndExecRead

Function executeWithOptionsAndExecRead

src/config/command.go:147–211  ·  view source on GitHub ↗
(
	wsl wsllib.WslLib,
	reg wsllib.WslReg,
	name string,
	opts configOptions,
	execRead func(wsllib.WslLib, string, string) (string, uint32, error),
)

Source from the content-addressed store, hash-verified

145}
146
147func executeWithOptionsAndExecRead(
148 wsl wsllib.WslLib,
149 reg wsllib.WslReg,
150 name string,
151 opts configOptions,
152 execRead func(wsllib.WslLib, string, string) (string, uint32, error),
153) error {
154 uid, flags, err := wslapi.GetConfig(wsl, name)
155 if err != nil {
156 errutil.ErrorRedPrintln("ERR: Failed to GetDistributionConfiguration")
157 return errutil.NewDisplayError(err, true, true, false)
158 }
159
160 switch opts.option {
161 case configOptionDefaultUID:
162 uid = opts.uid
163
164 case configOptionDefaultUser:
165 str, _, errtmp := execRead(wsl, name, "id -u "+fileutil.DQEscapeString(opts.user))
166 err = errtmp
167 if err == nil {
168 intUID, convErr := strconv.Atoi(str)
169 err = convErr
170 uid = uint64(intUID)
171 if err != nil {
172 err = errors.New(str)
173 }
174 }
175
176 case configOptionAppendPath:
177 flags = updateFlag(flags, wsllib.FlagAppendNTPath, opts.enabled)
178
179 case configOptionMountDrive:
180 flags = updateFlag(flags, wsllib.FlagEnableDriveMounting, opts.enabled)
181
182 case configOptionWslVersion:
183 err = reg.SetWslVersion(name, opts.wslVersion)
184
185 case configOptionDefaultTerm:
186 profile, profileErr := reg.GetProfileFromName(name)
187 err = profileErr
188 if err != nil {
189 break
190 }
191 profile.WsldlTerm = opts.defaultTerm
192 err = reg.WriteProfile(profile)
193
194 case configOptionFlagsVal:
195 flags = opts.flags
196
197 default:
198 err = os.ErrInvalid
199 }
200
201 if err != nil {
202 return errutil.NewDisplayError(err, true, true, false)
203 }
204

Calls 5

updateFlagFunction · 0.85
SetWslVersionMethod · 0.65
GetProfileFromNameMethod · 0.65
WriteProfileMethod · 0.65
ConfigureDistributionMethod · 0.65