summaryrefslogtreecommitdiff
path: root/nas.sh
blob: ac6701379e39d9ddd9506ada7f6c692245895260 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/env bash

if [[ $# -lt 1 ]]; then                                           # nas
    printf "usage: nas FILEi [FILEo]\n"
    printf "(!) if FILEo not specified, FILEi will be used.\n"
    exit 1
elif [[ $# -ge 2 ]]; then                                         # nas FILEi FILEo | nas ^-h(elp)?$ || nas ^--help$
    if [[ "$1" =~ ^-h(elp)?$ || "$1" =~ ^--help$ ]]; then
        # usage                                                   # ================> nas ^-h(elp)?$ || nas ^--help$
        printf "usage: nas FILEi [FILEo]\n"
        printf "(!) if FILEo not specified, FILEi will be used.\n"
        exit 0
    else                                                          # ================> nas FILEi FILEo
        # assemble
        printf ":> compiling \"%s\" (output=\"%s\")\n" "$1" "$2"
        nasm -felf64 $1 -o $1.o && ld $1.o -o $2 && rm $1.o
        exit 0
    fi
else
    # assemble                                                    # ================> nas FILEi
    printf "(!) warning: FILEo not specified. using FILEi (\"%s\") as output FILE\n" "$1"
    printf ":> compiling \"%s\" (output=\"%s\")\n" "$1" "$1"
    nasm -felf64 $1 -o $1.o && ld $1.o -o $1 && rm $1.o
    exit 0
fi