mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 19:07:35 +00:00
RetroFetch: Add a silly neofetch-like program.
The idea is to print out various system info suitable for screenshots. :^)
This commit is contained in:
parent
43604bf71a
commit
b7166385de
6 changed files with 119 additions and 0 deletions
21
Base/res/serenity.ansi.txt
Normal file
21
Base/res/serenity.ansi.txt
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
[48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [0m
|
||||||
|
[48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;59m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;59m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [0m
|
||||||
|
[48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;166m [48;5;52m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;88m [48;5;166m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [0m
|
||||||
|
[48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;166m [48;5;166m [48;5;166m [48;5;124m [48;5;88m [48;5;88m [48;5;88m [48;5;88m [48;5;124m [48;5;166m [48;5;166m [48;5;166m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [0m
|
||||||
|
[48;5;16m [48;5;16m [48;5;16m [48;5;52m [48;5;166m [48;5;166m [48;5;166m [48;5;166m [48;5;166m [48;5;124m [48;5;124m [48;5;166m [48;5;166m [48;5;166m [48;5;166m [48;5;166m [48;5;52m [48;5;16m [48;5;16m [48;5;16m [0m
|
||||||
|
[48;5;16m [48;5;16m [48;5;16m [48;5;52m [48;5;166m [48;5;166m [48;5;124m [48;5;52m [48;5;124m [48;5;124m [48;5;124m [48;5;166m [48;5;88m [48;5;124m [48;5;166m [48;5;166m [48;5;52m [48;5;16m [48;5;16m [48;5;16m [0m
|
||||||
|
[48;5;16m [48;5;16m [48;5;16m [48;5;166m [48;5;166m [48;5;166m [48;5;88m [48;5;16m [48;5;88m [48;5;124m [48;5;124m [48;5;88m [48;5;16m [48;5;16m [48;5;88m [48;5;166m [48;5;166m [48;5;16m [48;5;16m [48;5;16m [0m
|
||||||
|
[48;5;16m [48;5;16m [48;5;166m [48;5;166m [48;5;166m [48;5;166m [48;5;166m [48;5;124m [48;5;166m [48;5;124m [48;5;124m [48;5;52m [48;5;16m [48;5;16m [48;5;52m [48;5;166m [48;5;166m [48;5;166m [48;5;16m [48;5;16m [0m
|
||||||
|
[48;5;16m [48;5;16m [48;5;166m [48;5;166m [48;5;166m [48;5;124m [48;5;124m [48;5;166m [48;5;166m [48;5;124m [48;5;124m [48;5;88m [48;5;16m [48;5;16m [48;5;124m [48;5;166m [48;5;166m [48;5;166m [48;5;16m [48;5;16m [0m
|
||||||
|
[48;5;16m [48;5;16m [48;5;88m [48;5;166m [48;5;88m [48;5;16m [48;5;52m [48;5;124m [48;5;166m [48;5;124m [48;5;124m [48;5;166m [48;5;124m [48;5;124m [48;5;166m [48;5;124m [48;5;166m [48;5;88m [48;5;16m [48;5;16m [0m
|
||||||
|
[48;5;16m [48;5;16m [48;5;52m [48;5;166m [48;5;52m [48;5;16m [48;5;16m [48;5;124m [48;5;166m [48;5;124m [48;5;124m [48;5;166m [48;5;166m [48;5;166m [48;5;88m [48;5;52m [48;5;124m [48;5;52m [48;5;16m [48;5;16m [0m
|
||||||
|
[48;5;16m [48;5;16m [48;5;166m [48;5;166m [48;5;124m [48;5;88m [48;5;88m [48;5;166m [48;5;166m [48;5;124m [48;5;124m [48;5;88m [48;5;52m [48;5;166m [48;5;88m [48;5;52m [48;5;124m [48;5;166m [48;5;16m [48;5;16m [0m
|
||||||
|
[48;5;16m [48;5;16m [48;5;166m [48;5;166m [48;5;166m [48;5;166m [48;5;166m [48;5;166m [48;5;166m [48;5;124m [48;5;124m [48;5;52m [48;5;52m [48;5;124m [48;5;166m [48;5;166m [48;5;166m [48;5;166m [48;5;16m [48;5;16m [0m
|
||||||
|
[48;5;16m [48;5;16m [48;5;16m [48;5;166m [48;5;166m [48;5;166m [48;5;52m [48;5;52m [48;5;88m [48;5;124m [48;5;124m [48;5;166m [48;5;124m [48;5;166m [48;5;166m [48;5;166m [48;5;166m [48;5;16m [48;5;16m [48;5;16m [0m
|
||||||
|
[48;5;16m [48;5;16m [48;5;16m [48;5;88m [48;5;166m [48;5;88m [48;5;16m [48;5;16m [48;5;16m [48;5;124m [48;5;124m [48;5;124m [48;5;52m [48;5;124m [48;5;166m [48;5;166m [48;5;88m [48;5;16m [48;5;16m [48;5;16m [0m
|
||||||
|
[48;5;16m [48;5;16m [48;5;16m [48;5;52m [48;5;166m [48;5;124m [48;5;16m [48;5;16m [48;5;52m [48;5;124m [48;5;124m [48;5;88m [48;5;16m [48;5;88m [48;5;166m [48;5;166m [48;5;52m [48;5;16m [48;5;16m [48;5;16m [0m
|
||||||
|
[48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;166m [48;5;166m [48;5;88m [48;5;52m [48;5;124m [48;5;124m [48;5;124m [48;5;166m [48;5;124m [48;5;166m [48;5;166m [48;5;166m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [0m
|
||||||
|
[48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;166m [48;5;166m [48;5;166m [48;5;166m [48;5;124m [48;5;124m [48;5;166m [48;5;166m [48;5;166m [48;5;166m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [0m
|
||||||
|
[48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;166m [48;5;166m [48;5;166m [48;5;160m [48;5;160m [48;5;166m [48;5;166m [48;5;166m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [0m
|
||||||
|
[48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;166m [48;5;166m [48;5;166m [48;5;166m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [48;5;16m [0m
|
||||||
|
|
3
Demos/RetroFetch/.gitignore
vendored
Normal file
3
Demos/RetroFetch/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
RetroFetch
|
||||||
|
*.o
|
||||||
|
*.d
|
21
Demos/RetroFetch/Makefile
Normal file
21
Demos/RetroFetch/Makefile
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
include ../../Makefile.common
|
||||||
|
|
||||||
|
OBJS = main.o
|
||||||
|
|
||||||
|
APP = RetroFetch
|
||||||
|
|
||||||
|
DEFINES += -DUSERLAND
|
||||||
|
|
||||||
|
all: $(APP)
|
||||||
|
|
||||||
|
$(APP): $(OBJS)
|
||||||
|
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lc
|
||||||
|
|
||||||
|
.cpp.o:
|
||||||
|
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
-include $(OBJS:%.o=%.d)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@echo "CLEAN"; rm -f $(APP) $(OBJS) *.d
|
||||||
|
|
71
Demos/RetroFetch/main.cpp
Normal file
71
Demos/RetroFetch/main.cpp
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <AK/Assertions.h>
|
||||||
|
|
||||||
|
static void moveto(int row, int column)
|
||||||
|
{
|
||||||
|
printf("\033[%d;%dH", row, column);
|
||||||
|
fflush(stdout);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
printf("\033[3J\033[H\033[2J");
|
||||||
|
fflush(stdout);
|
||||||
|
int fd = open("/res/serenity.ansi.txt", O_RDONLY);
|
||||||
|
if (fd < 0) {
|
||||||
|
perror("open");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
for (;;) {
|
||||||
|
char buffer[BUFSIZ];
|
||||||
|
int nread = read(fd, buffer, sizeof(buffer));
|
||||||
|
if (nread < 0) {
|
||||||
|
perror("read");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (nread == 0)
|
||||||
|
break;
|
||||||
|
int nwritten = write(STDOUT_FILENO, buffer, nread);
|
||||||
|
if (nwritten < 0) {
|
||||||
|
perror("write");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
ASSERT(nwritten == nread);
|
||||||
|
}
|
||||||
|
close(fd);
|
||||||
|
|
||||||
|
printf("\n");
|
||||||
|
printf("\033[s");
|
||||||
|
|
||||||
|
char hostname[128];
|
||||||
|
int rc = gethostname(hostname, sizeof(hostname));
|
||||||
|
if (rc < 0) {
|
||||||
|
perror("gethostname");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int column = 42;
|
||||||
|
|
||||||
|
moveto(3, column);
|
||||||
|
printf("%s@%s\n", getlogin(), hostname);
|
||||||
|
|
||||||
|
moveto(4, column);
|
||||||
|
printf("\033[34;1mOS:\033[0m Serenity\n");
|
||||||
|
|
||||||
|
moveto(5, column);
|
||||||
|
printf("\033[34;1mKernel:\033[0m ");
|
||||||
|
fflush(stdout);
|
||||||
|
system("uname -nrm");
|
||||||
|
|
||||||
|
moveto(6, column);
|
||||||
|
printf("\033[34;1mUptime:\033[0m ");
|
||||||
|
fflush(stdout);
|
||||||
|
system("uptime");
|
||||||
|
|
||||||
|
printf("\033[u\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
|
@ -50,6 +50,8 @@ $make_cmd -C ../Shell clean && \
|
||||||
$make_cmd -C ../Shell && \
|
$make_cmd -C ../Shell && \
|
||||||
$make_cmd -C ../Demos/HelloWorld clean && \
|
$make_cmd -C ../Demos/HelloWorld clean && \
|
||||||
$make_cmd -C ../Demos/HelloWorld && \
|
$make_cmd -C ../Demos/HelloWorld && \
|
||||||
|
$make_cmd -C ../Demos/RetroFetch clean && \
|
||||||
|
$make_cmd -C ../Demos/RetroFetch && \
|
||||||
$make_cmd clean &&\
|
$make_cmd clean &&\
|
||||||
$make_cmd && \
|
$make_cmd && \
|
||||||
sudo ./sync.sh
|
sudo ./sync.sh
|
||||||
|
|
|
@ -80,6 +80,7 @@ ln -s Shell mnt/bin/sh
|
||||||
cp -v kernel.map mnt/
|
cp -v kernel.map mnt/
|
||||||
cp -v ../Demos/HelloWorld/HelloWorld mnt/bin/HelloWorld
|
cp -v ../Demos/HelloWorld/HelloWorld mnt/bin/HelloWorld
|
||||||
ln -s HelloWorld mnt/bin/hw
|
ln -s HelloWorld mnt/bin/hw
|
||||||
|
cp -v ../Demos/RetroFetch/RetroFetch mnt/bin/RetroFetch
|
||||||
|
|
||||||
# Run local sync script, if it exists
|
# Run local sync script, if it exists
|
||||||
if [ -f sync-local.sh ]; then
|
if [ -f sync-local.sh ]; then
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue