Compare commits
No commits in common. "82af3b5d471013b092dc0a066476f581298de390" and "1fa8fcec64714fbe6689a270e59244004f0e6828" have entirely different histories.
82af3b5d47
...
1fa8fcec64
4 changed files with 1 additions and 64 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,2 +0,0 @@
|
|||
/target/
|
||||
|
49
README.md
49
README.md
|
@ -6,53 +6,6 @@ A no-nonsense, user-extensible `fortune-mod` replacement.
|
|||
## Goals
|
||||
|
||||
- Sensible: I'm fed up with fortunes about men hating their wives.
|
||||
- Straightforward: No weird formats. Plain text with `\n` escape sequences; easy to add or remove content.
|
||||
- Straightforward: No weird formats. Plain text with `\n` escape sequences.
|
||||
|
||||
This project was originally built in Rust, and I migrated it to C# primarily to
|
||||
test out [bflat](https://github.com/bflattened/bflat).
|
||||
|
||||
## Installation
|
||||
|
||||
### Application
|
||||
|
||||
<details>
|
||||
<summary>Release Binary</summary>
|
||||
|
||||
Copy the compiled binary from the [releases page](https://git.vwolfe.io/valerie/fortune-cs/releases)
|
||||
to a directory in `$PATH`, such as `/usr/bin/`.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>From Source</summary>
|
||||
|
||||
Clone the source repository and either use the prewritten [just](https://github.com/casey/just)
|
||||
recipe with the command `just build`, or run `bflat build ./src/Program.cs` if
|
||||
you'd rather set your build options manually.
|
||||
|
||||
</details>
|
||||
|
||||
### Base Fortunes
|
||||
|
||||
<details>
|
||||
<summary>Release Tarball</summary>
|
||||
|
||||
Copy the `base-fortunes.tar.gz` tarball from the [releases page](https://git.vwolfe.io/valerie/fortune-cs/releases),
|
||||
extract the archive using `tar xzf base-fortunes.tar.gz`, and move the
|
||||
resulting `.txt` files to `/usr/share/fortune-cs/`.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>From Source</summary>
|
||||
|
||||
Clone the source repository and copy the files from the `data/` directory to
|
||||
`/usr/share/fortune-cs`.
|
||||
|
||||
</details>
|
||||
|
||||
## Dependencies
|
||||
|
||||
- [bflat](https://github.com/bflattened/bflat): Compiler
|
||||
- [just](https://github.com/casey/just): Build recipe
|
||||
|
||||
|
|
7
justfile
7
justfile
|
@ -1,7 +0,0 @@
|
|||
|
||||
build:
|
||||
bflat build -o ./target/fortune-cs --no-reflection --no-stacktrace-data --no-globalization --no-debug-info --no-pie
|
||||
|
||||
fortunes:
|
||||
cd data & tar czf ../target/base-fortunes.tar.gz ./*.txt
|
||||
|
|
@ -2,29 +2,22 @@ using System;
|
|||
using System.IO;
|
||||
using System.Security.Cryptography;
|
||||
|
||||
// make sure fortune directory exists
|
||||
var resourcePath = "/usr/share/fortune-cs/";
|
||||
if(!Directory.Exists(resourcePath)) {
|
||||
Console.WriteLine("fortune-cs: directory '/usr/share/fortune-cs/' does not exist");
|
||||
return 1;
|
||||
}
|
||||
|
||||
// pull file list
|
||||
var files = Directory.GetFiles(resourcePath, "*.txt");
|
||||
|
||||
var prng = RandomNumberGenerator.Create();
|
||||
|
||||
// choose a file and line
|
||||
var file = files[RandomNumberGenerator.GetInt32(files.Length)];
|
||||
var lines = File.ReadAllLines(file);
|
||||
var line = lines[RandomNumberGenerator.GetInt32(lines.Length)];
|
||||
|
||||
prng.Dispose();
|
||||
|
||||
// process escape codes
|
||||
line = line.Replace("\\n", "\n");
|
||||
|
||||
// write
|
||||
Console.WriteLine(line);
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue