-
Notifications
You must be signed in to change notification settings - Fork 0
/
build-bundle.sh
executable file
·144 lines (115 loc) · 4.72 KB
/
build-bundle.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#!/bin/bash
mkdir -p deps
cd deps
wget -nc http://files.squeak.org/trunk/Squeak6.1alpha-22446-64bit/Squeak6.1alpha-22446-64bit-All-in-One.zip
wget -nc https://downloads.tuxfamily.org/godotengine/3.5.1/Godot_v3.5.1-stable_x11.64.zip
wget -nc https://downloads.tuxfamily.org/godotengine/3.5.1/Godot_v3.5.1-stable_win64.exe.zip
cd ..
rm -rf build
mkdir build
cd build
unzip ../deps/Squeak6.1alpha-22446-64bit-All-in-One.zip
git clone [email protected]:hpi-swa-lab/pivr.git # --filter=blob:limit=1k
git clone [email protected]:hpi-swa-lab/pivr-tools.git
pushd pivr
git clone [email protected]:hpi-swa-lab/pivr-tools-assets.git
popd
mkdir godot
cd godot
unzip ../../deps/Godot_v3.5.1-stable_win64.exe.zip
unzip ../../deps/Godot_v3.5.1-stable_x11.64.zip
cd ..
cat << EOF
=*=*=*=*=*=*=*=*=*= COPY AND RUN THIS =*=*=*=*=*=*=*=*=*=
"general setup that would happen in the wizard"
Utilities setAuthorInitials: 'generated'.
MCConfiguration ensureOpenTranscript: false.
[MCMcmUpdater default doUpdate: false] ensure: [MCConfiguration ensureOpenTranscript: true].
Metacello new
repository: 'github://LeonMatthes/Autocompletion:master/packages';
baseline: 'Autocompletion';
get;
load.
"git browser, custom branch with external tools"
Installer ss
project: 'OSProcess';
install: 'OSProcess'.
Installer ss
project: 'CommandShell';
install: 'CommandShell'.
Installer installGitInfrastructure.
(Smalltalk at: #SquitBrowser) selfUpdateBranch: 'external-git-fetch-push'; selfUpdate.
(Smalltalk at: #GitFeatureFlags) externalFetchAndPush: true.
"grease"
Metacello new
baseline: 'ReactMidi';
repository: 'github://hpi-swa-lab/react-midi:main/packages';
load: #all.
"modifications to standard settings and adding shortcuts"
UIManager openToolsAttachedToMouseCursor: true.
Preferences setPreference: #mouseOverForKeyboardFocus toValue: true.
Workspace shouldStyle: true.
PasteUpMorph compile: 'tryInvokeKeyboardShortcut: aKeyboardEvent
aKeyboardEvent commandKeyPressed ifFalse: [^ self].
aKeyboardEvent keyCharacter caseOf: {
[\$R] -> [Utilities browseRecentSubmissions].
[\$L] -> [self findAFileList: aKeyboardEvent].
[\$O] -> [self findAMonticelloBrowser].
[\$P] -> [self findAPreferencesPanel: aKeyboardEvent].
"[\$Z] -> [ChangeList browseRecentLog]."
[\$Q] -> [Smalltalk snapshot: true andQuit: false].
} otherwise: [^ self "no hit"].
aKeyboardEvent ignore "hit!".'.
SystemWindow compile: 'filterEvent: aKeyboardEvent for: anObject
"Provide keyboard shortcuts."
aKeyboardEvent isKeystroke
ifFalse: [^ aKeyboardEvent].
aKeyboardEvent hand halo ifNotNil: [ : halo | halo target isSystemWindow ifTrue: [ aKeyboardEvent hand removeHalo ] ].
aKeyboardEvent commandKeyPressed ifTrue: [
aKeyboardEvent keyCharacter caseOf: {
[\$\] -> [self class sendTopWindowToBack].
[\$w] -> [self class deleteTopWindow].
[\$/] -> [self class bringWindowUnderHandToFront].
} otherwise: [^ aKeyboardEvent "no hit"].
^ aKeyboardEvent ignore "hit!"].
aKeyboardEvent controlKeyPressed ifTrue: [
aKeyboardEvent keyCharacter caseOf: {
[Character escape] -> [self world findWindow: aKeyboardEvent].
} otherwise: [^ aKeyboardEvent "no hit"].
^ aKeyboardEvent ignore "hit!"].
^ aKeyboardEvent "no hit"'.
SystemWindow compile: 'openAsTool
"Open this window as a tool, that is, honor the preferences such as #reuseWindows and #openToolsAttachedToMouseCursor."
| meOrSimilarWindow |
meOrSimilarWindow := self openInWorldExtent: self extent.
Project uiManager openToolsAttachedToMouseCursor ifTrue: [
meOrSimilarWindow setProperty: #initialDrop toValue: true.
meOrSimilarWindow hasDropShadow: false.
self currentHand attachMorph: meOrSimilarWindow].
^ meOrSimilarWindow'.
"cleanup windows and open default workspace"
(SystemWindow windowsIn: World) do: [:w | w delete].
Workspace open contents: '" 1. Run: "
GRReact findRepos.
" 2. if on mac, download Godot: https://godotengine.org/download/osx and extract to the pivr-bundle/godot folder "
" 3. let''s go! "
" run the (simulated) midi vr world "
GRReact autoStartApplications: ''AppControl,MidiWorld''.
HomeDworph start.
" start the MIDIExample without VR and assign some channels to the instruments "
" you can change the channel assignment at any time via do-it "
channels := Dictionary new.
m := MIDIExample start channelMapping: channels.
channels at: #renderBass: put: 1.
channels at: #renderArpeggio: put: 2.
channels at: #renderDrums: put: 10.
" stop the midi output. always do this before starting a new instance "
m stop.
'.
Smalltalk snapshot: true andQuit: true.
=*=*=*=*=*=*=*=*=*= COPY AND RUN THE ABOVE =*=*=*=*=*=*=*=*=*=
EOF
./squeak.sh
rm -r Squeak6.1alpha-22185-64bit-All-in-One.app/Contents/Resources/github-cache
rm -r Squeak6.1alpha-22185-64bit-All-in-One.app/Contents/Resources/package-cache
zip -r pivr-bundle.zip .