2012-06-13 15:44 UTC+0200 Viktor Szakats (harbour syenar.net)

* contrib/hbrun/hbrun.prg
  * contrib/hbrun/plugins.prg
  * utils/hbmk2/hbmk2.prg
    * synced recent changes
    + changed extension filename to <home>/.harbour/hb_extension (hb_ext.ini in MS-DOS)
      envvar to HB_EXTENSION
    + plugins are now loaded from <home>/.harbour/*.hb, <home>/.harbour/*.hrb
This commit is contained in:
Viktor Szakats
2012-06-13 13:47:13 +00:00
parent 72076b0399
commit 231d40b08d
4 changed files with 97 additions and 63 deletions

View File

@@ -16,6 +16,15 @@
The license applies to all entries newer than 2009-04-28.
*/
2012-06-13 15:44 UTC+0200 Viktor Szakats (harbour syenar.net)
* contrib/hbrun/hbrun.prg
* contrib/hbrun/plugins.prg
* utils/hbmk2/hbmk2.prg
* synced recent changes
+ changed extension filename to <home>/.harbour/hb_extension (hb_ext.ini in MS-DOS)
envvar to HB_EXTENSION
+ plugins are now loaded from <home>/.harbour/*.hb, <home>/.harbour/*.hrb
2012-06-13 15:31 UTC+0200 Viktor Szakats (harbour syenar.net)
* contrib/hbrun/hbrun.prg
* utils/hbmk2/hbmk2.prg
@@ -50,9 +59,9 @@
to run it, type: 'hbmk2 .'
Missing is extension registration, plugins don't seem
to work yet, and I plan to switch from full screen
prompt to shell-like prompt. Plugin paths, extension
configuration, history on-disk files need further
polishing.
prompt to shell-like prompt.
; Plugin paths, extension configuration, history on-disk
files need further polishing. [DONE]
+ hbmk2 will act as a hbrun, if renamed to hbrun
* contrib/hbqt/qtcore/hbqt_misc.prg

View File

@@ -88,6 +88,13 @@ STATIC s_cProgName
/* ********************************************************************** */
#if defined( __PLATFORM__DOS )
# define _EXT_FILE_ "hb_ext.ini"
#else
# define _EXT_FILE_ "hb_extension"
#endif
#define _EXT_ENV_ "HB_EXTENSION"
PROCEDURE _APPMAIN( cFile, ... )
LOCAL cExt
LOCAL hHeaders
@@ -102,8 +109,8 @@ PROCEDURE _APPMAIN( cFile, ... )
aDynamic := {}
LoadExtDynamicFromFile( aDynamic, hb_DirBase() + "hbrun.ext" )
LoadExtDynamicFromString( aDynamic, GetEnv( "HBRUN_EXT" ) )
LoadExtDynamicFromFile( aDynamic, __hbrun_ConfigDir() + _EXT_FILE_ )
LoadExtDynamicFromString( aDynamic, GetEnv( _EXT_ENV_ ) )
/* TODO: Rework parameter handling */
IF PCount() > 0
@@ -223,6 +230,32 @@ EXIT PROCEDURE hbrun_exit()
RETURN
FUNCTION __hbrun_ConfigDir()
LOCAL cEnvVar
LOCAL cDir
#if defined( __PLATFORM__WINDOWS )
cEnvVar := "APPDATA"
#else
cEnvVar := "HOME"
#endif
IF ! Empty( GetEnv( cEnvVar ) )
#if defined( __PLATFORM__DOS )
cDir := GetEnv( cEnvVar ) + hb_ps() + "~harbour"
#else
cDir := GetEnv( cEnvVar ) + hb_ps() + ".harbour"
#endif
ELSE
cDir := hb_DirBase()
ENDIF
IF ! hb_DirExists( cDir )
hb_DirCreate( cDir )
ENDIF
RETURN cDir + hb_ps()
STATIC PROCEDURE LoadExtDynamicFromFile( aDynamic, cFileName )
LOCAL cItem
@@ -745,37 +778,15 @@ STATIC PROCEDURE hbrun_HistorySave()
RETURN
STATIC FUNCTION hbrun_HistoryFileName()
LOCAL cEnvVar
LOCAL cDir
LOCAL cFileName
#if defined( __PLATFORM__WINDOWS )
cEnvVar := "APPDATA"
#else
cEnvVar := "HOME"
#endif
#if defined( __PLATFORM__DOS )
cFileName := "hbhist.ini"
#else
cFileName := ".hb_history"
#endif
IF ! Empty( GetEnv( cEnvVar ) )
#if defined( __PLATFORM__DOS )
cDir := GetEnv( cEnvVar ) + hb_ps() + "~harbour"
#else
cDir := GetEnv( cEnvVar ) + hb_ps() + ".harbour"
#endif
ELSE
cDir := hb_DirBase()
ENDIF
IF ! hb_DirExists( cDir )
hb_DirCreate( cDir )
ENDIF
RETURN cDir + hb_ps() + cFileName
RETURN __hbrun_ConfigDir() + cFileName
FUNCTION __hbrun_FindInPath( cFileName, xPath )
LOCAL cDir

