Sucker's single file binary creator.
sucker <include-directory> <executable-file>
Usages:
lnx-sucker ./supergame/ ./supergame/bin/run
mac-sucker ./supergame/ ./supergame/bin/run
win-sucker.exe ./somevirus/ ./somevirus/diddle.exe
You will get a file named puker
in the current directory, send that file to your users, then they will be happy.
https://github.com/VitoVan/cl-sucker/releases/latest
The higher number suffix, the higher suckabilities and much more suckfulness.
-
Suck
Loads everything in the
include-directory
recursively into memory, and dump itself as an executable lisp image. -
Puke
Writes everything loaded to the local disk, and execute the
executable-file
set when sucking.
You know, this cl-sucker mechanism sucks, so you just DO WHAT THE FUCK YOU WANT TO.
This program is distributed WITHOUT ANY WARRANTY, you really SHOULD NOT use it unless you can't find any other better alternatives.
It depends on you.
The only shits puked out by cl-sucker is located at:
(defparameter *cl-sucker-dir*
#+darwin "~/.local/rekcus/cache/"
#+linux "~/.local/share/rekcus/cache/"
#+win32 "~/AppData/Local/rekcus/cache/")
That should be called 'Super Cool': https://youtu.be/M7vkau14LDI?t=361
That means you are sucking to many files, please try the 1024 or higher version, they got higher suckabilities, and much more suckfulness.
You can write your own hooks:
- after-suck
- after-puke
Check ordinary-sucker for more details.
Put your code in a file called holy-sucker.lisp
in the same directory with sucker
, and it will be loaded automatically.
There are also two ENVs you can use:
# VERBOSE MODE, default: True, set it to FALSE to disable verbose mode
CL_SUCKER_GIBBERISH=NIL
# HOLY FILE location, default: holy-sucker.lisp, set it to any file you want
CL_SUCKER_HOLYFILE=NIL
You do not actually need to download the binary sucker, write your own holy-sucker.lisp
, and in the same directory:
sbcl --eval "(ql:quickload 'your-awesome-shit)" \
--eval "(ql:quickload 'cl-sucker)" \
--eval "(cl-sucker:entry)"
git clone https://github.com/VitoVan/cl-sucker.git ~/quicklisp/local-projects/cl-sucker
sbcl --disable-debugger \
--eval "(ql:quickload 'cl-sucker)" \
--eval "(asdf:make :cl-sucker)"
file ~/quicklisp/local-projects/cl-sucker/sucker