format: GNU
This commit is contained in:
11
core/e.c
11
core/e.c
@@ -2,10 +2,13 @@
|
|||||||
#include "print.h"
|
#include "print.h"
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
error_t unwrap(error_t err) {
|
error_t
|
||||||
if (!err.null) {
|
unwrap (error_t err)
|
||||||
printfn("error: %s", err.src);
|
{
|
||||||
exit(err.status);
|
if (!err.null)
|
||||||
|
{
|
||||||
|
printfn ("error: %s", err.src);
|
||||||
|
exit (err.status);
|
||||||
}
|
}
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|||||||
40
core/file.c
40
core/file.c
@@ -7,45 +7,51 @@
|
|||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
error_t touch(char *path, char *format, ...) {
|
error_t
|
||||||
error_t err = {0};
|
touch (char *path, char *format, ...)
|
||||||
|
{
|
||||||
|
error_t err = { 0 };
|
||||||
err.null = true; // success by default
|
err.null = true; // success by default
|
||||||
|
|
||||||
va_list args;
|
va_list args;
|
||||||
va_start(args, format);
|
va_start (args, format);
|
||||||
|
|
||||||
FILE *fp = fopen(path, "w");
|
FILE *fp = fopen (path, "w");
|
||||||
if (!fp) {
|
if (!fp)
|
||||||
|
{
|
||||||
err.null = false;
|
err.null = false;
|
||||||
err.status = errno;
|
err.status = errno;
|
||||||
err.src = strerror(errno);
|
err.src = strerror (errno);
|
||||||
va_end(args);
|
va_end (args);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
vfprintf(fp, format, args);
|
vfprintf (fp, format, args);
|
||||||
fclose(fp);
|
fclose (fp);
|
||||||
|
|
||||||
va_end(args);
|
va_end (args);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
error_t dir(char *format, ...) {
|
error_t
|
||||||
error_t err = {0};
|
dir (char *format, ...)
|
||||||
|
{
|
||||||
|
error_t err = { 0 };
|
||||||
err.null = true; // success by default
|
err.null = true; // success by default
|
||||||
|
|
||||||
va_list args;
|
va_list args;
|
||||||
va_start(args, format);
|
va_start (args, format);
|
||||||
|
|
||||||
char path[1024];
|
char path[1024];
|
||||||
vsnprintf(path, sizeof(path), format, args);
|
vsnprintf (path, sizeof (path), format, args);
|
||||||
|
|
||||||
va_end(args);
|
va_end (args);
|
||||||
|
|
||||||
if (mkdir(path, 0777) < 0) {
|
if (mkdir (path, 0777) < 0)
|
||||||
|
{
|
||||||
err.null = false;
|
err.null = false;
|
||||||
err.status = errno;
|
err.status = errno;
|
||||||
err.src = strerror(errno);
|
err.src = strerror (errno);
|
||||||
}
|
}
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
|
|||||||
14
core/print.c
14
core/print.c
@@ -2,13 +2,15 @@
|
|||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
int printfn(char *format, ...) {
|
int
|
||||||
|
printfn (char *format, ...)
|
||||||
|
{
|
||||||
int len;
|
int len;
|
||||||
va_list args;
|
va_list args;
|
||||||
va_start(args, format);
|
va_start (args, format);
|
||||||
fprintf(stderr, "yait: ");
|
fprintf (stderr, "yait: ");
|
||||||
len = vfprintf(stderr, format, args);
|
len = vfprintf (stderr, format, args);
|
||||||
putchar('\n');
|
putchar ('\n');
|
||||||
va_end(args);
|
va_end (args);
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|||||||
41
yait/main.c
41
yait/main.c
@@ -1,33 +1,40 @@
|
|||||||
#include "../core/print.h"
|
|
||||||
#include "../core/file.h"
|
#include "../core/file.h"
|
||||||
|
#include "../core/print.h"
|
||||||
#include "format.h"
|
#include "format.h"
|
||||||
|
|
||||||
int create(format_t);
|
int create (format_t);
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int
|
||||||
if (argc < 2) {
|
main (int argc, char **argv)
|
||||||
printfn("error: not enough arguments.");
|
{
|
||||||
|
if (argc < 2)
|
||||||
|
{
|
||||||
|
printfn ("error: not enough arguments.");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
format_t conf;
|
format_t conf;
|
||||||
conf.name = argv[1];
|
conf.name = argv[1];
|
||||||
conf.nogit = false;
|
conf.nogit = false;
|
||||||
|
create (conf);
|
||||||
create(conf);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int create(format_t fmt) {
|
int
|
||||||
take(fmt.name);
|
create (format_t fmt)
|
||||||
|
{
|
||||||
touch("README",
|
take (fmt.name);
|
||||||
|
touch ("README",
|
||||||
"%s ( concise description )\n\n"
|
"%s ( concise description )\n\n"
|
||||||
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor\n"
|
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do "
|
||||||
"incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis\n"
|
"eiusmod tempor\n"
|
||||||
"nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n"
|
"incididunt ut labore et dolore magna aliqua. Ut enim ad minim "
|
||||||
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu\n"
|
"veniam, quis\n"
|
||||||
"fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in\n"
|
"nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo "
|
||||||
|
"consequat.\n"
|
||||||
|
"Duis aute irure dolor in reprehenderit in voluptate velit esse "
|
||||||
|
"cillum dolore eu\n"
|
||||||
|
"fugiat nulla pariatur. Excepteur sint occaecat cupidatat non "
|
||||||
|
"proident, sunt in\n"
|
||||||
"culpa qui officia deserunt mollit anim id est laborum.",
|
"culpa qui officia deserunt mollit anim id est laborum.",
|
||||||
fmt.name);
|
fmt.name);
|
||||||
touch ("hello", "world");
|
touch ("hello", "world");
|
||||||
|
|||||||
Reference in New Issue
Block a user