summaryrefslogtreecommitdiff
path: root/spec/inputs/luarocks_upload.yue
diff options
context:
space:
mode:
Diffstat (limited to 'spec/inputs/luarocks_upload.yue')
-rw-r--r--spec/inputs/luarocks_upload.yue64
1 files changed, 60 insertions, 4 deletions
diff --git a/spec/inputs/luarocks_upload.yue b/spec/inputs/luarocks_upload.yue
index 30e8434..8409484 100644
--- a/spec/inputs/luarocks_upload.yue
+++ b/spec/inputs/luarocks_upload.yue
@@ -1,4 +1,5 @@
1luarocksKey = ... 1luarocksKey = ...
2
2local version 3local version
3with? io.open "src/yuescript/yue_compiler.cpp" 4with? io.open "src/yuescript/yue_compiler.cpp"
4 codes = \read "*a" 5 codes = \read "*a"
@@ -8,17 +9,52 @@ unless version?
8 print "failed to get version!" 9 print "failed to get version!"
9 os.exit 1 10 os.exit 1
10 11
12-- ==============================
13-- 1. Prepare minimal source tree
14-- ==============================
15
16local tmpBase = os.getenv("RUNNER_TEMP") or os.getenv("TMPDIR") or "/tmp"
17local pkgRoot = "#{tmpBase}/yuescript_pack_#{version}"
18local srcDir = "#{pkgRoot}/yuescript-#{version}"
19local tarFile = "#{pkgRoot}/yuescript-#{version}.tar.gz"
20
21run = (cmd) ->
22 print cmd
23 ok = os.execute cmd
24 unless ok == true or ok == 0
25 print "Command failed!"
26 os.exit 1
27
28-- clean & create
29run "rm -rf '#{pkgRoot}'"
30run "mkdir -p '#{srcDir}'"
31
32-- copy whitelist files
33run "cp CMakeLists.txt '#{srcDir}/'"
34run "cp README.md '#{srcDir}/'"
35run "cp LICENSE '#{srcDir}/'"
36run "cp -R src '#{srcDir}/'"
37
38-- create tar.gz
39run "tar -C '#{pkgRoot}' -czf '#{tarFile}' 'yuescript-#{version}'"
40
41local sourceUrl = "file://#{tarFile}"
42
43-- =========================
44-- 2. Generate rockspec
45-- =========================
46
11rockspec = "rockspec_format = '3.0' 47rockspec = "rockspec_format = '3.0'
12package = 'Yuescript' 48package = 'Yuescript'
13version = '#{version}-1' 49version = '#{version}-1'
14source = { 50source = {
15 url = 'git+https://github.com/pigpigyyy/yuescript' 51 url = '#{sourceUrl}'
16} 52}
17description = { 53description = {
18 summary = 'Yuescript is a Moonscript dialect.', 54 summary = 'Yuescript is a Moonscript dialect.',
19 detailed = [[ 55 detailed = [[
20 Yuescript is a Moonscript dialect. It is derived from Moonscript language 0.5.0 and continuously adopting new features to be more up to date. ]], 56 Yuescript is a Moonscript dialect. It is derived from Moonscript language 0.5.0 and continuously adopting new features to be more up to date. ]],
21 homepage = 'https://github.com/pigpigyyy/yuescript', 57 homepage = 'https://github.com/IppClub/YueScript',
22 maintainer = 'Li Jin <dragon-fly@qq.com>', 58 maintainer = 'Li Jin <dragon-fly@qq.com>',
23 labels = {'yuescript','cpp','transpiler','moonscript'}, 59 labels = {'yuescript','cpp','transpiler','moonscript'},
24 license = 'MIT' 60 license = 'MIT'
@@ -29,8 +65,8 @@ dependencies = {
29build = { 65build = {
30 type = 'cmake', 66 type = 'cmake',
31 variables = { 67 variables = {
32 LUA='$(LUA)', 68 LUA = '$(LUA)',
33 LUA_INCDIR='$(LUA_INCDIR)', 69 LUA_INCDIR = '$(LUA_INCDIR)',
34 CMAKE_BUILD_TYPE='Release' 70 CMAKE_BUILD_TYPE='Release'
35 }, 71 },
36 install = { 72 install = {
@@ -40,14 +76,34 @@ build = {
40 bin = { 76 bin = {
41 'build.luarocks/yue' 77 'build.luarocks/yue'
42 } 78 }
79 },
80 platforms = {
81 windows = {
82 install = {
83 lib = {
84 'build.luarocks/Release/yue.dll'
85 },
86 bin = {
87 'build.luarocks/Release/yue.exe'
88 }
89 }
90 }
43 } 91 }
44}" 92}"
45 93
46specFile = "yuescript-#{version}-1.rockspec" 94specFile = "yuescript-#{version}-1.rockspec"
95
47with? io.open specFile, "w+" 96with? io.open specFile, "w+"
48 \write rockspec 97 \write rockspec
49 \close! 98 \close!
50 99
100print "Using source: #{sourceUrl}"
101print "Uploading rockspec: #{specFile}"
102
103-- =========================
104-- 3. Upload
105-- =========================
106
51result = io.popen("luarocks upload --api-key #{luarocksKey} #{specFile}")\read '*a' 107result = io.popen("luarocks upload --api-key #{luarocksKey} #{specFile}")\read '*a'
52unless result\match "Done:" 108unless result\match "Done:"
53 print result 109 print result