Skip to content
View NachtsternBuild's full-sized avatar
📢
Working on AtlantisOS
📢
Working on AtlantisOS
  • Germany/Dresden
  • 07:16 (UTC +01:00)

Highlights

  • Pro

Block or report NachtsternBuild

Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
NachtsternBuild/README.md

NachtsternBuild

"Always building, always learning."

/** 
 * nachtstern.c — "NachtsternBuild Orbiter" 
 * A tiny, fun C program that prints a pastel-ish animated header
 * Compile: gcc -O2 -std=c11 -o nachtstern nachtstern.c
 * Run: ./nachtstern
 */
#define _XOPEN_SOURCE 500 // for usleep
#define SLEEP_US 80000

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>   /* usleep */
#include <time.h>


/**
* ANSI color helpers (pastel-like) 
*/
static const char *cols[] = {
    "\x1b[38;5;159m", /* pastel cyan */
    "\x1b[38;5;175m", /* pastel purple */
    "\x1b[38;5;180m", /* pastel blue */
    "\x1b[38;5;216m", /* pastel orange */
    "\x1b[38;5;157m"  /* pastel green */
};

static const char *RESET = "\x1b[0m";
static const int NCOLS = sizeof(cols)/sizeof(cols[0]);

/**
* Simple spinner frames 
*/
static const char *frames[] = { "⠁","⠂","⠄","⡀","⢀","⠠","⠐","⠈" };
static const int NFRAMES = sizeof(frames)/sizeof(frames[0]);

/**
* Draw a fancy title using colors 
*/
void draw_title(int phase) 
{
    const char *name = "NachtsternBuild";
    int len = (int)strlen(name);
    printf("\r");
    for (int i = 0; i < len; ++i) 
    {
        const char *c = cols[(i + phase) % NCOLS];
        putchar(0); // no-op to keep char alignment in some terminals 
        printf("%s%c%s", c, name[i], RESET);
    }
}

/**
* A small "orbiter" line with spinner and progress-like dots 
*/
void orbiter(int step) 
{
    int pos = step % 40;
    for (int i = 0; i < 40; ++i) 
    {
        if (i == pos) 
        {
            printf("%s●%s", cols[(step/3) % NCOLS], RESET);
        }
        
        else 
        {
            if (i % 5 == 0) 
            {
                printf("·");  // use UTF-8 dot
            } 
            
            else 
            {
                putchar(' ');
            }
        }
    }
}

/**
* A fake "updater" that alternates success/fail cheekily 
*/
void fake_update_sequence(void) 
{
    const char *msgs[] = {
        "Scanning modules...",
        "Patching fastboot-assistant...",
        "Repacking Treble image...",
        "Optimizing AtlantisOS...",
        "Tidying Experimente..."
    };
    int n = sizeof(msgs)/sizeof(msgs[0]);
    for (int i = 0; i < n; ++i) 
    {
        printf("\n  %s ", msgs[i]);
        fflush(stdout);
        for (int t = 0; t < 10; ++t) 
        {
            printf("%s%s%s", cols[(i+t) % NCOLS], frames[(i+t) % NFRAMES], RESET);
            fflush(stdout);
            usleep(SLEEP_US);
            printf("\b \b");
        }
        /**
        * playful outcome 
        */
        if ((i % 2) == 0) 
        {
            printf("%s[OK]%s", cols[(i+2) % NCOLS], RESET);
        } 
        
        else 
        {
            printf("%s[skipped — user debug pending]%s", cols[(i+4) % NCOLS], RESET);
        }
    }
    printf("\n\n");
}

int main(void) 
{
    /**
	 * hide cursor 
	 */
    printf("\x1b[?25l");
    for (int phase = 0; phase < 12; ++phase) 
    {
        /**
		 * print title 
		 */
        printf("\r");
        const char *header = "  •  ";
        printf("%s", header);
        for (int i = 0; i < (int)strlen("NachtsternBuild"); ++i) 
        {
            printf("%s%c%s", cols[(i + phase) % NCOLS], "NachtsternBuild"[i], RESET);
        }
        printf("  ");
        /**
		 * spinner 
		 */
        printf("%s%s%s", cols[phase % NCOLS], frames[phase % NFRAMES], RESET);
        fflush(stdout);
        usleep(SLEEP_US * 6);
    }

    /**
	 * orbiter animation 
	 */
    for (int i = 0; i < 80; ++i) 
    {
        printf("\r ");
        orbiter(i);
        fflush(stdout);
        usleep(SLEEP_US);
    }

    /**
	 * fake update 
	 */
    printf("\n\n");
    fake_update_sequence();

    /**
	 * final playful tagline 
	 */
    printf("%s Done — build something weird and useful. %s\n", cols[2], RESET);

    /**
	 * restore cursor 
	 */
    printf("\x1b[?25h");
    return 0;
}

Languages & Tools & Insights

C Bash Python Java Linux Ubuntu Android

Pinned Loading

  1. fastboot-assistant fastboot-assistant Public

    Project to facilitate the installation of custom ROMs and GSIs on Android devices. Created with GTK and C.

    C 20 2

  2. Experimente Experimente Public

    Hier finden sich einige Experimente mit allen möglichen Sachen.

    Shell