Files
yait/src/shell.c
2025-11-04 13:58:37 -05:00

63 lines
1.2 KiB
C

// SPDX-License-Identifier: BSD-3-Clause
#include <errno.h>
#include <lib/err.h>
#include <lib/fs.h>
#include <sys/stat.h>
int write_shell(char *package, char *license, int year, char *author, char *m)
{
fs_write(package, "\
#!/bin/sh\n\
# SPDX-License-Identifier: %s\n\
#\n\
# %s\n\
\n\
me=$0\n\
scriptversion=\"1.0.0\"\n\
\n\
version=\"$me $scriptversion\n\
\n\
Copyright (C) %d %s\n\
This is free software; you are free to change and redistribute it.\n\
There is NO WARRANTY, to the textent permitted by law.\"\n\
\n\
usage=\"\\\n\
Usage: $me [OPTION]...\n\
%s\n\
\n\
Options:\n\
\n\
--help print this help and exit\n\
--version output version information\"\n\
\n\
while [ $# -gt 0 ]; do\n\
case $1 in\n\
--help) echo \"$usage\"; exit 0;;\n\
--version) echo \"$version\"; exit 0;;\n\
-*)\n\
echo \"$0: Unknwon option '$1'.\" >&2\n\
echo \"$0: Try '--help' for more information.\" >&2\n\
exit 1 ;;\n\
esac\n\
shift\n\
done\n\
\n\
echo \"$0: done.\"\n\
\n\
# End: %s\
",
license, m, year, author, m, package);
struct stat st;
if (stat(package, &st) != 0) {
fatalfa(errno);
}
mode_t mode = st.st_mode | S_IXUSR;
if (chmod(package, mode) != 0) {
fatalfa(errno);
}
return 0;
}