#!/usr/bin/env fish

set filename $argv[1]
set filenameNoExtention (echo -n $filename | cut -d"." -f1)

set format $argv[2]

if test -n "$format"; and test -n "$filename"    
    echo "compiling $filename in $format format..."

    if nasm -f $format $filename -o $filenameNoExtention.o
        if ld -N $filenameNoExtention.o -o $filenameNoExtention.$format
            if rm $filenameNoExtention.o
                echo "done!"
            else
                echo "FAIL! : rm $filenameNoExtention.o" 1>&2
            end
        else
            echo "FAIL! : ld $filenameNoExtention.o -o $filenameNoExtention.$format" 1>&2
        end
    else 
        echo  "FAIL! : nasm -f $format $filename -o $filenameNoExtention.o" 1>&2
    end
else
    echo "[!]   Expected filename and format (elf32|elf64) as arguments"
    echo "[!]   Example:"
    echo "[!]       asm-and-link ./someFileName.nasm elf64"
    exit
end
