63
63
# ## rsc config --full
64
64
# ## rsc log
65
65
# ##
66
- # ## Version: 0.15.0
66
+ # ## Version: 0.15.1
67
67
# ## Copyright: Henrik Bengtsson (2022-2024) and Harry Putnam (2022)
68
68
# ## License: ISC
69
69
@@ -248,8 +248,17 @@ function make_config_dir {
248
248
# -------------------------------------------------------------------------
249
249
# RStudio Server configuration file
250
250
# -------------------------------------------------------------------------
251
+ function rstudio_config_home {
252
+ local path
253
+ path=${RSTUDIO_CONFIG_HOME}
254
+ if [[ -z ${path} ]]; then
255
+ path=${XDG_CONFIG_HOME:- $HOME / .config} /rstudio
256
+ fi
257
+ echo " ${path} "
258
+ }
259
+
251
260
# Source: https://docs.rstudio.com/ide/server-pro/r_sessions/workspace_management.html#storage-location-customization
252
- function rstudio_config_dir {
261
+ function rstudio_data_home {
253
262
local path
254
263
path=${RSTUDIO_DATA_HOME}
255
264
if [[ -z ${path} ]]; then
@@ -296,12 +305,24 @@ function remove_stray_lockfile {
296
305
lockfile=${workdir} /pid.lock
297
306
298
307
mdebug " remove_stray_lockfile() ..."
308
+ mdebug " - file: ${lockfile} [$( file_info " ${lockfile} " ) ]"
299
309
300
310
# # Nothing to do?
301
- [[ ! -f " ${lockfile} " ]] || [[ -n " $( rserver_pid true) " ]] || [[ -n " $( rsession_pid true) " ]] || [[ -n " $( ssh_revtunnel_pid true) " ]] && { mdebug " remove_stray_lockfile() ... done" ; return 0; }
311
+ if [[ ! -f " ${lockfile} " ]]; then
312
+ mdebug " remove_stray_lockfile() ... done"
313
+ return 0
314
+ fi
315
+
316
+ # # Is 'rserver', 'rsession', or an SSH reverse tunnel running?
317
+ if [[ -n " $( rserver_pid true) " ]] || [[ -n " $( rsession_pid true) " ]] || [[ -n " $( ssh_revtunnel_pid true) " ]]; then
318
+ mdebug " - skipping: detected an 'rserver', 'rsession', or an SSH reverse tunnel process running"
319
+ mdebug " remove_stray_lockfile() ... done"
320
+ return 0
321
+ fi
302
322
303
323
# # Here we know that there's neither a rserver PID nor a rsession PID
304
324
rm " ${lockfile} "
325
+
305
326
warn " Detected a stray lock file (${lockfile} ). This file was removed, because there was no evidence that another instance was running on this system (no PID files for neither 'rserver' nor 'rsession' were found)."
306
327
307
328
mdebug " remove_stray_lockfile() ... done"
@@ -1562,6 +1583,7 @@ mdebug "args: [n=${#args[@]}] ${args[*]}"
1562
1583
# # Enable terminal colors, if supported
1563
1584
term_colors enable
1564
1585
1586
+
1565
1587
# # Remove any stray files
1566
1588
if ! ${force} ; then
1567
1589
mdebug " Removing stray files ..."
@@ -1593,41 +1615,42 @@ if [[ "${action}" == "config" ]]; then
1593
1615
1594
1616
echo
1595
1617
echo " RStudio Server Controller Storage:"
1596
- echo " XDG_CONFIG_HOME= ${XDG_CONFIG_HOME:- <not set>} "
1618
+ echo " XDG_CONFIG_HOME: ${XDG_CONFIG_HOME:- <not set>} "
1597
1619
1598
1620
workdir=$( config_dir)
1599
- echo " config-dir= ${workdir} "
1621
+ echo " config-dir: ${workdir} "
1600
1622
1601
- echo " lockfile=${workdir} /pid.lock"
1623
+ file=${workdir} /pid.lock
1624
+ echo " lockfile: ${file} [$( file_info " ${file} " ) ]"
1602
1625
1603
1626
file=${workdir} /rserver.conf
1604
- echo " config-file= ${file} "
1627
+ echo " config-file: ${file} [ $( file_info " ${file} " ) ] "
1605
1628
files+=(" ${file} " )
1606
1629
1607
1630
file=${workdir} /rsession.conf
1608
- echo " config-file= ${file} "
1631
+ echo " config-file: ${file} [ $( file_info " ${file} " ) ] "
1609
1632
files+=(" ${file} " )
1610
1633
1611
1634
file=${workdir} /rsession.sh
1612
- echo " rsession-sh-file= ${file} "
1635
+ echo " rsession-sh-file: ${file} [ $( file_info " ${file} " ) ] "
1613
1636
files+=(" ${file} " )
1614
1637
1615
1638
file=${workdir} /rserver.sh
1616
- echo " rserver-sh-file= ${file} "
1639
+ echo " rserver-sh-file: ${file} [ $( file_info " ${file} " ) ] "
1617
1640
files+=(" ${file} " )
1618
1641
1619
1642
file=${workdir} /rserver.hostname
1620
- echo " rserver-sh-file= ${file} "
1643
+ echo " rserver-sh-file: ${file} [ $( file_info " ${file} " ) ] "
1621
1644
files+=(" ${file} " )
1622
1645
1623
1646
file=${workdir} /rserver.port
1624
- echo " rserver-sh-file= ${file} "
1647
+ echo " rserver-sh-file: ${file} [ $( file_info " ${file} " ) ] "
1625
1648
files+=(" ${file} " )
1626
1649
1627
- echo " rserver-pid-file= $( rserver_pid_file) "
1628
- echo " rsession-pid-file= $( rsession_pid_file) "
1629
- echo " rsession-log-file= ${workdir} /rsession.log"
1630
- echo " rserver-monitor-pid-file= $( rserver_monitor_pid_file) "
1650
+ echo " rserver-pid-file: $( rserver_pid_file) [ $( file_info " ${file} " ) ] "
1651
+ echo " rsession-pid-file: $( rsession_pid_file) [ $( file_info " ${file} " ) ] "
1652
+ echo " rsession-log-file: ${workdir} /rsession.log [ $( file_info " ${file} " ) ] "
1653
+ echo " rserver-monitor-pid-file: $( rserver_monitor_pid_file) [ $( file_info " ${file} " ) ] "
1631
1654
1632
1655
if $full ; then
1633
1656
echo
@@ -1641,12 +1664,25 @@ if [[ "${action}" == "config" ]]; then
1641
1664
done
1642
1665
fi
1643
1666
1667
+ echo
1668
+ echo " RStudio User Configuration:"
1669
+ echo " XDG_CONFIG_HOME: ${XDG_CONFIG_HOME:- <not set>} "
1670
+ echo " RSTUDIO_CONFIG_HOME: ${RSTUDIO_CONFIG_HOME:- <not set>} "
1671
+ workdir=$( rstudio_config_home)
1672
+ echo " RStudio config home: ${workdir} "
1673
+ file=${workdir} /rstudio-prefs.json
1674
+ echo " RStudio user preferences: ${file} [$( file_info " ${file} " ) ]"
1675
+ if $full && [[ -f " ${file} " ]]; then
1676
+ cat " ${file} "
1677
+ echo
1678
+ fi
1679
+
1644
1680
echo
1645
1681
echo " RStudio User State Storage:"
1646
- echo " XDG_DATA_HOME= ${XDG_DATA_HOME:- <not set>} "
1647
- echo " RSTUDIO_DATA_HOME= ${RSTUDIO_DATA_HOME:- <not set>} "
1648
- workdir=$( rstudio_config_dir )
1649
- echo " RStudio config folder= ${workdir} "
1682
+ echo " XDG_DATA_HOME: ${XDG_DATA_HOME:- <not set>} "
1683
+ echo " RSTUDIO_DATA_HOME: ${RSTUDIO_DATA_HOME:- <not set>} "
1684
+ workdir=$( rstudio_data_home )
1685
+ echo " RStudio data home: ${workdir} "
1650
1686
if $full && [[ -d " ${workdir} " ]]; then
1651
1687
du --human-readable --si --summarize " ${workdir} " /*
1652
1688
if [[ -d " ${workdir} " /sessions/active/ ]]; then
@@ -1685,7 +1721,7 @@ elif [[ "${action}" == "status" ]]; then
1685
1721
workdir=$( config_dir)
1686
1722
lockfile=${workdir} /pid.lock
1687
1723
if [[ -f " ${lockfile} " ]]; then
1688
- echo " lock file: exists (${lockfile} )"
1724
+ echo " lock file: exists (${lockfile} [ $( file_info " ${lockfile} " ) ] )"
1689
1725
else
1690
1726
echo " lock file: does not exist"
1691
1727
fi
0 commit comments