View File

@@ -57,16 +57,19 @@
FUNCTION __hbrun_plugins()
LOCAL hPlugins := { => }
LOCAL cDir
LOCAL cExt
LOCAL file
ADD PLUGIN TO hPlugins FILE "netiomgm.prg"
ADD PLUGIN TO hPlugins FILE "extdynpl.hb"
FOR EACH file IN Directory( hb_DirBase() + "*.hb" )
hPlugins[ hb_DirBase() + file[ F_NAME ] ] := MemoRead( hb_DirBase() + file[ F_NAME ] )
NEXT
FOR EACH file IN Directory( hb_DirBase() + "*.hrb" )
hPlugins[ hb_DirBase() + file[ F_NAME ] ] := MemoRead( hb_DirBase() + file[ F_NAME ] )
cDir := __hbrun_ConfigDir()
FOR EACH cExt IN { "*.hb", "*.hrb" }
FOR EACH file IN Directory( cDir + cExt )
hPlugins[ cDir + file[ F_NAME ] ] := MemoRead( cDir + file[ F_NAME ] )
NEXT
NEXT
RETURN hPlugins

View File

@@ -12155,8 +12155,12 @@ STATIC FUNCTION hbmk_CoreHeaderFiles()
/* Emulate a minimal hbrun */
#define _EXT_FILE_ "hbmk.ext"
#define _EXT_ENV_ "HBMK_EXT"
#if defined( __PLATFORM__DOS )
# define _EXT_FILE_ "hb_ext.ini"
#else
# define _EXT_FILE_ "hb_extension"
#endif
#define _EXT_ENV_ "HB_EXTENSION"
STATIC PROCEDURE __hbrun_minimal( cFile, ... )
LOCAL aDynamic := {}
@@ -12244,7 +12248,7 @@ STATIC PROCEDURE __hbrun_minimal( cFile, ... )
EXIT
ENDIF
CASE ".hrb"
__hbrun_LoadExtDynamicFromFile( aDynamic, hb_DirBase() + _EXT_FILE_ )
__hbrun_LoadExtDynamicFromFile( aDynamic, __hbrun_ConfigDir() + _EXT_FILE_ )
__hbrun_LoadExtDynamicFromString( aDynamic, GetEnv( _EXT_ENV_ ) )
__hbrun_extensions_dynamic_init( aDynamic )
s_cDirBase_hbrun := hb_DirBase()
@@ -12253,14 +12257,14 @@ STATIC PROCEDURE __hbrun_minimal( cFile, ... )
hb_hrbRun( cFile, ... )
EXIT
CASE ".dbf"
__hbrun_LoadExtDynamicFromFile( aDynamic, hb_DirBase() + _EXT_FILE_ )
__hbrun_LoadExtDynamicFromFile( aDynamic, __hbrun_ConfigDir() + _EXT_FILE_ )
__hbrun_LoadExtDynamicFromString( aDynamic, GetEnv( _EXT_ENV_ ) )
__hbrun_extensions_dynamic_init( aDynamic )
__hbrun_shell( hb_AParams(), "USE " + cFile + " SHARED" )
EXIT
ENDSWITCH
ELSE
__hbrun_LoadExtDynamicFromFile( aDynamic, hb_DirBase() + _EXT_FILE_ )
__hbrun_LoadExtDynamicFromFile( aDynamic, __hbrun_ConfigDir() + _EXT_FILE_ )
__hbrun_LoadExtDynamicFromString( aDynamic, GetEnv( _EXT_ENV_ ) )
__hbrun_extensions_dynamic_init( aDynamic )
__hbrun_shell( hb_AParams() )
@@ -12286,6 +12290,32 @@ STATIC FUNCTION __hbrun_FileSig( cFile )
RETURN cExt
STATIC FUNCTION __hbrun_ConfigDir()
LOCAL cEnvVar
LOCAL cDir
#if defined( __PLATFORM__WINDOWS )
cEnvVar := "APPDATA"
#else
cEnvVar := "HOME"
#endif
IF ! Empty( GetEnv( cEnvVar ) )
#if defined( __PLATFORM__DOS )
cDir := GetEnv( cEnvVar ) + hb_ps() + "~harbour"
#else
cDir := GetEnv( cEnvVar ) + hb_ps() + ".harbour"
#endif
ELSE
cDir := hb_DirBase()
ENDIF
IF ! hb_DirExists( cDir )
hb_DirCreate( cDir )
ENDIF
RETURN cDir + hb_ps()
STATIC PROCEDURE __hbrun_LoadExtDynamicFromFile( aDynamic, cFileName )
LOCAL cItem
@@ -12397,14 +12427,17 @@ STATIC FUNCTION __hbrun_extensions_get_list()
FUNCTION __hbrun_plugins()
LOCAL hPlugins := { => }
LOCAL cDir
LOCAL cExt
LOCAL file
ADD PLUGIN TO hPlugins FILE "p_extdyn.hb"
cDir := __hbrun_ConfigDir()
FOR EACH cExt IN { "*.hb", "*.hrb" }
FOR EACH file IN Directory( hb_DirBase() + cExt )
hPlugins[ hb_DirBase() + file[ F_NAME ] ] := MemoRead( hb_DirBase() + file[ F_NAME ] ) /* TODO: decide where to load plugins from */
FOR EACH file IN Directory( cDir + cExt )
hPlugins[ cDir + file[ F_NAME ] ] := MemoRead( cDir + file[ F_NAME ] )
NEXT
NEXT
@@ -12836,37 +12869,15 @@ STATIC PROCEDURE __hbrun_HistorySave()
RETURN
STATIC FUNCTION __hbrun_HistoryFileName()
LOCAL cEnvVar
LOCAL cDir
LOCAL cFileName
#if defined( __PLATFORM__WINDOWS )
cEnvVar := "APPDATA"
#else
cEnvVar := "HOME"
#endif
#if defined( __PLATFORM__DOS )
cFileName := "hbhist.ini"
#else
cFileName := ".hb_history"
#endif
IF ! Empty( GetEnv( cEnvVar ) )
#if defined( __PLATFORM__DOS )
cDir := GetEnv( cEnvVar ) + hb_ps() + "~harbour"
#else
cDir := GetEnv( cEnvVar ) + hb_ps() + ".harbour"
#endif
ELSE
cDir := hb_DirBase()
ENDIF
IF ! hb_DirExists( cDir )
hb_DirCreate( cDir )
ENDIF
RETURN cDir + hb_ps() + cFileName
RETURN __hbrun_ConfigDir() + cFileName
#if defined( __PLATFORM__WINDOWS )