@@ -47,17 +47,14 @@ def setup_rserver():
4747 def _get_env (port ):
4848 return dict (USER = getpass .getuser ())
4949
50- def db_config ():
50+ def db_config (db_dir ):
5151 '''
5252 Create a temporary directory to hold rserver's database, and create
5353 the configuration file rserver uses to find the database.
5454
5555 https://docs.rstudio.com/ide/server-pro/latest/database.html
5656 https://github.com/rstudio/rstudio/tree/v1.4.1103/src/cpp/server/db
5757 '''
58- # use mkdtemp() so the directory and its contents don't vanish when
59- # we're out of scope
60- db_dir = tempfile .mkdtemp ()
6158 # create the rserver database config
6259 db_conf = dedent ("""
6360 provider=sqlite
@@ -67,15 +64,20 @@ def db_config():
6764 db_config_name = f .name
6865 f .write (db_conf )
6966 f .close ()
70- return db_dir , db_config_name
67+ return db_config_name
7168
7269 def _support_arg (arg ):
7370 ret = subprocess .check_output ([get_rstudio_executable ('rserver' ), '--help' ])
7471 return ret .decode ().find (arg ) != - 1
7572
7673 def _get_cmd (port ):
7774 ntf = tempfile .NamedTemporaryFile ()
78- db_dir , db_cfg = db_config ()
75+
76+ # use mkdtemp() so the directory and its contents don't vanish when
77+ # we're out of scope
78+ server_data_dir = tempfile .mkdtemp ()
79+ database_config_file = db_config (server_data_dir )
80+
7981 cmd = [
8082 get_rstudio_executable ('rserver' ),
8183 '--auth-none=1' ,
@@ -90,9 +92,9 @@ def _get_cmd(port):
9092 if _support_arg ('www-root-path' ):
9193 cmd .append ('--www-root-path={base_url}rstudio/' )
9294 if _support_arg ('server-data-dir' ):
93- cmd .append (f'--server-data-dir={ db_dir } ' )
95+ cmd .append (f'--server-data-dir={ server_data_dir } ' )
9496 if _support_arg ('database-config-file' ):
95- cmd .append (f'--database-config-file={ db_cfg } ' )
97+ cmd .append (f'--database-config-file={ database_config_file } ' )
9698
9799 return cmd
98100
0 commit comments