Thank you for this Esteban. I dreamed about a magic button in MC :) cheers, Hernán 2015-08-31 6:10 GMT-03:00 Esteban Lorenzano <estebanlm@gmail.com>:
This does not have anything to do with Pharo so no matter the version :)
I keep in sync the VMMaker repositories using a jenkins job with this script (from squeaksource to github):
#! /bin/bash
set -e
eval `ssh-agent` ssh-add $HOME/.ssh/id_rsa_estebanlm
PACKAGES="'VMMaker.oscog'" REPOSITORY=cog
# Clone git clone -b spur64 git@github.com:estebanlm/pharo-vm.git $REPOSITORY cd $REPOSITORY git config --local user.email "estebanlm@gmail.com" git config --local user.name "Esteban Lorenzano" cd -
# Get Pharo (and prepare it) wget -O- get.pharo.org/50+vm | bash ./pharo Pharo.image get OSProcess
# Execute sync script ./pharo Pharo.image eval " | origin destination |
origin := (MCHttpRepository location: 'http://source.squeak.org/VMMaker') instVarNamed: 'cacheFileNames' put: true; yourself. destination := MCFileTreeRepository new directory: '$REPOSITORY/mc' asFileReference ensureCreateDirectory; instVarNamed: 'cacheFileNames' put: true; yourself.
#($PACKAGES) do: [ :eachPackageName | | infoOrigin infoDest versionNumber newer |
VTermOutputDriver stdout black: 'Updating ', eachPackageName; lf.
infoOrigin := origin versionInfoFromVersionNamed: eachPackageName. infoDest := destination versionInfoFromVersionNamed: eachPackageName. versionNumber := infoDest versionNumber.
newer := (({infoOrigin}, (infoOrigin allAncestors)) select: [ :each | each versionNumber > versionNumber or: [ each versionNumber = versionNumber and: [ each id ~= infoDest id ] ] ]) sorted: [ :a :b | a timeStamp < b timeStamp ].
newer do: [ :each | | summary | [ VTermOutputDriver stdout green: ('New version: ', each name); lf.
VTermOutputDriver stdout << 'Store ' << each name << ' in ' << destination description; cr. destination storeVersion: (origin versionFromFileNamed: (each name, '.mcz')).
VTermOutputDriver stdout << 'Commit ' << each name; cr. summary := each summary copyReplaceTokens: String cr with: String crlf. OSProcess waitForCommand: '(cd $REPOSITORY; git add -A ; git commit -m \"', summary, '\")' ] on: Error do: [ :e | VTermOutputDriver stdout yellow: ('Warning: ', e messageText); lf ] ] ].
VTermOutputDriver stdout << 'OK'; cr. "
cd $REPOSITORY git push --force origin spur64 git branch --verbose cd -
git stuff is to add my credentials, thatâs because I use one of our structure servers. One of your own shouldnât need that part.
basically, script does:
1) clone mirrored repo 2) run a script comparing PACKAGES and versions, generate a new export+commit for each new version. 3) does a push with all new commits
cheers, Esteban
On 30 Aug 2015, at 21:23, Hernán Morales Durand < hernan.morales@gmail.com> wrote:
Is it possible right now in Pharo 4 or 5 on any platform?
Cheers,
Hernán