summary refs log tree commit diff stats
path: root/tests/destructor/tgotoexceptions.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/destructor/tgotoexceptions.nim')
0 files changed, 0 insertions, 0 deletions
m?h=devel&id=4f09794be9fb9b96728078712f01e990e0021929'>^
e80465dac ^
75b508032 ^



c6034277f ^
72dfe176f ^
75b508032 ^


c6034277f ^
75b508032 ^


c6034277f ^
75b508032 ^






c6034277f ^
75b508032 ^

fb677bf5c ^





75b508032 ^


c6034277f ^
75b508032 ^


c6034277f ^
75b508032 ^











c6034277f ^
75b508032 ^




e80465dac ^
75b508032 ^

e7f280bd2 ^
75b508032 ^











b097081f1 ^
695154970 ^
75b508032 ^




214f48eae ^
75b508032 ^
3866820ee ^
dc5a40f3f ^
75b508032 ^

87f548c5f ^
75b508032 ^


3866820ee ^
75b508032 ^







214f48eae ^
75b508032 ^
e80465dac ^
75b508032 ^












e80465dac ^
75b508032 ^

87f548c5f ^
75b508032 ^




214f48eae ^
75b508032 ^


e80465dac ^
75b508032 ^
e7f280bd2 ^
75b508032 ^











3cedf3e88 ^
0d4e52c64 ^
75b508032 ^




e80465dac ^
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
145
146
147
148
149
150
151
152
153
154
155
156
157
           
                                                        



           
     



                                                                    
                                                                                                                          
                               


                                                               
                                                                                                 


                                       
                                                             






                                                            
                                                                               

                     





                                                                  


                                           
                                                                  


                                                          
                                                                               











                                                        
                                                            




                            
                                                             

                                                        
                                     











                                                                                           
                                  
                                  




                                        
                            
                 
                                       
                      

                                                                
                                    


                     
                                                                 







                                        
                                         
                            
 












                                                                                     
 

                                                                                               
                                  




                                 
                                    


                                              
       
                    
                                                       











                                                                      
                   
                                                              




                                                  
                       
import nake
import httpclient, zip/zipfiles, times, random, sequtils
nakeImports

randomize()

const
  GameAssets = "http://dl.dropbox.com/u/37533467/data-08-01-2012.7z"
  BinLibs = "http://dl.dropbox.com/u/37533467/libs-2012-09-12.zip"
  ExeName = "keineschweine"
  ServerDefines = "-d:NoSFML -d:NoChipmunk"
  TestBuildDefines = "-d:escapeMenuTest -d:debugWeps -d:showFPS -d:moreNim -d:debugKeys -d:foo -d:recordMode --forceBuild"
  ReleaseDefines = "-d:release"
  ReleaseTestDefines = "-d:debugWeps -d:debugKeys --forceBuild"

task "testprofile", "..":
  if shell("nim", TestBuildDefines, "--profiler:on", "--stacktrace:on", "compile", ExeName) == 0:
    shell "."/ExeName, "offline"

task "test", "Build with test defines":
  if shell("nim", TestBuildDefines, "compile", ExeName) != 0:
    quit "The build failed."

task "testrun", "Build with test defines and run":
  runTask "test"
  shell "."/ExeName

task "test2", "Build release test build test release build":
  if shell("nim", ReleaseDefines, ReleaseTestDefines, "compile", ExeName) == 0:
    shell "."/ExeName

when false:
  task "dirserver", "build the directory server":
    withDir "server":
      if shell("nim", ServerDefines, "compile", "dirserver") != 0:
        echo "Failed to build the dirserver"
        quit 1

task "zoneserver", "build the zone server":
  withDir "enet_server":
    if shell("nim", ServerDefines, "compile", "enet_server") != 0:
      quit "Failed to build the zoneserver"
task "zoneserver-gui", "build the zone server, with gui!":
  withDir "enet_server":
    if shell("nim", ServerDefines, "--app:gui", "compile", "enet_server") != 0:
      quit "Failed to build the zoneserver"

task "servers", "build the server and directory server":
  #runTask "dirserver"
  runTask "zoneserver"
  echo "Successfully built both servers :')"

task "all", "run SERVERS and TEST tasks":
  runTask "servers"
  runTask "test"

task "release", "release build":
  let res = shell("nim", ReleaseDefines, "compile", ExeName)
  if res != 0:
    echo "The build failed."
    quit 1
  else:
    runTask "clean"
    ## zip up all the files and such or something useful here

task "testskel", "create skeleton test dir for testing":
  let dirname = "test-" & $rand(5000)
  removeDir dirName
  createDir dirName/"data/fnt"
  copyFile "data/fnt/LiberationMono-Regular", dirName/"data/fnt/LiberationMono-Regular.ttf"
  copyFile "client_settings.json", dirName/"client_settings.json"
  runTask "test"
  copyFile ExeName, dirName/ExeName
  withDir dirName:
    shell "."/ExeName


task "clean", "cleanup generated files":
  var dirs = @["nimcache", "server"/"nimcache"]
  dirs.apply(proc(x: var string) =
    if dirExists(x): removeDir(x))

task "download", "download game assets":
  var
    skipAssets = false
    path = expandFilename("data")
    client = newHttpClient()
  path.add DirSep
  path.add(extractFilename(GameAssets))
  if fileExists(path):
    echo "The file already exists\n",
      "[R]emove  [M]ove  [Q]uit  [S]kip    Source: ", GameAssets
    case stdin.readLine.toLowerAscii
    of "r":
      removeFile path
    of "m":
      moveFile path, path/../(extractFilename(GameAssets)&"-old")
    of "s":
      skipAssets = true
    else:
      quit 0
  else:
    echo "Downloading from ", GameAssets
  if not skipAssets:
    echo "Downloading to ", path
    client.downloadFile(GameAssets, path)
    echo "Download finished"

    let targetDir = parentDir(parentDir(path))
    when defined(linux):
      let z7 = findExe("7z")
      if z7 == "":
        echo "Could not find 7z"
      elif shell(z7, "t", path) != 0: ##note to self: make sure this is right
        echo "Bad download"
      else:
        echo "Unpacking..."
        shell(z7, "x", "-w[$1]" % targetDir, path)
    else:
      echo "I do not know how to unpack the data on this system. Perhaps you could ",
        "fill this part in?"

  echo "Download binary libs? Only libs for linux are available currently, enjoy the irony.\n",
    "[Y]es [N]o   Source: ", BinLibs
  case stdin.readline.toLowerAscii
  of "y", "yes":
    discard ## o_O
  else:
    return
  path = extractFilename(BinLibs)
  client.downloadFile(BinLibs, path)
  echo "Downloaded dem libs ", path
  when true: echo "Unpack it yourself, sorry."
  else:  ## this crashes, dunno why
    var
      z: TZipArchive
      destDir = getCurrentDir()/("unzip" & $rand(5000))
    if not z.open(path, fmRead):
      echo "Could not open zip, bad download?"
      return
    echo "Extracting to ", destDir
    createDir destDir
    #z.extractAll destDir
    for f in z.walkFiles():
      z.extractFile(f, destDir/f)
    z.close()
    echo "Extracted the libs dir. Copy the ones you need to this dir."

task "zip-lib", "zip up the libs dir":
  var z: ZipArchive
  if not z.open("libs-" & getDateStr() & ".zip", fmReadWrite):
    quit "Could not open zip"
  for file in walkDirRec("libs", {pcFile, pcDir}):
    echo "adding file ", file
    z.addFile(file)
  z.close()
  echo "Great success!"