This commit is contained in:
commit
95a533c876
451 changed files with 18255 additions and 0 deletions
26
pkgs/synapse_change_display_name/default.nix
Normal file
26
pkgs/synapse_change_display_name/default.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{ stdenv, gcc, ... }:
|
||||
|
||||
let
|
||||
pname = "synapse_change_display_name";
|
||||
version = "1.0.0";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
inherit pname version;
|
||||
|
||||
src = ./.;
|
||||
|
||||
buildInputs = [ gcc ];
|
||||
|
||||
buildPhase = ''
|
||||
gcc -o ${pname} ${pname}.c
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp ${pname} $out/bin/
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "A program for updating MatrixS-Synapse display names";
|
||||
};
|
||||
}
|
||||
105
pkgs/synapse_change_display_name/synapse_change_display_name.c
Normal file
105
pkgs/synapse_change_display_name/synapse_change_display_name.c
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
// Function to print the help page
|
||||
void print_help() {
|
||||
printf("Usage:\n");
|
||||
printf(" update_display_name [-t ACCESS_TOKEN] [-r REMOTE] [-u USER] [-d "
|
||||
"DISPLAY_NAME] [-h]\n\n");
|
||||
printf("Options:\n");
|
||||
printf(" -h Show this help message and exit.\n");
|
||||
printf(" -t ACCESS_TOKEN Your access token for authentication.\n");
|
||||
printf(" -r REMOTE The remote server address.\n");
|
||||
printf(" -u USER The user identifier to update.\n");
|
||||
printf(" -d DISPLAY_NAME The new display name to set.\n\n");
|
||||
printf("Example:\n");
|
||||
printf(" update_display_name -t my_access_token -r my_remote_server -u "
|
||||
"user123 -d \"My New Display Name\"\n");
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
char *access_token = NULL;
|
||||
char *remote = NULL;
|
||||
char *user = NULL;
|
||||
char *display_name = NULL;
|
||||
|
||||
for (int i = 1; i < argc; i++) {
|
||||
if (argv[i][0] == '-' &&
|
||||
strlen(argv[i]) == 2) { // Ensure it is a single-character flag
|
||||
switch (argv[i][1]) {
|
||||
case 'h':
|
||||
print_help();
|
||||
return 0;
|
||||
case 't':
|
||||
if (i + 1 < argc) {
|
||||
access_token = argv[++i];
|
||||
} else {
|
||||
printf("Error: Missing value for -t (ACCESS_TOKEN).\n\n");
|
||||
print_help();
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
case 'r':
|
||||
if (i + 1 < argc) {
|
||||
remote = argv[++i];
|
||||
} else {
|
||||
printf("Error: Missing value for -r (REMOTE).\n\n");
|
||||
print_help();
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
case 'u':
|
||||
if (i + 1 < argc) {
|
||||
user = argv[++i];
|
||||
} else {
|
||||
printf("Error: Missing value for -u (USER).\n\n");
|
||||
print_help();
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
case 'd':
|
||||
if (i + 1 < argc) {
|
||||
display_name = argv[++i];
|
||||
} else {
|
||||
printf("Error: Missing value for -d (DISPLAY_NAME).\n\n");
|
||||
print_help();
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
printf("Error: Unknown option -%c.\n\n", argv[i][1]);
|
||||
print_help();
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
printf("Error: Invalid argument format: %s\n\n", argv[i]);
|
||||
print_help();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (!access_token || !remote || !user || !display_name) {
|
||||
printf("Error: Missing required arguments.\n\n");
|
||||
print_help();
|
||||
return 1;
|
||||
}
|
||||
|
||||
char command[1024];
|
||||
snprintf(command, sizeof(command),
|
||||
"curl --header \"Authorization: Bearer %s\" "
|
||||
"--location --request PUT "
|
||||
"'https://%s/_matrix/client/v3/profile/%s/displayname' "
|
||||
"--data '{ \"displayname\": \"%s\" }'",
|
||||
access_token, remote, user, display_name);
|
||||
|
||||
int result = system(command);
|
||||
|
||||
if (result != 0) {
|
||||
printf("\nError: Failed to execute the curl command.\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
printf("\nDisplay name updated successfully.\n");
|
||||
return 0;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue