Bin
2025-12-17 1d710f844b65d9bfdf986a71a3b924cd70598a41
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
26
27
28
29
30
31
#!/usr/bin/env bash
INPUT_DIR=$1
WILDCARD=${2}
OUTPUT_FILE=${3:-"files.txt"}
PORT=${4:-8081}
 
echo "Usage: sh serve_local_files.sh INPUT_DIR WILDCARD OUTPUT_FILE PORT"
echo "This script scans INPUT_DIR directory with WILDCARD filter [all files by default],"
echo "generates OUTPUT_FILE [files.txt by default] with a file list,"
echo "starts web server on the port PORT [8081 by default] that serves files from INPUT_DIR"
echo
 
echo "Scanning ${INPUT_DIR} ..."
FIND_CMD="find ${INPUT_DIR} -type f"
if [ -z "$WILDCARD" ]; then
  echo "Files wildcard is not set. Serve all files in ${INPUT_DIR}..."
else
  FIND_CMD="${FIND_CMD} -name ${WILDCARD}"
fi
 
echo "Replacing ${INPUT_DIR} to http://localhost:${PORT} ..."
INPUT_DIR_ESCAPED=$(printf '%s\n' "$INPUT_DIR" | sed -e 's/[\/&]/\\&/g')
eval $FIND_CMD | sed "/${INPUT_DIR_ESCAPED}/s//http:\/\/localhost:${PORT}/" > $OUTPUT_FILE
 
green=`tput setaf 2`
reset=`tput sgr0`
echo "${green}File list stored in '${OUTPUT_FILE}'. Now import it directly from Label Studio UI${reset}"
 
echo "Running web server on the port ${PORT}"
cd $INPUT_DIR
python3 -m http.server $PORT