9 Commits

Author SHA1 Message Date
21b21ce73c fix: fix my-mc command 2025-05-27 23:57:57 -07:00
4a7fbef176 test 2025-05-27 19:44:32 -07:00
a1ec0ba829 add KEY default value 2025-05-27 13:57:23 -07:00
6d78af4d3a fix: rename CONNECTOR envar to MY_MC_API_KEY 2025-05-27 13:46:23 -07:00
85428100c0 fix: --connector arg is renamed to --key 2025-05-27 13:33:42 -07:00
407cfcfb69 bump holesail version to 2.1.0 2025-05-25 06:38:01 -07:00
5e03c2c30d fix env UDP option 2025-05-14 01:13:43 -07:00
9c1d769ed8 add UDP environment variable 2025-05-13 18:24:58 -07:00
7989b82c04 handle ctrl-c now 2025-05-13 17:13:40 -07:00
3 changed files with 47 additions and 34 deletions

View File

@@ -1,20 +1,23 @@
FROM node:lts-slim AS base
RUN npm install -g holesail@2.1.0
FROM base AS dev
WORKDIR /
COPY run.sh .
COPY fetch-my-mc-connector.js .
RUN chmod +x run.sh
RUN npm install -g holesail@2.0.3
ENV MODE=server
ENV HOST=0.0.0.0
ENV PORT=8989
ENV PUBLIC=true
ENV USERNAME=admin
ENV PASSWORD=admin
ENV ROLE=user
ENV KEY=""
ENV MY_MC_API_KEY=""
#ENV FORCE ""
ENV MODE server
ENV HOST 0.0.0.0
ENV PORT 8989
ENV PUBLIC true
ENV USERNAME admin
ENV PASSWORD admin
ENV ROLE user
ENV CONNECTOR ""
ENV FORCE ""
ENTRYPOINT [ "/run.sh" ]
CMD [ "/usr/bin/bash", "/run.sh" ]

View File

@@ -1,4 +1,4 @@
const apiKey = process.env.CONNECTOR;
const apiKey = process.env.MY_MC_API_KEY;
const result = fetch('https://api.my-mc.link/my-hash',{
method: "GET",
@@ -9,5 +9,9 @@ const result = fetch('https://api.my-mc.link/my-hash',{
const r = await response.json();
if (r.success == true) {
console.log(r.message);
}
} else {
throw new Error("failed to fetch holesail key");
}
}).catch(err => {
throw Error(err);
})

46
run.sh
View File

@@ -25,8 +25,8 @@ success() {
print "$GREEN" "$1"
}
get_connector_my-mc() {
printf "$(node /fetch-my-mc-connector.js)"
get_connector_my_mc() {
KEY="$(/usr/local/bin/node /fetch-my-mc-connector.js)"
}
cmd_argument_builder () {
@@ -35,14 +35,16 @@ cmd_argument_builder () {
"client")
[[ "$PORT" ]] && args="$args --port $PORT";
[[ "$HOST" ]] && args="$args --host $HOST";
[[ "$CONNECTOR" ]] && args="$args $CONNECTOR";
[[ "$KEY" ]] && args="$args $KEY";
[[ "$UDP" = "true" ]] && args="$args --udp";
;;
"server")
[[ "$PORT" ]] && args="$args --live $PORT";
[[ "$HOST" ]] && args="$args --host $HOST";
[[ "$PUBLIC" = "true" ]] && args="$args --public";
[[ "$FORCE" = "true" ]] && args="$args --force";
[[ "$CONNECTOR" ]] && args="$args --connector $CONNECTOR";
[[ "$KEY" ]] && args="$args --key $KEY";
[[ "$UDP" = "true" ]] && args="$args --udp";
;;
"filemanager")
args="--filemanager";
@@ -53,29 +55,24 @@ cmd_argument_builder () {
[[ "$PASSWORD" ]] && args="$args --password $PASSWORD";
[[ "$ROLE" = "admin" ]] && args="$args --role admin";
[[ "$ROLE" = "user" ]] && args="$args --role user";
[[ "$CONNECTOR" ]] && args="$args --connector $CONNECTOR";
[[ "$KEY" ]] && args="$args --key $KEY";
[[ "$UDP" = "true" ]] && args="$args --udp";
;;
"my-mc")
[[ "$PORT" ]] && args="$args --port $PORT";
[[ "$HOST" ]] && args="$args --host $HOST";
[[ "$CONNECTOR" ]] && args="$args $(get_connector_my-mc)";
[[ "$KEY" ]] && args="$args --connect $KEY";
[[ "$UDP" = "true" ]] && args="$args --udp";
;;
esac
printf "%s" "$args";
}
ARGS="$(cmd_argument_builder)"
if [[ ! $ARGS ]]; then
error "Invalid Mode."
exit 1
fi
# SIGUSR1-handler
# my_handler() {
# echo "my_handler"
# }
my_handler() {
echo "my_handler"
}
term_handler() {
if [ $pid -ne 0 ]; then
@@ -85,17 +82,26 @@ term_handler() {
exit 143; # 128 + 15 -- SIGTERM
}
if ! get_connector_my_mc; then exit 1; fi
ARGS="$(cmd_argument_builder)"
if [[ ! $ARGS ]]; then
error "Invalid Mode."
exit 1
fi
# setup handlers
# on callback, kill the last background process, which is `tail -f /dev/null` and execute the specified handler
#trap 'kill ${!}; my_handler' SIGUSR1
trap 'kill ${!}; term_handler' SIGTERM
trap 'kill ${!}; term_handler' SIGTERM SIGINT
# run application
holesail $ARGS &
/usr/local/bin/holesail $ARGS &
pid="$!"
# wait forever
while true
do
while true; do
tail -f /dev/null & wait ${!}
done