Compare commits

..

13 commits
2.1.1 ... main

Author SHA1 Message Date
Tom MTT.
9f641dccda
docs(feuille.1): typo 2023-11-15 14:19:10 +01:00
Tom MTT.
bceed896bb
fix(.gitignore): ignore .ccls-cache 2023-11-15 14:17:43 +01:00
Tom MTT
c52d52df2a
fix(config.mk): typo 2023-02-23 17:44:40 +01:00
Tom MTT
6468c28652
fix(README.md): Description in ToC 2023-02-14 13:47:11 +01:00
Tom MTT
0b7db033c5 style(feuille.c): padding 2022-12-29 17:05:05 +01:00
Tom MTT
c2c5440b21 fix: use `#pragma once' instead of guards 2022-12-25 01:03:02 +01:00
Tom MTT
47e6204e08 fix(README.md): small nitpick (thanks random lainon) 2022-12-22 19:32:37 +01:00
Tom MTT
40dfb78ef2 style(feuille.c): padding 2022-12-18 23:46:35 +01:00
Tom MTT
bd471e4113 fix(README.md): cosmopolitan libc 2022-12-12 20:56:14 +01:00
Tom MTT
67cbd21fc4 fix(README.md): broken link (again) 2022-12-12 20:55:15 +01:00
Tom MTT
48c211fc64 fix(README.md): broken link 2022-12-12 20:54:21 +01:00
Tom MTT
5c93649473 fix(Makefile): minor tweaks 2022-12-11 14:38:36 +01:00
Tom MTT
fbcf5b1464 fix(Makefile): unzip -f flag 2022-12-11 12:55:24 +01:00
12 changed files with 60 additions and 60 deletions

3
.gitignore vendored
View file

@ -4,5 +4,8 @@ cosmopolitan
feuille feuille
feuille.com feuille.com
feuille.com.dbg
cgi/feuille.cgi cgi/feuille.cgi
.ccls-cache

View file

@ -10,18 +10,21 @@ TARGET$(COSMO) = feuille
SRC = feuille.c util.c server.c bin.c SRC = feuille.c util.c server.c bin.c
OBJ = $(SRC:%.c=%.o) OBJ = $(SRC:%.c=%.o)
all: $(TARGET) feuille.1 cgi all: $(TARGET) feuille.1 cgi
run: $(TARGET) run: $(TARGET)
./$(TARGET) ./$(TARGET)
clean: clean:
@printf "%-8s $(OBJ)\n" "rm" @printf "%-8s $(OBJ)\n" "rm"
@rm -f $(OBJ) @rm -f $(OBJ)
distclean: distclean:
@printf "%-8s feuille feuille.com $(OBJ)\n" "rm" @printf "%-8s feuille feuille.com feuille.com.dbg $(OBJ)\n" "rm"
@rm -f feuille feuille.com $(OBJ) @rm -f feuille feuille.com feuille.com.dbg $(OBJ)
install: $(TARGET) feuille.1 install: $(TARGET) feuille.1
@echo "installing executable file to $(PREFIX)/bin" @echo "installing executable file to $(PREFIX)/bin"
@ -34,37 +37,44 @@ install: $(TARGET) feuille.1
@cp -f feuille.1 $(MAN)/man1 @cp -f feuille.1 $(MAN)/man1
@chmod 644 $(MAN)/man1/feuille.1 @chmod 644 $(MAN)/man1/feuille.1
uninstall: $(PREFIX)/bin/$(TARGET) $(MAN)/man1/feuille.1 uninstall:
@echo "removing executable file from $(PREFIX)/bin" @echo "removing executable file from $(PREFIX)/bin"
@rm -f "$(PREFIX)/bin/$(TARGET)" @rm -f "$(PREFIX)/bin/$(TARGET)"
@echo "removing manpage from $(MAN)/man1" @echo "removing manpage from $(MAN)/man1"
@rm -f $(MAN)/man1/feuille.1 @rm -f $(MAN)/man1/feuille.1
feuille.1: feuille.1.md config.mk
@printf "%-8s feuille.1.md -o feuille.1\n" "pandoc"
@sed "s/{VERSION}/$(VERSION)/g" feuille.1.md | pandoc -s -t man -o feuille.1
# manpage
feuille.1: feuille.1.md config.mk
@printf "%-8s $@.md -o $@\n" "pandoc"
@sed "s/{VERSION}/$(VERSION)/g" $@.md | pandoc -s -t man -o $@
# standard libc
feuille: $(OBJ) feuille: $(OBJ)
@printf "%-8s $(OBJ) -o feuille\n" "$(CC)" @printf "%-8s $(OBJ) -o $@\n" "$(CC)"
@$(CC) $(OBJ) -o feuille $(LDFLAGS) @$(CC) $(OBJ) -o $@ $(LDFLAGS)
# cosmopolitan libc # cosmopolitan libc
feuille.com: cosmopolitan feuille
@printf "%-8s feuille -o feuille.com\n" "objcopy"
@objcopy -S -O binary feuille feuille.com
cosmopolitan: cosmopolitan:
@if [ ! -d cosmopolitan ]; then \ @if [ ! -d cosmopolitan ]; then \
printf "%-8s https://justine.lol/cosmopolitan/cosmopolitan-amalgamation-2.2.zip\n" "curl" ;\ printf "%-8s https://justine.lol/cosmopolitan/cosmopolitan-amalgamation-2.2.zip\n" "curl" ;\
curl -sO "https://justine.lol/cosmopolitan/cosmopolitan-amalgamation-2.2.zip" ;\ curl -sO "https://justine.lol/cosmopolitan/cosmopolitan-amalgamation-2.2.zip" ;\
\ \
printf "%-8s cosmopolitan-amalgamation-2.2.zip\n" "unzip" ;\ printf "%-8s cosmopolitan-amalgamation-2.2.zip\n" "unzip" ;\
unzip -qf cosmopolitan-amalgamation-2.2.zip -d cosmopolitan ;\ unzip -q cosmopolitan-amalgamation-2.2.zip -d cosmopolitan ;\
\ \
rm -rf cosmopolitan-amalgamation-* ;\ rm -rf cosmopolitan-amalgamation-* ;\
fi fi
feuille.com.dbg: $(OBJ)
@printf "%-8s $(OBJ) -o $@\n" "$(CC)"
@$(CC) $(OBJ) -o $@ $(LDFLAGS)
feuille.com: cosmopolitan feuille.com.dbg
@printf "%-8s $@.dbg -o $@\n" "objcopy"
@objcopy -S -O binary $@.dbg $@
# CGI script # CGI script
ADDR = 127.0.0.1 ADDR = 127.0.0.1
PORT = 9999 PORT = 9999
@ -73,7 +83,7 @@ cgi: cgi/feuille.cgi
cgi/feuille.cgi: cgi/feuille.cgi.c cgi/feuille.cgi: cgi/feuille.cgi.c
@printf "%-8s cgi/feuille.cgi.c -o cgi/feuille.cgi\n" "$(CC)" @printf "%-8s cgi/feuille.cgi.c -o cgi/feuille.cgi\n" "$(CC)"
@$(CC) cgi/feuille.cgi.c -o cgi/feuille.cgi -std=c99 -O3 -static -Wall -Wextra \ @$(CC) $@.c -o $@ -std=c99 -O3 -static -Wall -Wextra \
-DADDR=\"$(ADDR)\" -DPORT=$(PORT) \ -DADDR=\"$(ADDR)\" -DPORT=$(PORT) \
$(INCS) $(LIBS) $(INCS) $(LIBS)

View file

@ -8,6 +8,7 @@ code quality, and security.
<summary>Table of Contents</summary> <summary>Table of Contents</summary>
<ol> <ol>
<li><a href="#usage">Usage</a></li> <li><a href="#usage">Usage</a></li>
<li><a href="#description">Description</a></li>
<li> <li>
<a href="#installation">Installation</a> <a href="#installation">Installation</a>
<ul> <ul>
@ -132,7 +133,8 @@ That sould be it. Have fun!
## Description ## Description
* Focuses on speed, * Focuses on speed,
* Multi-threaded (using `fork`) * Handles multiple requests at once (using a pool of `fork`'ed
workers)
* Only does what it needs to do * Only does what it needs to do
* code quality, * code quality,
@ -159,7 +161,7 @@ That sould be it. Have fun!
* Works on nearly all POSIX-compliant OSes * Works on nearly all POSIX-compliant OSes
* Can be run in the background and as a service * Can be run in the background and as a service
* IPv6-enabled * IPv6-enabled
* Now with 100% more (Cosmopolitan libc)[http://justine.lol/cosmopolitan/] support! * Now with 100% more [Cosmopolitan libc](http://justine.lol/cosmopolitan/) support!
## Installation ## Installation
@ -196,11 +198,11 @@ $ sudo make install
``` ```
You can also build using the You can also build using the
(Cosmopolitan libc)[http://justine.lol/cosmopolitan/], which will [Cosmopolitan libc](http://justine.lol/cosmopolitan/), which will
make an executable capable of running on Linux, OpenBSD, FreeBSD, make an executable capable of running on Linux, OpenBSD, FreeBSD,
Mac... out of the box. To do so, build with the `COSMO` flag. Mac... out of the box. To do so, build with the `COSMO` flag.
It will produce `feuille` and `feuille.com`, the former being the It will produce `feuille.com.dbg` and `feuille.com`, the former being
debug binary, and the former the portable one. the debug binary, and the latter the portable one.
If you wish to make a debug build, you can set `DEBUG` to whatever If you wish to make a debug build, you can set `DEBUG` to whatever
comes to your mind. comes to your mind.

5
arg.h
View file

@ -31,8 +31,7 @@
* by 20h * by 20h
*/ */
#ifndef _ARG_H_ #pragma once
#define _ARG_H_
#ifndef COSMOPOLITAN #ifndef COSMOPOLITAN
#include <stdlib.h> #include <stdlib.h>
@ -79,5 +78,3 @@ extern char *argv0;
(brk_ = 1, (argv[0][i_+1] != '\0')?\ (brk_ = 1, (argv[0][i_+1] != '\0')?\
(&argv[0][i_+1]) :\ (&argv[0][i_+1]) :\
(argc--, argv++, argv[0]))) (argc--, argv++, argv[0])))
#endif

5
bin.h
View file

@ -11,8 +11,7 @@
* <https://basedwa.re/tmtt/feuille/src/branch/main/LICENSE>. * <https://basedwa.re/tmtt/feuille/src/branch/main/LICENSE>.
*/ */
#ifndef _BIN_H_ #pragma once
#define _BIN_H_
#include "feuille.h" #include "feuille.h"
@ -21,5 +20,3 @@ int write_paste(char *, unsigned long, char *);
char *generate_id(int); char *generate_id(int);
char *create_url(char *); char *create_url(char *);
#endif

View file

@ -1,5 +1,5 @@
# feuille version # feuille version
VERSION = 2.1.0 VERSION = 2.1.4
# paths (customize them to fit your system) # paths (customize them to fit your system)
PREFIX = /usr/local PREFIX = /usr/local
@ -41,4 +41,4 @@ CFLAGS$(DEBUG) = -O3 -Wall -Wextra -Wno-sign-compare $(CCFLAGS)
LDFLAGS$(DEBUG) = -s $(CLDFLAGS) LDFLAGS$(DEBUG) = -s $(CLDFLAGS)
# static build (uncomment) # static build (uncomment)
#LD_FLAGS += -static #LDFLAGS += -static

View file

@ -14,7 +14,7 @@
. ftr VB CB . ftr VB CB
. ftr VBI CBI . ftr VBI CBI
.\} .\}
.TH "feuille" "1" "November 2022" "feuille 2.1.0" "" .TH "feuille" "1" "November 2022" "feuille 2.1.4" ""
.hy .hy
.SH NAME .SH NAME
.PP .PP
@ -45,7 +45,7 @@ The difference is minimal, no need to worry about it.
Default: \f[V]131072\f[R]B (128KiB) Default: \f[V]131072\f[R]B (128KiB)
.TP .TP
\f[B]-f\f[R] \f[B]-f\f[R]
Makes \f[B]feuille\f[R] run in the forground. Makes \f[B]feuille\f[R] run in the foreground.
Default: disabled Default: disabled
.TP .TP
\f[B]-h\f[R] \f[B]-h\f[R]

View file

@ -30,7 +30,7 @@ and IPv6 addresses (won't work on OpenBSD).
: Default: `131072`B (128KiB) : Default: `131072`B (128KiB)
**-f** **-f**
: Makes **feuille** run in the forground. : Makes **feuille** run in the foreground.
: Default: disabled : Default: disabled
**-h** **-h**

View file

@ -11,8 +11,7 @@
* <https://basedwa.re/tmtt/feuille/src/branch/main/LICENSE>. * <https://basedwa.re/tmtt/feuille/src/branch/main/LICENSE>.
*/ */
#ifndef _FEUILLE_H_ #pragma once
#define _FEUILLE_H_
typedef struct Settings { typedef struct Settings {
char *address; char *address;
@ -32,5 +31,3 @@ typedef struct Settings {
} Settings; } Settings;
extern Settings settings; extern Settings settings;
#endif

View file

@ -11,8 +11,7 @@
* <https://basedwa.re/tmtt/feuille/src/branch/main/LICENSE>. * <https://basedwa.re/tmtt/feuille/src/branch/main/LICENSE>.
*/ */
#ifndef _SERVER_H_ #pragma once
#define _SERVER_H_
#include "feuille.h" #include "feuille.h"
@ -23,5 +22,3 @@ void close_connection(int);
unsigned long read_paste(int, char **); unsigned long read_paste(int, char **);
int send_response(int, char *); int send_response(int, char *);
#endif

5
util.h
View file

@ -11,11 +11,8 @@
* <https://basedwa.re/tmtt/feuille/src/branch/main/LICENSE>. * <https://basedwa.re/tmtt/feuille/src/branch/main/LICENSE>.
*/ */
#ifndef _UTIL_H_ #pragma once
#define _UTIL_H_
void die(int, char *, ...); void die(int, char *, ...);
void error(char *, ...); void error(char *, ...);
void verbose(int, char *, ...); void verbose(int, char *, ...);
#endif