aboutsummaryrefslogtreecommitdiff
path: root/.gitignore (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Revamp setup of i18n, now with gotext(0)EuAndreh2025-05-151-1/+1
|
* Finish branches.html and setup i18n of manpages and HTML stringsEuAndreh2025-05-111-2/+4
|
* Switch from POSIX sh to GoEuAndreh2025-05-021-15/+16
|
* src/gistatic.in: Initial sh versionEuAndreh2021-09-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I got a bit frustrated that libgit2 didn't offer an API or "git archive" commands. I started implementing generating tarballs from scratch in src/tar.c and I'm quite liking it: the specification is very small, and the code can be very simple, since all I'm doing is writing fresh tarballs, and not reading or updating them. However I felt a bit locked-in to libgit2 itself, and what a detour from my original goal that is, and the question "what should libgit2 provide" came up to my mind. This made me realize that libgit2 is playing catch-up with Git itself, for as long as Git doesn't explicit has an explicit API, a standard, a public version of its internal libgit.a, or something like that. In fact, I'm locked in to Git, even. So even though a C version would probably be much faster, it wouldn't really have less dependencies, and that's what I'm actually optimising for: having the software be as portable as possible. On that front, C is unbeatable with sh as a close second. But the extreme portability of C aren't being fully exploited here: libgit2 does depend on non-POSIX things like CMake (and quick grep even shows references to -D_GNU_SOURCE!!), and Git's Makefile itself isn't POSIX at all. The point is: by depending on either Git or libgit2, I'm already loosing many selling points of writing the software in C, and sh becomes much more attractive. Had existed a common DVCS interface that could make me decouple gistatic from Git somehow I would insist a bit more in C, but now I'm switching to sh. The fact that I was able to get further with sh in one sitting than I did with C shows that a) I'm a bit less fluent in C than I would like (at least for now ^^) and b) that it is actually much simpler to do. I am quite satisfied with the quality of C code that I got so far. The error handling and propagation is pretty robust, and the implementation is very disciplined. I did most of the development with Valgrind, and other sanitizers would help even further, with some fuzzers on top.
* Have a single top-level main for running unit-testsEuAndreh2021-08-221-2/+3
| | | | | | | | | | | | | | | | | | | Instead of each .c file becoming a self-standing .t executable file, and being run for executing the unit tests local to the file, now each .c becomes a .to object (akin to a .o object, but one where the -DTEST flag is given to the compiler). After that, all the .to objects are linked together in a gistatic-tests executable, in a equivalent way that all .o files get linked together in a gistatic executable. This change was necessary in order to allow dependencies between objects. The next task will be making a tar of a repository tree checkout, and src/gistatic.{o,to} will start depending on src/tar.{o,to}. If each file has its own main function when -DTEST is given, then I wont be able to link them together. I took the opportunity that I had to change the Makefile, and I improved the dependency between targets and dependencies greatly. From what I can tell now, it is correct.
* .gitignore: Add libgistatic.a and src/config.hEuAndreh2021-08-191-2/+4
|
* .gitignore: Add tmp/EuAndreh2021-08-051-0/+1
|
* src/: Add initial working version of generating the index, without ↵EuAndreh2021-07-301-0/+2
| | | | translated strings still
* Re-setup repository using C over RustEuAndreh2021-07-271-1/+7
|
* WIP init RustEuAndreh2021-05-301-0/+1
|
* Remove empty Perl codeEuAndreh2021-05-281-1/+0
|
* Adapt Makefile for Perl project, add placeholder filesEuAndreh2021-03-081-0/+1
|
* Add .gitiginoreEuAndreh2021-03-081-0/+1