Skip to content

Instantly share code, notes, and snippets.

@jgfoster
Created August 17, 2018 23:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jgfoster/8286467d5208c66e11edefea76b3b34f to your computer and use it in GitHub Desktop.
Save jgfoster/8286467d5208c66e11edefea76b3b34f to your computer and use it in GitHub Desktop.
Load Seaside into an existing GemStone/S repository
#! /bin/bash
export upgradeDir=$GEMSTONE/upgrade
topaz -i -l -T 200000 << EOF
set sourcestringclass Unicode16
errorCount
iferr 1 stk
iferr 2 abort
iferr 3 logout
iferr 4 exit
## from prepareBootstrapGLASS.tpz
# EDIT database
set gems gs64stone
set user SystemUser pass swordfish
login
run
Stream installLegacyStreamImplementation.
Globals at: #'PositionableStream_position' put: #'Legacy'.
PositionableStream compilePositionMethods.
Globals at: #StringConfiguration put: Unicode16.
%
errorCount
commit
logout
## from bootstrapGLASS.tpz
set user DataCurator pass swordfish
login
run
| name |
name := #'Seaside'.
System myUserProfile symbolList createDictionaryNamed: name at: 1.
UserGlobals at: #BootstrapSymbolDictionaryName put: name.
System commit.
%
errorCount
run
GsPackagePolicy current enable.
System commit.
%
logout
login
input $upgradeDir/installMaster30.topaz
errorCount
commit
!
! At this point you have something equivalent to $GEMSTONE/bin/extent0.seaside.dbf
! and have Monticello available to load other things.
!
run
Gofer new
package: 'GsUpgrader-Core';
url: 'http://ss3.gemtalksystems.com/ss/gsUpgrader';
load.
(Smalltalk at: #GsUpgrader) upgradeGrease.
System commit.
%
run
(Smalltalk at: #GsUpgrader) batchErrorHandlingDo: [
GsDeployer bulkMigrate: [
Metacello new
baseline: 'Metacello';
repository: 'github://dalehenrich/metacello-work:master/repository';
lock; get.
Metacello new
baseline: 'FileTree';
repository: 'github://dalehenrich/filetree:gemstone2.4/repository';
lock; get.
Metacello new
baseline: 'PharoCompatibility';
repository: 'github://glassdb/PharoCompatibility:master/repository';
lock; get.
Metacello new
baseline: 'GLASS1';
repository: 'github://glassdb/glass:master/repository';
lock; get.
Metacello new
baseline: 'RB';
repository: 'github://dalehenrich/rb:dev/repository';
lock; get.
Metacello new
baseline: 'ZincHTTPComponents';
repository: 'github://GsDevKit/zinc:gs_master/repository';
lock; get.
Metacello new
baseline: 'Zodiac';
repository: 'github://GsDevKit/zodiac:gs_master/repository';
lock; get.
Metacello new
baseline: 'Ston';
repository: 'github://GsDevKit/ston:gemstone/repository';
lock; get.
(Metacello image configuration: [ :spec | spec name = 'Grease' ]; list)
do: [:greaseSpec | Metacello image configuration: 'Grease'; unregister].
Metacello new
baseline: 'Grease';
repository: 'github://GsDevKit/Grease:master/repository';
lock.
].
].
System commit.
%
run
(Smalltalk at: #GsUpgrader) batchErrorHandlingDo: [
GsUpgrader upgradeGLASS1.
].
System commit.
%
run
GsDeployer bulkMigrate: [
Metacello new
baseline: 'Seaside3';
repository: 'github://GsDevKit/Seaside31:gs_master/repository';
get;
load: #('Development' 'Examples' 'Zinc' 'Welcome').
].
System commit.
%
run
"Once that is done once, the following will start a Seaside server:"
(ZnSeasideNewGemServer register: 'seaside')
ports: #(8080);
startGems.
System commit.
%
logout
exit
EOF
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment