Skip to content

Commit

Permalink
Merge pull request #9 from davidallendj/update-docker
Browse files Browse the repository at this point in the history
Update Dockerfile and `magellan.sh` script to run in container
  • Loading branch information
davidallendj authored Oct 19, 2023
2 parents 1db4349 + 90dff1f commit 4298912
Show file tree
Hide file tree
Showing 2 changed files with 96 additions and 11 deletions.
8 changes: 5 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
FROM cgr.dev/chainguard/wolfi-base

RUN apk add --no-cache tini
RUN apk add --no-cache tini bash

# nobody 65534:65534
USER 65534:65534


COPY magellan /
COPY magellan /magellan
COPY bin/magellan.sh /usr/bin/magellan.sh

CMD [ "/magellan" ]

CMD [ "/magellan.sh" ]

ENTRYPOINT [ "/sbin/tini", "--" ]
99 changes: 91 additions & 8 deletions bin/magellan.sh
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,21 +1,104 @@
#!/bin/bash

EXE=./magellan
SUBNETS=""
PORTS=""
USER=""
PASS=""
SMD_HOST=""
SMD_PORT=""
THREADS="-1"
TIMEOUT="30"
ARGS=""


function build(){
go mod tidy && go build -C bin/magellan
}

function scan() {
./magellan scan --subnet 172.16.0.0 --port 443
# ./magellan scan --subnet 172.16.0.0 --port 443
${EXE} scan --subnet ${SUBNETS} --port ${PORTS} --timeout ${TIMEOUT} --threads ${THREADS}
}

function list() {
./magellan list
}

function update() {
./magellan update --user admin --pass password --host 172.16.0.109 --component BMC --protocol HTTP --firmware-path ""
function list(){
# ./magellan list
${EXE} list
}

function collect() {
./magellan collect --user admin --pass password
# ./magellan collect --user admin --pass password
${EXE} collect --user ${USER} --pass ${PASS} --timeout ${TIMEOUT} --threads ${THREADS} --host ${SMD_HOST} --port ${SMD_PORT}
}


# parse incoming arguments to set variables
while [[ $# -gt 0 ]]; do
case $1 in
--subnet)
SUBNETS="$2"
shift # past argument
shift # past value
;;
-p|--port)
PORTS="$2"
shift # past argument
shift # past value
;;
--user)
USER="$2"
shift # past argument
shift # past value
;;
--pass|--password)
PASS="$2"
shift
shift
;;
--smd-host)
SMD_HOST="$2"
shift
shift
;;
--smd-port)
SMD_PORT="$2"
shift
shift
;;
--timeout)
TIMEOUT="$2"
shift
shift
;;
--threads)
THREADS="$2"
shift
shift
;;
-*|--*)
echo "Unknown option $1"
exit 1
;;
*)
ARGS+=("$1") # save positional arg
shift # past argument
;;
esac
done

set -- "${POSITIONAL_ARGS[@]}" # restore positional parameters

echo "SMD host = ${SMD_HOST}"
echo "SMD port = ${SMD_PORT}"
echo "subnets = ${SUBNETS}"
echo "ports = ${PORTS}"
echo "user = ${USER}"
echo "pass = ..."

if [[ -n $1 ]]; then
echo "Last line of file specified as non-opt/last argument:"
tail -1 "$1"
fi

scan
collect

0 comments on commit 4298912

Please sign in to comment.