mirror of
https://github.com/SuperBFG7/ympd
synced 2024-09-29 22:50:40 +00:00
Fix: sort syscmds by first number
This commit is contained in:
parent
a81dd7e9d1
commit
5782ae2979
1
contrib/syscmds/0Reboot
Normal file
1
contrib/syscmds/0Reboot
Normal file
@ -0,0 +1 @@
|
|||||||
|
sudo /sbin/reboot
|
1
contrib/syscmds/1Shutdown
Normal file
1
contrib/syscmds/1Shutdown
Normal file
@ -0,0 +1 @@
|
|||||||
|
sudo /sbin/halt
|
@ -113,8 +113,8 @@ void callback_mympd(struct mg_connection *nc, const struct mg_str msg) {
|
|||||||
je = json_scanf(msg.p, msg.len, "{data: {cmd: %Q}}", &p_charbuf1);
|
je = json_scanf(msg.p, msg.len, "{data: {cmd: %Q}}", &p_charbuf1);
|
||||||
if (je == 1) {
|
if (je == 1) {
|
||||||
int_buf1 = list_get_value(&syscmds, p_charbuf1);
|
int_buf1 = list_get_value(&syscmds, p_charbuf1);
|
||||||
if (int_buf1 == 1)
|
if (int_buf1 > -1)
|
||||||
n = mympd_syscmd(mpd.buf, p_charbuf1);
|
n = mympd_syscmd(mpd.buf, p_charbuf1, int_buf1);
|
||||||
free(p_charbuf1);
|
free(p_charbuf1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -1223,14 +1223,14 @@ bool mympd_state_set(char *name, char *value) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int mympd_syscmd(char *buffer, char *cmd) {
|
int mympd_syscmd(char *buffer, char *cmd, int order) {
|
||||||
int len;
|
int len;
|
||||||
char filename[400];
|
char filename[400];
|
||||||
char *line;
|
char *line;
|
||||||
size_t n = 0;
|
size_t n = 0;
|
||||||
ssize_t read;
|
ssize_t read;
|
||||||
|
|
||||||
snprintf(filename, 400, "%s/syscmds/%s", config.etcdir, cmd);
|
snprintf(filename, 400, "%s/syscmds/%d%s", config.etcdir, order, cmd);
|
||||||
FILE *fp = fopen(filename, "r");
|
FILE *fp = fopen(filename, "r");
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
len = snprintf(buffer, MAX_SIZE, "{\"type\": \"error\", \"data\": \"Can't execute cmd %s\"}", cmd);
|
len = snprintf(buffer, MAX_SIZE, "{\"type\": \"error\", \"data\": \"Can't execute cmd %s\"}", cmd);
|
||||||
|
@ -211,7 +211,7 @@ void mympd_get_sticker(const char *uri, t_sticker *sticker);
|
|||||||
void mympd_jukebox();
|
void mympd_jukebox();
|
||||||
bool mympd_state_get(char *name, char *value);
|
bool mympd_state_get(char *name, char *value);
|
||||||
bool mympd_state_set(char *name, char *value);
|
bool mympd_state_set(char *name, char *value);
|
||||||
int mympd_syscmd(char *buffer, char *cmd);
|
int mympd_syscmd(char *buffer, char *cmd, int order);
|
||||||
int mympd_smartpls_save(char *smartpltype, char *playlist, char *tag, char *searchstr, int maxentries, int timerange);
|
int mympd_smartpls_save(char *smartpltype, char *playlist, char *tag, char *searchstr, int maxentries, int timerange);
|
||||||
int mympd_smartpls_put(char *buffer, char *playlist);
|
int mympd_smartpls_put(char *buffer, char *playlist);
|
||||||
int mympd_smartpls_update_all();
|
int mympd_smartpls_update_all();
|
||||||
|
@ -188,6 +188,8 @@ void read_syscmds() {
|
|||||||
DIR *dir;
|
DIR *dir;
|
||||||
struct dirent *ent;
|
struct dirent *ent;
|
||||||
char dirname[400];
|
char dirname[400];
|
||||||
|
char *cmd;
|
||||||
|
long order;
|
||||||
|
|
||||||
snprintf(dirname, 400, "%s/syscmds", config.etcdir);
|
snprintf(dirname, 400, "%s/syscmds", config.etcdir);
|
||||||
printf("Reading syscmds: %s\n", dirname);
|
printf("Reading syscmds: %s\n", dirname);
|
||||||
@ -195,7 +197,9 @@ void read_syscmds() {
|
|||||||
while ((ent = readdir(dir)) != NULL) {
|
while ((ent = readdir(dir)) != NULL) {
|
||||||
if (strncmp(ent->d_name, ".", 1) == 0)
|
if (strncmp(ent->d_name, ".", 1) == 0)
|
||||||
continue;
|
continue;
|
||||||
list_push(&syscmds, ent->d_name, 1);
|
order = strtol(ent->d_name, &cmd, 10);
|
||||||
|
if (strcmp(cmd, "") != 0)
|
||||||
|
list_push(&syscmds, strdup(cmd), order);
|
||||||
}
|
}
|
||||||
closedir(dir);
|
closedir(dir);
|
||||||
}
|
}
|
||||||
@ -398,6 +402,7 @@ int main(int argc, char **argv) {
|
|||||||
|
|
||||||
list_init(&syscmds);
|
list_init(&syscmds);
|
||||||
read_syscmds();
|
read_syscmds();
|
||||||
|
list_order(&syscmds, true);
|
||||||
|
|
||||||
list_init(&mpd_tags);
|
list_init(&mpd_tags);
|
||||||
list_init(&mympd_tags);
|
list_init(&mympd_tags);
|
||||||
|
Loading…
Reference in New Issue
Block a user