Scripts: moved the base64 content to clear file
parent
ee37e08f44
commit
75f7d79610
|
@ -21,8 +21,9 @@
|
|||
## See:
|
||||
## http://kerneltrap.org/mailarchive/git/2007/7/1/250424
|
||||
## http://stackoverflow.com/questions/1817370/using-ediff-as-git-mergetool
|
||||
## 'ema' is emacs with lightweight configuration.
|
||||
[mergetool.ediff]
|
||||
cmd = emacs -q -l ~/.emacs.d/init-light.el --eval \" (progn (defun ediff-write-merge-buffer () (let ((file ediff-merge-store-file)) (set-buffer ediff-buffer-C) (write-region (point-min) (point-max) file) (message \\\"Merge buffer saved in: %s\\\" file) (set-buffer-modified-p nil) (sit-for 1))) (setq ediff-quit-hook 'kill-emacs ediff-quit-merge-hook 'ediff-write-merge-buffer) (ediff-merge-files-with-ancestor \\\"$LOCAL\\\" \\\"$REMOTE\\\" \\\"$BASE\\\" nil \\\"$MERGED\\\"))\"
|
||||
cmd = ema --eval \" (progn (defun ediff-write-merge-buffer () (let ((file ediff-merge-store-file)) (set-buffer ediff-buffer-C) (write-region (point-min) (point-max) file) (message \\\"Merge buffer saved in: %s\\\" file) (set-buffer-modified-p nil) (sit-for 1))) (setq ediff-quit-hook 'kill-emacs ediff-quit-merge-hook 'ediff-write-merge-buffer) (ediff-merge-files-with-ancestor \\\"$LOCAL\\\" \\\"$REMOTE\\\" \\\"$BASE\\\" nil \\\"$MERGED\\\"))\"
|
||||
|
||||
[merge]
|
||||
tool = ediff
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
#!/bin/sh
|
||||
|
||||
emacs -q -l ~/.emacs.d/init-light.el --eval "(ediff \"$1\" \"$2\")"
|
||||
ema --eval "(ediff \"$1\" \"$2\")"
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
#!/bin/sh
|
||||
if [ -z "$DISPLAY" ]; then
|
||||
IS_GRAPHICAL=0
|
||||
else
|
||||
IS_GRAPHICAL=$(emacs -batch -Q --eval='(if (fboundp '"'"'tool-bar-mode) (message "1") (message "0"))' 2>&1)
|
||||
fi
|
||||
|
||||
if [ $IS_GRAPHICAL -eq 1 ]; then
|
||||
emacsclient -a "" -nc "$@"
|
||||
else
|
||||
emacsclient -a "" -t "$@"
|
||||
fi
|
|
@ -0,0 +1,2 @@
|
|||
#!/bin/sh
|
||||
emacs -q -l ~/.emacs.d/init-light.el "$@"
|
|
@ -0,0 +1,2 @@
|
|||
#!/bin/sh
|
||||
emacsclient -a "" -t "$@"
|
|
@ -13,31 +13,6 @@ echo "==> 'temp' folder"
|
|||
mkdir -p "$HOME/temp"
|
||||
echo
|
||||
|
||||
## Emacsclient launcher. Required for best emacsclient integration. For a fully
|
||||
## functional daemon, you should write a file like this and set 'EDITOR=em'. We
|
||||
## use base64 to encode the script so that we do not need to handle all the
|
||||
## escape sequences with quotes and so on.
|
||||
EMFILE='/usr/local/bin/em'
|
||||
EMCFILE='/usr/local/bin/emc'
|
||||
if [ -n "$(command -v emacs)" ] && [ ! -f "$EMFILE" ] || [ ! -f "$EMCFILE" ]; then
|
||||
echo "==> Emacs (press Ctrl-D to skip)"
|
||||
|
||||
if [ -z "$(command -v base64)" ]; then
|
||||
echo ":: base64 not found."
|
||||
else
|
||||
sudo sh -c "umask 022 && echo 'IyEvYmluL3NoCmlmIFsgLXogIiRESVNQTEFZIiBdOyB0aGVuCiAgICBJU19HUkFQSElDQUw9MApl
|
||||
bHNlCiAgICBJU19HUkFQSElDQUw9JChlbWFjcyAtYmF0Y2ggLVEgLS1ldmFsPScoaWYgKGZib3Vu
|
||||
ZHAgJyInIid0b29sLWJhci1tb2RlKSAobWVzc2FnZSAiMSIpIChtZXNzYWdlICIwIikpJyAyPiYx
|
||||
KQpmaQoKaWYgWyAkSVNfR1JBUEhJQ0FMIC1lcSAxIF07IHRoZW4KICAgIGVtYWNzY2xpZW50IC1h
|
||||
ICIiIC1uYyAiJEAiCmVsc2UKICAgIGVtYWNzY2xpZW50IC1hICIiIC10ICIkQCIKZmkK
|
||||
' | base64 -d > $EMFILE && chmod 755 $EMFILE"
|
||||
|
||||
sudo sh -c "umask 022 && echo 'IyEvYmluL3NoCmVtYWNzY2xpZW50IC1hICIiIC10ICIkQCIK
|
||||
' | base64 -d > $EMCFILE && chmod 755 $EMCFILE"
|
||||
|
||||
fi
|
||||
fi
|
||||
|
||||
## Advanced keymaps. They need to be in X11 shared dir to be loaded.
|
||||
installkeymap ()
|
||||
{
|
||||
|
|
|
@ -4,9 +4,9 @@ if [ $# -ne 1 ] || [ "$1" = "-h" ]; then
|
|||
cat<<EOF
|
||||
Usage: ${0##*/} PKGBUILD
|
||||
|
||||
Convert an Arch Linux PKGBUILD to a univesral standalone bash script. (The
|
||||
Convert an Arch Linux PKGBUILD to a universal standalone bash script. (The
|
||||
infamous 'bash' is assumed because PKGBUILD are bash scripts.) The resulting
|
||||
script tries to resemble makepkg build process when it makes sense. There is no
|
||||
script tries to resemble makepkg build process where it makes sense. There is no
|
||||
dependency resolution because we cannot guess the package names of the target
|
||||
system.
|
||||
|
||||
|
@ -55,135 +55,6 @@ fi
|
|||
cat "$1" | sed -e 's|--prefix=/usr|--prefix=/usr/local|g' \
|
||||
-e 's|PREFIX=/usr|PREFIX=/usr/local|g' >> "$UBUILD"
|
||||
|
||||
echo 'IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
|
||||
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCl9ST09UPSIkKHJlYWxwYXRoICIkMCIpIgpfUk9PVD0i
|
||||
JHtfUk9PVCUvKn0iCnNyY2Rpcj1zcmMKcGtnZGlyPXBrZwoKRExBR0VOVFM9KCdmdHA6Oi91c3Iv
|
||||
YmluL2N1cmwgLWZDIC0gLS1mdHAtcGFzdiAtLXJldHJ5IDMgLS1yZXRyeS1kZWxheSAzIC1vICVv
|
||||
ICV1JwogICAgICAgICAgJ2h0dHA6Oi91c3IvYmluL2N1cmwgLWZMQyAtIC0tcmV0cnkgMyAtLXJl
|
||||
dHJ5LWRlbGF5IDMgLW8gJW8gJXUnCiAgICAgICAgICAnaHR0cHM6Oi91c3IvYmluL2N1cmwgLWZM
|
||||
QyAtIC0tcmV0cnkgMyAtLXJldHJ5LWRlbGF5IDMgLW8gJW8gJXUnCiAgICAgICAgICAncnN5bmM6
|
||||
Oi91c3IvYmluL3JzeW5jIC16ICV1ICVvJwogICAgICAgICAgJ3NjcDo6L3Vzci9iaW4vc2NwIC1D
|
||||
ICV1ICVvJykKCklOREVOVD0nICAgICcKbXNnICgpCnsKICAgIGVjaG8gIiQodHB1dCBib2xkKSQo
|
||||
dHB1dCBzZXRmIDIpPT0+JCh0cHV0IHNldGYgNykgJDEiCiAgICBzaGlmdCAxCiAgICBmb3IgaTsg
|
||||
ZG8KICAgICAgICBlY2hvICIke0lOREVOVH0kaSIKICAgIGRvbmUKICAgIGVjaG8gLW4gIiQodHB1
|
||||
dCBzZ3IwKSIKfQoKbXNnMiAoKQp7CiAgICBlY2hvICIkKHRwdXQgYm9sZCkkKHRwdXQgc2V0ZiAx
|
||||
KSAgLT4kKHRwdXQgc2V0ZiA3KSAkMSIKICAgIHNoaWZ0IDEKICAgIGZvciBpOyBkbwogICAgICAg
|
||||
IGVjaG8gIiR7SU5ERU5UfSRpIgogICAgZG9uZQogICAgZWNobyAtbiAiJCh0cHV0IHNncjApIgp9
|
||||
Cgp3YXJuaW5nICgpCnsKICAgIGVjaG8gIiQodHB1dCBib2xkKSQodHB1dCBzZXRmIDYpPT0+IFdB
|
||||
Uk5JTkc6JCh0cHV0IHNldGYgNykgJDEiCiAgICBzaGlmdCAxCiAgICBmb3IgaTsgZG8KICAgICAg
|
||||
ICBlY2hvICIke0lOREVOVH0kaSIKICAgIGRvbmUKICAgIGVjaG8gLW4gIiQodHB1dCBzZ3IwKSIK
|
||||
fQoKZXJyb3IgKCkKewogICAgZWNobyAiJCh0cHV0IGJvbGQpJCh0cHV0IHNldGYgNCk9PT4gRVJS
|
||||
T1I6JCh0cHV0IHNldGYgNykgJDEiCiAgICBzaGlmdCAxCiAgICBmb3IgaTsgZG8KICAgICAgICBl
|
||||
Y2hvICIke0lOREVOVH0kaSIKICAgIGRvbmUKICAgIGVjaG8gLW4gIiQodHB1dCBzZ3IwKSIKfQoK
|
||||
X2luaXQoKQp7CiAgICBta2RpciAtcCAiJF9ST09ULyRzcmNkaXIiCiAgICBta2RpciAtcCAiJF9S
|
||||
T09ULyRwa2dkaXIiCgogICAgc3JjZGlyPSIkKHJlYWxwYXRoICIkc3JjZGlyIikiCiAgICBwa2dk
|
||||
aXI9IiQocmVhbHBhdGggIiRwa2dkaXIiKSIKfQoKX2xpc3RkZXBzKCkKewogICAgbXNnICIkcGtn
|
||||
bmFtZSAkcGtndmVyLSRwa2dyZWwiCiAgICBtc2cgIlJ1bnRpbWUgZGVwZW5kZW5jaWVzIgogICAg
|
||||
cHJpbnRmIC0tICclc1xuJyAiJHtkZXBlbmRzW0BdfSIKICAgIG1zZyAiQnVpbGR0aW1lIGRlcGVu
|
||||
ZGVuY2llcyIKICAgIHByaW50ZiAtLSAnJXNcbicgIiR7bWFrZWRlcGVuZHNbQF19IgogICAgbXNn
|
||||
ICJPcHRpb25hbCBkZXBlbmRlbmNpZXMiCiAgICBwcmludGYgLS0gJyVzXG4nICIke29wdGRlcGVu
|
||||
ZHNbQF19Igp9CgpfZmV0Y2goKQp7CiAgICBtc2cgIlJldHJpZXZpbmcgc291cmNlcy4uLiIKCiAg
|
||||
ICBmb3IgaSBpbiAkKHNlcSAwICQoKCR7I3NvdXJjZVsqXX0gLTEpKSk7IGRvCiAgICAgICAgVVJJ
|
||||
PSIke3NvdXJjZVskaV19IgogICAgICAgIGlmIFsgJChlY2hvICIkVVJJIiB8IGdyZXAgLWMgIi8i
|
||||
KSAtbmUgMCBdOyB0aGVuCiAgICAgICAgICAgIEZJTEU9IiR7VVJJIyMqL30iCgogICAgICAgICAg
|
||||
ICAjIyBUT0RPOiBhZGQgc3VwcG9ydCBmb3IgRExBR0VOVAogICAgICAgICAgICBtc2cyICJEb3du
|
||||
bG9hZGluZyAkRklMRS4uLiIKICAgICAgICAgICAgd2dldCAiJE9QVF9GT1JDRSIgIiRVUkkiIC1P
|
||||
ICIkRklMRSIKCiAgICAgICAgICAgICMjIFN0cmFuZ2VseSBlbm91Z2gsIHdnZXQgd2lsbCBub3Qg
|
||||
cmV0dXJuIDAgb24gc3VjY2Vzcy4gT24gZXJyb3IsIGl0CiAgICAgICAgICAgICMjIHdpbGwgc3Rp
|
||||
bGwgY3JlYXRlIGEgMC1ieXRlIGZpbGUuCiAgICAgICAgICAgIGlmIFsgJChkdSAtc2IgIiRGSUxF
|
||||
IiB8IGF3ayAne3ByaW50ICQxfScpIC1lcSAwIF07IHRoZW4KICAgICAgICAgICAgICAgIGVycm9y
|
||||
ICJGYWlsdXJlIHdoaWxlIGRvd25sb2FkaW5nICRGSUxFIiAiQWJvcnRpbmcuLi4iCiAgICAgICAg
|
||||
ICAgICAgICBleGl0IDEKICAgICAgICAgICAgZmkKCiAgICAgICAgZmkKICAgIGRvbmUKfQoKX2No
|
||||
ZWNrc3VtICgpCnsKICAgIGlmICRPUFRfQ0hFQ0tTS0lQOyB0aGVuCiAgICAgICAgd2FybmluZyAi
|
||||
U2tpcHBpbmcgdmVyaWZpY2F0aW9uIG9mIHNvdXJjZSBmaWxlIGNoZWNrc3Vtcy4iCiAgICAgICAg
|
||||
cmV0dXJuCiAgICBmaQoKICAgIFJFU1VMVD10cnVlCgogICAgY2FzZSAkeyNzb3VyY2VbKl19IGlu
|
||||
CiAgICAgICAgJHsjbWQ1c3Vtc1sqXX0pCiAgICAgICAgICAgIENIRUNLU1VNTUVSPW1kNXN1bTs7
|
||||
CiAgICAgICAgJHsjc2hhMXN1bXNbKl19KQogICAgICAgICAgICBDSEVDS1NVTU1FUj1zaGExc3Vt
|
||||
OzsKICAgICAgICAkeyNzaGEyNTZzdW1zWypdfSkKICAgICAgICAgICAgQ0hFQ0tTVU1NRVI9c2hh
|
||||
MjU2c3VtOzsKICAgICAgICAkeyNzaGEzODRzdW1zWypdfSkKICAgICAgICAgICAgQ0hFQ0tTVU1N
|
||||
RVI9c2hhMzg0c3VtOzsKICAgICAgICAkeyNzaGE1MTJzdW1zWypdfSkKICAgICAgICAgICAgQ0hF
|
||||
Q0tTVU1NRVI9c2hhNTEyc3VtOzsKICAgICAgICAqKQogICAgICAgICAgICBlcnJvciAiSW50ZWdy
|
||||
aXR5IGNoZWNrcyBhcmUgZWl0aGVyIG1pc3Npbmcgb3IgZGlmZmVyIGluIHNpemUuIgogICAgICAg
|
||||
ICAgICBleGl0IDE7OwogICAgZXNhYwoKICAgIG1zZyAiVmFsaWRhdGluZyBzb3VyY2UgZmlsZXMg
|
||||
d2l0aCAke0NIRUNLU1VNTUVSfXMuLi4iCgogICAgZm9yIGkgaW4gJChzZXEgMCAkKCgkeyNzb3Vy
|
||||
Y2VbKl19IC0xKSkpOyBkbwogICAgICAgIEZJTEU9IiR7c291cmNlWyRpXSMjKi99IgogICAgICAg
|
||||
IENIRUNLU1VNPSIkKCRDSEVDS1NVTU1FUiAiJEZJTEUiIHwgY3V0IC1mMSAtZCcgJykiCgogICAg
|
||||
ICAgIGVjaG8gLW4gIiRJTkRFTlQkRklMRSAuLi4gIgoKICAgICAgICAjIyBOb3RlOiBoZXJlIHdl
|
||||
IHRha2UgY2FyZSB0byBjb250cm9sIGV4cGFuc2lvbiBhdCB0aGUgcmlnaHQgdGltZS4KICAgICAg
|
||||
ICBldmFsIHRlc3QgJyRDSEVDS1NVTScgPSAnJHsnJHtDSEVDS1NVTU1FUn0nc1skaV19JwogICAg
|
||||
ICAgIGlmIFsgJD8gLWVxIDAgXTsgdGhlbgogICAgICAgICAgICBlY2hvICJQYXNzZWQiCiAgICAg
|
||||
ICAgZWxzZQogICAgICAgICAgICBldmFsIHRlc3QgJyR7JyR7Q0hFQ0tTVU1NRVJ9J3NbJGldfScg
|
||||
PSAnU0tJUCcKICAgICAgICAgICAgaWYgWyAkPyAtZXEgMCBdOyB0aGVuCiAgICAgICAgICAgICAg
|
||||
ICBlY2hvICJTa2lwcGVkIgogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBlY2hvICJG
|
||||
QUlMRUQiCiAgICAgICAgICAgICAgICBSRVNVTFQ9ZmFsc2UKICAgICAgICAgICAgZmkKICAgICAg
|
||||
ICBmaQoKCiAgICBkb25lCgogICAgaWYgISAkUkVTVUxUOyB0aGVuCiAgICAgICAgZXJyb3IgIk9u
|
||||
ZSBvciBtb3JlIGZpbGVzIGRpZCBub3QgcGFzcyB0aGUgdmFsaWRpdHkgY2hlY2shIgogICAgICAg
|
||||
IGV4aXQgMQogICAgZmkKfQoKX2V4dHJhY3QgKCkKewogICAgbXNnICJFeHRyYWN0aW5nIHNvdXJj
|
||||
ZXMuLi4iCiAgICBmb3IgaSBpbiAkKHNlcSAwICQoKCR7I3NvdXJjZVsqXX0gLTEpKSk7IGRvCiAg
|
||||
ICAgICAgRklMRT0iJHtzb3VyY2VbJGldIyMqL30iCgkgICAgY2FzZSAiJEZJTEUiIGluCgkJICAg
|
||||
ICoudGFyLmJ6MnwqLnRiejIpCiAgICAgICAgICAgICAgICBtc2cyICJFeHRyYWN0aW5nICRGSUxF
|
||||
IHdpdGggdGFyIgogICAgICAgICAgICAgICAgdGFyIHhqZiAiJEZJTEUiIC1DICIkc3JjZGlyIjs7
|
||||
CgkJICAgICoudGFyLmd6fCoudGd6KQogICAgICAgICAgICAgICAgbXNnMiAiRXh0cmFjdGluZyAk
|
||||
RklMRSB3aXRoIGJzZHRhZCIKICAgICAgICAgICAgICAgIHRhciB4emYgIiRGSUxFIiAtQyAiJHNy
|
||||
Y2RpciI7OwoJCSAgICAqLnRhci54enwqLnR4eikKICAgICAgICAgICAgICAgIG1zZzIgIkV4dHJh
|
||||
Y3RpbmcgJEZJTEUgd2l0aCBic2R0YWQiCiAgICAgICAgICAgICAgICB0YXIgeEpmICIkRklMRSIg
|
||||
LUMgIiRzcmNkaXIiOzsKICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgIGxuIC1ycyAiJEZJ
|
||||
TEUiICIkc3JjZGlyIjs7CgkgICAgZXNhYwogICAgZG9uZQp9CgpfYnVpbGRob29rKCkKewogICAg
|
||||
bXNnICJTdGFydGluZyBidWlsZCgpLi4uIgogICAgKGNkICIkc3JjZGlyIiAmJiBidWlsZCkKfQoK
|
||||
X2NsZWFuc2UgKCkKewogICAgIyMgVE9ETzogaW1wbGVtZW50IFB1cmdpbmcgdW53YW50ZWQgZmls
|
||||
ZXMuLi4KICAgICMgUFVSR0VfVEFSR0VUUz0odXNyL3ssc2hhcmV9L2luZm8vZGlyIC5wYWNrbGlz
|
||||
dCAqLnBvZCkKCiAgICBtc2cgIlRpZHlpbmcgaW5zdGFsbC4uLiIKICAgIChjZCAiJHBrZ2RpciIg
|
||||
JiYgXAogICAgICAgIG1zZzIgIkNvbXByZXNzaW5nIG1hbiBhbmQgaW5mbyBwYWdlcy4uLiIgJiYg
|
||||
XAogICAgICAgIGZpbmQgLiAtdHlwZSBmIC1pbmFtZSAnKi5bMC05XScgLWV4ZWMgZ3ppcCB7fSBc
|
||||
OyAmJiBcCiAgICAgICAgbXNnMiAiU3RyaXBwaW5nIHVubmVlZGVkIHN5bWJvbHMgZnJvbSBiaW5h
|
||||
cmllcyBhbmQgbGlicmFyaWVzLi4uIiAmJiBcCiAgICAgICAgZmluZCAuIC10eXBlIGYgLWV4ZWN1
|
||||
dGFibGUgLWV4ZWMgc3RyaXAgLXMge30gXDsgXAogICAgICAgICkKfQoKX2NvbXByZXNzKCkKewog
|
||||
ICAgbXNnICJDcmVhdGluZyBwYWNrYWdlIFwiJHBrZ25hbWVcIi4uLiIKCiAgICBVTklOUz0iJHBr
|
||||
Z25hbWUtJHBrZ3Zlci0kcGtncmVsLXVuaW5zdGFsbC5zaCIKICAgIG1zZzIgIkdlbmVyYXRpbmcg
|
||||
JFVOSU5TLi4uIgogICAgZWNobyAnIyEvYmluL3NoJyA+ICIkVU5JTlMiCiAgICAoY2QgIiRwa2dk
|
||||
aXIiICYmIFwKICAgICAgICBmaW5kICogLXR5cGUgZiAtZXhlYyBlY2hvICJybSAvInt9IFw7ID4+
|
||||
ICIuLi8uLi8kVU5JTlMiICYmIFwKICAgICAgICBmaW5kICogLXR5cGUgZCAtZXhlYyBlY2hvICJy
|
||||
bWRpciAvInt9IFw7ID4+ICIuLi8uLi8kVU5JTlMiCiAgICApCiAgICBjaG1vZCAreCAiJFVOSU5T
|
||||
IgoKICAgIG1zZzIgIkNvbXByZXNzaW5nIHBhY2thZ2UuLi4iCiAgICAoY2QgIiRwa2dkaXIiICYm
|
||||
IHRhciAtLW93bmVyPXJvb3QgLS1ncm91cD1yb290IC0tbnVtZXJpYy1vd25lciAtY0pmICIuLi8k
|
||||
cGtnbmFtZS0kcGtndmVyLSRwa2dyZWwudGFyLnh6IiAqKQp9CgpfcGFja2FnZWhvb2soKQp7CiAg
|
||||
ICBpZiAkT1BUX05PQ0xPQkJFUiAmJiBbICQobHMgLWExICIkcGtnZGlyIiB8IHdjIC1sKSAtbmUg
|
||||
MiBdOyB0aGVuCiAgICAgICAgZXJyb3IgIkEgcGFja2FnZSBoYXMgYWxyZWFkeSBiZWVuIGJ1aWx0
|
||||
LiAodXNlIC1mIHRvIG92ZXJ3cml0ZSkiCiAgICAgICAgZXhpdCAxCiAgICBmaQoKICAgIHJtIC1y
|
||||
ZiAiJHBrZ2RpciIKCiAgICBtc2cgIlN0YXJ0aW5nIHBhY2thZ2UoKS4uLiIKICAgIChjZCAiJHNy
|
||||
Y2RpciIgJiYgcGFja2FnZSkKICAgIF9jbGVhbnNlCiAgICBfY29tcHJlc3MKfQoKX2NsZWFuICgp
|
||||
CnsKICAgIG1zZyAiQ2xlYW5pbmcgdXAuLi4iCiAgICBybSAtciAiJHNyY2RpciIgIiRwa2dkaXIi
|
||||
Cn0KCl9pbnN0YWxsKCkKewogICAgbXNnICJJbnN0YWxsaW5nIHBhY2thZ2UgJHBrZ25hbWUuLi4i
|
||||
CiAgICAjIyBUT0RPOiBmaXggcGVybWl0aW9ucy4KICAgICMgc3VkbyB0YXIgeGYgIiRwa2duYW1l
|
||||
LSRwa2d2ZXItJHBrZ3JlbC50YXIueHoiIC1DICIvIgp9CgpfcHJpbnRoZWxwICgpCnsKICAgIGNh
|
||||
dCA8PEVPRQpVc2FnZTogJHsxIyMqL30gW09QVElPTlNdCgpQb3J0IGJ1aWxkZXIgZm9yICRwa2du
|
||||
YW1lICRwa2d2ZXIuCgpUaGlzIHNjcmlwdCBjYW4gcGVyZm9ybSBtdWx0aXBsZSBvcGVyYXRpb25z
|
||||
OgogIDEuIEZldGNoIHNvdXJjZSBjb2RlLgogIDIuIEJ1aWxkLgogIDMuIENyZWF0ZSBwYWNrYWdl
|
||||
LgogIDQuIENsZWFuIGZvbGRlciBmcm9tIGJ1aWxkIGRhdGEuCkRlZmF1bHQgb3BlcmF0aW9uIGlz
|
||||
IHRvIGZldGNoIHNvdXJjZSBjb2RlIGlmIHJlcXVpcmVkLgoKT3B0aW9uczoKCiAgLWI6ICBCdWls
|
||||
ZC4KICAtYzogIENsZWFuIHNvdXJjZSBmb2xkZXJzIGZyb20gdGVtcCBmaWxlIChrZWVwIHVwc3Ry
|
||||
ZWFtIHNvdXJjZSBhbmQgYnVpbHQgcGFja2FnZSkuCiAgLWQ6ICBMaXN0IGRlcGVuZGVuY2llcyBh
|
||||
bmQgZXhpdC4KICAtZjogIEZvcmNlIG9wZXJhdGlvbiAob3ZlcndyaXRlLCByZWJ1aWxkLCByZWlu
|
||||
c3RhbGwpLgogIC1oOiAgRGlzcGxheSB0aGlzIGhlbHAuCiAgLWk6ICBJbnN0YWxsLgogIC1SOiAg
|
||||
Q3JlYXRlIHBhY2thZ2UuCiAgLXM6ICBTa2lwIGludGVncml0eSBjaGVja3MuCgpFT0UKfQoKT1BU
|
||||
X0ZPUkNFPSJuYyIKT1BUX05PQ0xPQkJFUj10cnVlCgpPUFRfQlVJTEQ9ZmFsc2UKT1BUX1BBQ0tB
|
||||
R0U9ZmFsc2UKT1BUX0lOU1RBTEw9ZmFsc2UKT1BUX0NMRUFOPWZhbHNlCk9QVF9DSEVDS1NLSVA9
|
||||
ZmFsc2UKCndoaWxlIGdldG9wdHMgIjpiY2RmaGlScyIgb3B0OyBkbwogICAgY2FzZSAkb3B0IGlu
|
||||
CiAgICAgICAgYikKICAgICAgICAgICAgT1BUX0JVSUxEPXRydWUgOzsKICAgICAgICBjKQogICAg
|
||||
ICAgICAgICBPUFRfQ0xFQU49dHJ1ZSA7OwogICAgICAgIGQpCiAgICAgICAgICAgIF9saXN0ZGVw
|
||||
cwogICAgICAgICAgICBleGl0OzsKICAgICAgICBmKQogICAgICAgICAgICBPUFRfRk9SQ0U9IiIK
|
||||
ICAgICAgICAgICAgT1BUX05PQ0xPQkJFUj1mYWxzZSA7OwogICAgICAgIGgpCiAgICAgICAgICAg
|
||||
IF9wcmludGhlbHAgIiQwIgogICAgICAgICAgICBleGl0IDEgOzsKICAgICAgICBpKQogICAgICAg
|
||||
ICAgICBPUFRfSU5TVEFMTD10cnVlIDs7CiAgICAgICAgUikKICAgICAgICAgICAgT1BUX1BBQ0tB
|
||||
R0U9dHJ1ZSA7OwogICAgICAgIHMpCiAgICAgICAgICAgIE9QVF9DSEVDS1NLSVA9dHJ1ZSA7Owog
|
||||
ICAgICAgID8pCiAgICAgICAgICAgIF9wcmludGhlbHAgIiQwIgogICAgICAgICAgICBleGl0IDEg
|
||||
OzsKICAgICAgICA6KQogICAgICAgICAgICBlY2hvICJNaXNzaW5nIGFyZ3VtZW50LiIKICAgICAg
|
||||
ICAgICAgX3ByaW50aGVscCAiJDAiCiAgICAgICAgICAgIGV4aXQgMSA7OwogICAgZXNhYwpkb25l
|
||||
CnNoaWZ0ICQoKCRPUFRJTkQgLSAxKSkKCm1zZyAiTWFraW5nIHBhY2thZ2U6ICRwa2duYW1lICRw
|
||||
a2d2ZXItJHBrZ3JlbCAoJChkYXRlKSkiCgpfaW5pdApfZmV0Y2gKX2V4dHJhY3QKX2NoZWNrc3Vt
|
||||
CgppZiAkT1BUX0JVSUxEOyB0aGVuIF9idWlsZGhvb2s7IGZpCmlmICRPUFRfUEFDS0FHRTsgdGhl
|
||||
biBfcGFja2FnZWhvb2s7IGZpCmlmICRPUFRfSU5TVEFMTDsgdGhlbiBfaW5zdGFsbDsgZmkKaWYg
|
||||
JE9QVF9DTEVBTjsgdGhlbiBfY2xlYW47IGZpCgptc2cgIkZpbmlzaGVkIG1ha2luZzogJHBrZ25h
|
||||
bWUgJHtwa2d2ZXJ9LSRwa2dyZWwgJChkYXRlKSIK' | base64 -d >> "$UBUILD"
|
||||
cat "$(realpath "$0").in" >> "$UBUILD"
|
||||
|
||||
chmod +x "$UBUILD"
|
||||
|
|
|
@ -0,0 +1,322 @@
|
|||
################################################################################
|
||||
|
||||
_ROOT="$(realpath "$0")"
|
||||
_ROOT="${_ROOT%/*}"
|
||||
srcdir=src
|
||||
pkgdir=pkg
|
||||
|
||||
DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
|
||||
'http::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||
'https::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u'
|
||||
'rsync::/usr/bin/rsync -z %u %o'
|
||||
'scp::/usr/bin/scp -C %u %o')
|
||||
|
||||
INDENT=' '
|
||||
msg ()
|
||||
{
|
||||
echo "$(tput bold)$(tput setf 2)==>$(tput setf 7) $1"
|
||||
shift 1
|
||||
for i; do
|
||||
echo "${INDENT}$i"
|
||||
done
|
||||
echo -n "$(tput sgr0)"
|
||||
}
|
||||
|
||||
msg2 ()
|
||||
{
|
||||
echo "$(tput bold)$(tput setf 1) ->$(tput setf 7) $1"
|
||||
shift 1
|
||||
for i; do
|
||||
echo "${INDENT}$i"
|
||||
done
|
||||
echo -n "$(tput sgr0)"
|
||||
}
|
||||
|
||||
warning ()
|
||||
{
|
||||
echo "$(tput bold)$(tput setf 6)==> WARNING:$(tput setf 7) $1"
|
||||
shift 1
|
||||
for i; do
|
||||
echo "${INDENT}$i"
|
||||
done
|
||||
echo -n "$(tput sgr0)"
|
||||
}
|
||||
|
||||
error ()
|
||||
{
|
||||
echo "$(tput bold)$(tput setf 4)==> ERROR:$(tput setf 7) $1"
|
||||
shift 1
|
||||
for i; do
|
||||
echo "${INDENT}$i"
|
||||
done
|
||||
echo -n "$(tput sgr0)"
|
||||
}
|
||||
|
||||
_init()
|
||||
{
|
||||
mkdir -p "$_ROOT/$srcdir"
|
||||
mkdir -p "$_ROOT/$pkgdir"
|
||||
|
||||
srcdir="$(realpath "$srcdir")"
|
||||
pkgdir="$(realpath "$pkgdir")"
|
||||
}
|
||||
|
||||
_listdeps()
|
||||
{
|
||||
msg "$pkgname $pkgver-$pkgrel"
|
||||
msg "Runtime dependencies"
|
||||
printf -- '%s\n' "${depends[@]}"
|
||||
msg "Buildtime dependencies"
|
||||
printf -- '%s\n' "${makedepends[@]}"
|
||||
msg "Optional dependencies"
|
||||
printf -- '%s\n' "${optdepends[@]}"
|
||||
}
|
||||
|
||||
_fetch()
|
||||
{
|
||||
msg "Retrieving sources..."
|
||||
|
||||
for i in $(seq 0 $((${#source[*]} -1))); do
|
||||
URI="${source[$i]}"
|
||||
if [ $(echo "$URI" | grep -c "/") -ne 0 ]; then
|
||||
FILE="${URI##*/}"
|
||||
|
||||
## TODO: add support for DLAGENT
|
||||
msg2 "Downloading $FILE..."
|
||||
wget "$OPT_FORCE" "$URI" -O "$FILE"
|
||||
|
||||
## Strangely enough, wget will not return 0 on success. On error, it
|
||||
## will still create a 0-byte file.
|
||||
if [ $(du -sb "$FILE" | awk '{print $1}') -eq 0 ]; then
|
||||
error "Failure while downloading $FILE" "Aborting..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
_checksum ()
|
||||
{
|
||||
if $OPT_CHECKSKIP; then
|
||||
warning "Skipping verification of source file checksums."
|
||||
return
|
||||
fi
|
||||
|
||||
RESULT=true
|
||||
|
||||
case ${#source[*]} in
|
||||
${#md5sums[*]})
|
||||
CHECKSUMMER=md5sum;;
|
||||
${#sha1sums[*]})
|
||||
CHECKSUMMER=sha1sum;;
|
||||
${#sha256sums[*]})
|
||||
CHECKSUMMER=sha256sum;;
|
||||
${#sha384sums[*]})
|
||||
CHECKSUMMER=sha384sum;;
|
||||
${#sha512sums[*]})
|
||||
CHECKSUMMER=sha512sum;;
|
||||
*)
|
||||
error "Integrity checks are either missing or differ in size."
|
||||
exit 1;;
|
||||
esac
|
||||
|
||||
msg "Validating source files with ${CHECKSUMMER}s..."
|
||||
|
||||
for i in $(seq 0 $((${#source[*]} -1))); do
|
||||
FILE="${source[$i]##*/}"
|
||||
CHECKSUM="$($CHECKSUMMER "$FILE" | cut -f1 -d' ')"
|
||||
|
||||
echo -n "$INDENT$FILE ... "
|
||||
|
||||
## Note: here we take care to control expansion at the right time.
|
||||
eval test '$CHECKSUM' = '${'${CHECKSUMMER}'s[$i]}'
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Passed"
|
||||
else
|
||||
eval test '${'${CHECKSUMMER}'s[$i]}' = 'SKIP'
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Skipped"
|
||||
else
|
||||
echo "FAILED"
|
||||
RESULT=false
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
done
|
||||
|
||||
if ! $RESULT; then
|
||||
error "One or more files did not pass the validity check!"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
_extract ()
|
||||
{
|
||||
msg "Extracting sources..."
|
||||
for i in $(seq 0 $((${#source[*]} -1))); do
|
||||
FILE="${source[$i]##*/}"
|
||||
case "$FILE" in
|
||||
*.tar.bz2|*.tbz2)
|
||||
msg2 "Extracting $FILE with tar"
|
||||
tar xjf "$FILE" -C "$srcdir";;
|
||||
*.tar.gz|*.tgz)
|
||||
msg2 "Extracting $FILE with bsdtad"
|
||||
tar xzf "$FILE" -C "$srcdir";;
|
||||
*.tar.xz|*.txz)
|
||||
msg2 "Extracting $FILE with bsdtad"
|
||||
tar xJf "$FILE" -C "$srcdir";;
|
||||
*)
|
||||
ln -rs "$FILE" "$srcdir";;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
_buildhook()
|
||||
{
|
||||
msg "Starting build()..."
|
||||
(cd "$srcdir" && build)
|
||||
}
|
||||
|
||||
_cleanse ()
|
||||
{
|
||||
## TODO: implement Purging unwanted files...
|
||||
# PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
|
||||
|
||||
msg "Tidying install..."
|
||||
(cd "$pkgdir" && \
|
||||
msg2 "Compressing man and info pages..." && \
|
||||
find . -type f -iname '*.[0-9]' -exec gzip {} \; && \
|
||||
msg2 "Stripping unneeded symbols from binaries and libraries..." && \
|
||||
find . -type f -executable -exec strip -s {} \; \
|
||||
)
|
||||
}
|
||||
|
||||
_compress()
|
||||
{
|
||||
msg "Creating package \"$pkgname\"..."
|
||||
|
||||
UNINS="$pkgname-$pkgver-$pkgrel-uninstall.sh"
|
||||
msg2 "Generating $UNINS..."
|
||||
echo '#!/bin/sh' > "$UNINS"
|
||||
(cd "$pkgdir" && \
|
||||
find * -type f -exec echo "rm /"{} \; >> "../../$UNINS" && \
|
||||
find * -type d -exec echo "rmdir /"{} \; >> "../../$UNINS"
|
||||
)
|
||||
chmod +x "$UNINS"
|
||||
|
||||
msg2 "Compressing package..."
|
||||
(cd "$pkgdir" && tar --owner=root --group=root --numeric-owner -cJf "../$pkgname-$pkgver-$pkgrel.tar.xz" *)
|
||||
}
|
||||
|
||||
_packagehook()
|
||||
{
|
||||
if $OPT_NOCLOBBER && [ $(ls -a1 "$pkgdir" | wc -l) -ne 2 ]; then
|
||||
error "A package has already been built. (use -f to overwrite)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -rf "$pkgdir"
|
||||
|
||||
msg "Starting package()..."
|
||||
(cd "$srcdir" && package)
|
||||
_cleanse
|
||||
_compress
|
||||
}
|
||||
|
||||
_clean ()
|
||||
{
|
||||
msg "Cleaning up..."
|
||||
rm -r "$srcdir" "$pkgdir"
|
||||
}
|
||||
|
||||
_install()
|
||||
{
|
||||
msg "Installing package $pkgname..."
|
||||
## TODO: fix permitions.
|
||||
# sudo tar xf "$pkgname-$pkgver-$pkgrel.tar.xz" -C "/"
|
||||
}
|
||||
|
||||
_printhelp ()
|
||||
{
|
||||
cat <<EOE
|
||||
Usage: ${1##*/} [OPTIONS]
|
||||
|
||||
Port builder for $pkgname $pkgver.
|
||||
|
||||
This script can perform multiple operations:
|
||||
1. Fetch source code.
|
||||
2. Build.
|
||||
3. Create package.
|
||||
4. Clean folder from build data.
|
||||
Default operation is to fetch source code if required.
|
||||
|
||||
Options:
|
||||
|
||||
-b: Build.
|
||||
-c: Clean source folders from temp file (keep upstream source and built package).
|
||||
-d: List dependencies and exit.
|
||||
-f: Force operation (overwrite, rebuild, reinstall).
|
||||
-h: Display this help.
|
||||
-i: Install.
|
||||
-R: Create package.
|
||||
-s: Skip integrity checks.
|
||||
|
||||
EOE
|
||||
}
|
||||
|
||||
OPT_FORCE="nc"
|
||||
OPT_NOCLOBBER=true
|
||||
|
||||
OPT_BUILD=false
|
||||
OPT_PACKAGE=false
|
||||
OPT_INSTALL=false
|
||||
OPT_CLEAN=false
|
||||
OPT_CHECKSKIP=false
|
||||
|
||||
while getopts ":bcdfhiRs" opt; do
|
||||
case $opt in
|
||||
b)
|
||||
OPT_BUILD=true ;;
|
||||
c)
|
||||
OPT_CLEAN=true ;;
|
||||
d)
|
||||
_listdeps
|
||||
exit;;
|
||||
f)
|
||||
OPT_FORCE=""
|
||||
OPT_NOCLOBBER=false ;;
|
||||
h)
|
||||
_printhelp "$0"
|
||||
exit 1 ;;
|
||||
i)
|
||||
OPT_INSTALL=true ;;
|
||||
R)
|
||||
OPT_PACKAGE=true ;;
|
||||
s)
|
||||
OPT_CHECKSKIP=true ;;
|
||||
?)
|
||||
_printhelp "$0"
|
||||
exit 1 ;;
|
||||
:)
|
||||
echo "Missing argument."
|
||||
_printhelp "$0"
|
||||
exit 1 ;;
|
||||
esac
|
||||
done
|
||||
shift $(($OPTIND - 1))
|
||||
|
||||
msg "Making package: $pkgname $pkgver-$pkgrel ($(date))"
|
||||
|
||||
_init
|
||||
_fetch
|
||||
_extract
|
||||
_checksum
|
||||
|
||||
if $OPT_BUILD; then _buildhook; fi
|
||||
if $OPT_PACKAGE; then _packagehook; fi
|
||||
if $OPT_INSTALL; then _install; fi
|
||||
if $OPT_CLEAN; then _clean; fi
|
||||
|
||||
msg "Finished making: $pkgname ${pkgver}-$pkgrel $(date)"
|
|
@ -111,9 +111,8 @@ alias xres='xrandr -s $(xrandr | awk '"'"'/^ / {print $1;exit}'"'"')'
|
|||
##==============================================================================
|
||||
## Emacs
|
||||
##==============================================================================
|
||||
# See .homeinit
|
||||
## 'em' is a wrapper script for emacsclient.
|
||||
if [ -n "$(command -v em)" ]; then
|
||||
alias ema='emacs -q -l ~/.emacs.d/init-light.el'
|
||||
alias emacs-reload="emacsclient -e '(kill-emacs)' >/dev/null 2>&1; emacs --daemon"
|
||||
fi
|
||||
|
||||
|
|
Loading…
Reference in New Issue