diff --git a/dotfiles/zshrc b/dotfiles/zshrc index 26c93e3..e67a20e 100644 --- a/dotfiles/zshrc +++ b/dotfiles/zshrc @@ -44,8 +44,10 @@ bindkey '^[[B' history-search-forward bindkey '^[[1;5C' forward-word bindkey '^[[1;5D' backward-word -# Source extras -for file in $HOME/.zshrc.d/* ; do source "$file" ; done +# Source extras if interactive +if [[ $- == *i* ]] ; then + for file in $HOME/.zshrc.d/* ; do source "$file" ; done +fi # Load any local settings if [ -e $HOME/.zshrc.local ] ; then source $HOME/.zshrc.local ; fi diff --git a/dotfiles/zshrc.d/assemble.zsh b/dotfiles/zshrc.d/assemble.zsh new file mode 100644 index 0000000..87431be --- /dev/null +++ b/dotfiles/zshrc.d/assemble.zsh @@ -0,0 +1,17 @@ +if [ -f "`command which nasm`" -a -f "`command which objdump`" ] ; then + assemble_shellcode() { + if [ -z "$1" ] ; then echo "Usage: $0 " >&2 ; return 1 ; fi + local NASM=`command which nasm` + local OBJDUMP=`command which objdump` + local TMPF=`mktemp` + local bytes + local byte + $NASM -f elf -o $TMPF $1 + $OBJDUMP -M intel -d $TMPF | grep '^ ' | cut -f2 | while read -A bytes ; do + for byte in $bytes ; do + echo -n "\\\\x$byte" + done + done + echo + } +fi