···274274275275 if (args.FirstOrDefault(userMgmtCommands.Contains) is { } cmd)
276276 {
277277- if (args is not [not null, var username])
277277+ if (args is not [not null, var username, ..])
278278 {
279279- app.Logger.LogError("Invalid syntax. Usage: {cmd} <username>", cmd);
279279+ app.Logger.LogError("Invalid syntax. Usage: {cmd} <username> [--password <password>]", cmd);
280280 Environment.Exit(1);
281281 return null!;
282282 }
283283284284 if (cmd is "--create-user" or "--create-admin-user")
285285 {
286286- var password = CryptographyHelpers.GenerateRandomString(16);
286286+ if (args is not [_, _, "--password", var password])
287287+ {
288288+ password = CryptographyHelpers.GenerateRandomString(16);
289289+ }
287290 app.Logger.LogInformation("Creating user {username}...", username);
288291 var userSvc = provider.GetRequiredService<UserService>();
289292 await userSvc.CreateLocalUserAsync(username, password, null, force: true);
+1-1
Iceshrimp.Backend/Core/Services/UserService.cs
···458458 throw new GracefulException(HttpStatusCode.BadRequest, "User already exists");
459459 if (await db.UsedUsernames.AnyAsync(p => p.Username.ToLower() == username.ToLowerInvariant()))
460460 throw new GracefulException(HttpStatusCode.BadRequest, "Username was already used");
461461- if (password.Length < 8)
461461+ if (password.Length < 8 && !force)
462462 throw GracefulException.BadRequest("Password must be at least 8 characters long");
463463464464 var keypair = RSA.Create(4096);