Skip to content

Commit

Permalink
Merge pull request #1262 from timopollmeier/script-based-exe-installers
Browse files Browse the repository at this point in the history
Fix and clean up gvm-lsc-exe-creator
  • Loading branch information
bjoernricks authored Aug 18, 2020
2 parents 5b32b80 + 52bfc2f commit 850d022
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 34 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [21.4] (unreleased)

### Changed
- Move EXE credential generation to a Python script [#1260](https://github.com/greenbone/gvmd/pull/1260)
- Move EXE credential generation to a Python script [#1260](https://github.com/greenbone/gvmd/pull/1260) [#1262](https://github.com/greenbone/gvmd/pull/1262)

[21.4]: https://github.com/greenbone/gvmd/compare/gvmd-20.08...master

Expand Down
70 changes: 37 additions & 33 deletions tools/gvm-lsc-exe-creator
Original file line number Diff line number Diff line change
Expand Up @@ -26,41 +26,45 @@ import subprocess
import sys
import tempfile

# Parse command line arguments
description = "Generate a Windows EXE credential installer"
argparser = argparse.ArgumentParser(description=description)
argparser.add_argument("username",
help="Name of the user to create")
argparser.add_argument("password_file_path",
help="Path to a file containing the user's password")
argparser.add_argument("temp_dir",
help="Directory to create temporary files in")
argparser.add_argument("output_path",
help="Path for finished installer")
argparser.add_argument("template_path",
help="Path of the NSIS script template file")
args = argparser.parse_args()
def main():
# Parse command line arguments
description = "Generate a Windows EXE credential installer"
argparser = argparse.ArgumentParser(description=description)
argparser.add_argument("username",
help="Name of the user to create")
argparser.add_argument("password_file_path",
help="Path to a file containing the user's password")
argparser.add_argument("temp_dir",
help="Directory to create temporary files in")
argparser.add_argument("output_path",
help="Path for finished installer")
argparser.add_argument("template_path",
help="Path of the NSIS script template file")
args = argparser.parse_args()

# Read password
with open(args.password_file_path, "r") as password_file:
password = password_file.read().rstrip("\n")
# Read password
with open(args.password_file_path, "r") as password_file:
password = password_file.read().rstrip("\n")

# Read NSIS script template
with open(args.template_path, "r") as template_file:
template_string = template_file.read()
# Read NSIS script template
with open(args.template_path, "r") as template_file:
template_string = template_file.read()

template = string.Template(template_string)
template = string.Template(template_string)

# Create NSIS script by replacing placeholders in the given template
substitutions = {
"__USERNAME__" : args.username,
"__PASSWORD__" : password,
"__OUTPUT_PATH__" : args.output_path,
}
nsis_script = template.safe_substitute(substitutions)
nsis_script_path = os.path.join(args.temp_dir, "script.nsis")
with open(nsis_script_path, "w") as nsis_script_file:
nsis_script_file.write(nsis_script)
# Create NSIS script by replacing placeholders in the given template
substitutions = {
"__USERNAME__" : args.username,
"__PASSWORD__" : password,
"__OUTPUT_PATH__" : args.output_path,
}
nsis_script = template.safe_substitute(substitutions)
nsis_script_path = os.path.join(args.temp_dir, "script.nsis")
with open(nsis_script_path, "w") as nsis_script_file:
nsis_script_file.write(nsis_script)

run = subprocess.run(["makensis", nsis_script_path])
sys,exit(run.returncode)
run = subprocess.run(["makensis", nsis_script_path])
sys.exit(run.returncode)

if __name__ == "__main__":
main()

0 comments on commit 850d022

Please sign in to comment.