storm-extract is a command line tool to extract Heroes Of The Storm game files.
This project aims to create a prebuilt docker image with the necessary binary installed. This can remove the hassle to build storm-extract
manually (and also cross platform!)
The final built image is ~1.52MB download and ~3.43 MB when extracted. It also does not contain any OS component so running this image is very fast and close to native speed.
Having Docker installed and running on the your system.
Install Docker if you not have done so.
To run the command:
docker run \
-it --init \
-v "path/to/install:/input" \
-v "path/to/output:/output" \
jamiephan/storm-extract-docker
The image will look for two paths:
/input
: The installation of Heroes of the Storm/output
: The output files for extraction
You can mount the volume to your local disk by using -v
switch.
For example:
- Heroes of the Storm install location:
/mnt/c/Program Files/Heroes of the Storm
- Extraction output:
/mnt/d/HeroesFiles
The command will be:
docker run \
-it --init \
-v "/mnt/c/Program Files/Heroes of the Storm:/input" \
-v "/mnt/d/HeroesFiles:/output" \
jamiephan/storm-extract-docker
Note:
-it --init
is a workaround for Ctrl+C interrupt. Since there are some weird stuff will happen in PID 1 for containers. If you do not need Ctrl+C interrupt, this line is not needed but you will lose the ability to stop the command with Ctrl+C. (You can still manually stop the container withdocker stop
.)
You can append any command line options from storm-extract. However, DO NOT(!) add the following switches:
-x
,--extract
-o
,--out
-i
,--in
WARN: The Image does not check whether you have passed in these command line switch. If you done so, weird stuff might happen.
//TODO Add an entrypoint script to check the passed in params.
For example to also print verbosely and search for *.xml files, you can do:
docker run \
-it --init \
-v "path/to/install:/input" \
-v "path/to/output:/output" \
jamiephan/storm-extract-docker --verbose --filetype xml
If you use this command regularly and the Heroes of the Storm installation as well as the output directory won't change a lot, you can consider to alias the command.
This allows a simple storm-extract
command to replace the gigantic docker run string. Which allows it to behave like a normal command, e.g storm-extract --verbose --filetype xml
Edit and append the following line in ~/.bashrc
:
alias storm-extract='docker run -it --init -v "/path/to/install:/input" -v "/path/to/output:/output" jamiephan/storm-extract-docker'
Note: Remember to change
/path/to/install
and/path/to/output
.
Restart the Shell session.
Create a storm-extract.bat
file with the following content and place the file in any location within the PATH
Environment Variable, e.g C:\Windows\System32
.
@echo off
docker run -it --init -v "/path/to/install:/input" -v "/path/to/output:/output" jamiephan/storm-extract-docker %*
Note: Remember to change
/path/to/install
and/path/to/output
.
Restart all terminal applications, e.g cmd.exe