From 89e6251a55f024e58fcade36454567b41b73f637 Mon Sep 17 00:00:00 2001 From: moizpgedge Date: Wed, 30 Jul 2025 19:12:53 +0500 Subject: [PATCH 1/3] escape seq issue solved --- src/pgXX/init-pgXX.py | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/pgXX/init-pgXX.py b/src/pgXX/init-pgXX.py index 6111c7db..10737e80 100644 --- a/src/pgXX/init-pgXX.py +++ b/src/pgXX/init-pgXX.py @@ -62,7 +62,8 @@ def fatal_error(p_msg): if args.datadir == "": pg_data = os.path.join(data_root, pgver) else: - pg_data = args.datadir + + pg_data = args.datadir.replace(r'\ ', ' ') if not os.path.isdir(pg_data): os.makedirs(pg_data) @@ -195,12 +196,24 @@ def fatal_error(p_msg): util.update_postgresql_conf(pgver, i_port) -if util.get_platform() == "Linux": - os.system("cp " + pgver + "/genSelfCert.sh " + pg_data + "/.") - os.system(pg_data + "/genSelfCert.sh") +# ——— NEW: force Postgres to look in the right place for the certs ——— +conf_file = os.path.join(pg_data, "postgresql.conf") +ssl_block = """ +# — added by init script to enable SSL in data dir (quoting handles spaces) — +ssl = on +ssl_cert_file = '{0}/server.crt' +ssl_key_file = '{0}/server.key' +""".format(pg_data) -os.system("cp " + pgver + "/pg_hba.conf.nix " + pg_data + "/pg_hba.conf") +with open(conf_file, "a") as cf: + cf.write(ssl_block) + +# now generate your cert and copy pg_hba +if util.get_platform() == "Linux": + os.system(f'cp "{pgver}/genSelfCert.sh" "{pg_data}/."') + os.system(f'sh "{pg_data}/genSelfCert.sh"') +os.system(f'cp "{pgver}/pg_hba.conf.nix" "{pg_data}/pg_hba.conf"') if is_password: pg_pass_file = util.remember_pgpassword(pg_password, "*", "*", "*", os_user) else: From d906f1bee7ca4127b1bb294cc8d0c33108624488 Mon Sep 17 00:00:00 2001 From: Moiz Ibrar Date: Wed, 30 Jul 2025 19:49:14 +0500 Subject: [PATCH 2/3] Update init-pgXX.py --- src/pgXX/init-pgXX.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pgXX/init-pgXX.py b/src/pgXX/init-pgXX.py index 10737e80..8d6d25f5 100644 --- a/src/pgXX/init-pgXX.py +++ b/src/pgXX/init-pgXX.py @@ -62,7 +62,6 @@ def fatal_error(p_msg): if args.datadir == "": pg_data = os.path.join(data_root, pgver) else: - pg_data = args.datadir.replace(r'\ ', ' ') if not os.path.isdir(pg_data): From b581a59166c9fc8471c2fe225158b559d3dcb23c Mon Sep 17 00:00:00 2001 From: Matthew Mols Date: Tue, 5 Aug 2025 16:15:17 -0500 Subject: [PATCH 3/3] pass datadir as quoted --- cli/scripts/setup.py | 2 +- src/pgXX/init-pgXX.py | 27 ++++++++++----------------- 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/cli/scripts/setup.py b/cli/scripts/setup.py index 6e5452d8..d5a34632 100755 --- a/cli/scripts/setup.py +++ b/cli/scripts/setup.py @@ -104,7 +104,7 @@ def setup_pgedge(User=None, Passwd=None, dbName=None, port=None, pg_data=None, p util.exit_message( "pg_data cannot be set as relative path. Please specify absolute path instead" ) - pg_init_options = f"--datadir={pg_data}" + pg_init_options = f'--datadir="{pg_data}"' setup_core.check_pre_reqs( User, Passwd, dbName, port, pg_data, pg_major, pg_minor, spock_ver, autostart) diff --git a/src/pgXX/init-pgXX.py b/src/pgXX/init-pgXX.py index 8d6d25f5..9c983d40 100644 --- a/src/pgXX/init-pgXX.py +++ b/src/pgXX/init-pgXX.py @@ -5,6 +5,7 @@ import util, startup import argparse, os, sys, shutil, subprocess, getpass, json +import shlex MY_HOME = os.getenv("MY_HOME", "") @@ -62,7 +63,7 @@ def fatal_error(p_msg): if args.datadir == "": pg_data = os.path.join(data_root, pgver) else: - pg_data = args.datadir.replace(r'\ ', ' ') + pg_data = args.datadir if not os.path.isdir(pg_data): os.makedirs(pg_data) @@ -195,24 +196,16 @@ def fatal_error(p_msg): util.update_postgresql_conf(pgver, i_port) -# ——— NEW: force Postgres to look in the right place for the certs ——— -conf_file = os.path.join(pg_data, "postgresql.conf") -ssl_block = """ -# — added by init script to enable SSL in data dir (quoting handles spaces) — -ssl = on -ssl_cert_file = '{0}/server.crt' -ssl_key_file = '{0}/server.key' -""".format(pg_data) - -with open(conf_file, "a") as cf: - cf.write(ssl_block) - -# now generate your cert and copy pg_hba if util.get_platform() == "Linux": - os.system(f'cp "{pgver}/genSelfCert.sh" "{pg_data}/."') - os.system(f'sh "{pg_data}/genSelfCert.sh"') + gen_cert_src = os.path.join(pgver, "genSelfCert.sh") + gen_cert_dst = os.path.join(pg_data, "genSelfCert.sh") + os.system(f'cp {shlex.quote(gen_cert_src)} {shlex.quote(gen_cert_dst)}') + os.system(f'{shlex.quote(gen_cert_dst)}') + +pg_hba_src = os.path.join(pgver, "pg_hba.conf.nix") +pg_hba_dst = os.path.join(pg_data, "pg_hba.conf") +os.system(f'cp {shlex.quote(pg_hba_src)} {shlex.quote(pg_hba_dst)}') -os.system(f'cp "{pgver}/pg_hba.conf.nix" "{pg_data}/pg_hba.conf"') if is_password: pg_pass_file = util.remember_pgpassword(pg_password, "*", "*", "*", os_user) else: