Skip to content

Commit def00e6

Browse files
committed
Initial commit
0 parents  commit def00e6

File tree

10 files changed

+370
-0
lines changed

10 files changed

+370
-0
lines changed

.github/workflows/main.yml

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# This is a basic workflow to help you get started with Actions
2+
3+
name: Download Compiler
4+
5+
# Controls when the workflow will run
6+
on:
7+
# Triggers the workflow on push or pull request events but only for the master branch
8+
push:
9+
branches: [ master ]
10+
pull_request:
11+
branches: [ master ]
12+
13+
# Allows you to run this workflow manually from the Actions tab
14+
workflow_dispatch:
15+
16+
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
17+
jobs:
18+
# This workflow contains a single job called "build"
19+
build:
20+
# The type of runner that the job will run on
21+
runs-on: ubuntu-latest
22+
23+
# Steps represent a sequence of tasks that will be executed as part of the job
24+
steps:
25+
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
26+
- uses: actions/checkout@v3
27+
28+
- name: Install Node.js
29+
uses: actions/setup-node@v2
30+
with:
31+
node-version: 14.x
32+
33+
- name: Download Compiler
34+
run: npm run dl

.gitignore

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
scryptc
2+
out
3+
node_modules
4+
5+
**/.DS_Store

README.md

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# compiler_dist
2+
distribute compiler binaries for various operating systems

checkdl.js

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
const { spawn, spawnSync } = require('child_process');
2+
const { join } = require('path');
3+
const { platform } = require('os');
4+
const { exit } = require('process');
5+
6+
let FILENAME = "./scryptc/win32/scryptc.exe"
7+
8+
if (platform() === 'linux') {
9+
FILENAME = "./scryptc/linux/scryptc"
10+
} else if (platform() === 'darwin') {
11+
FILENAME = "./scryptc/mac/scryptc"
12+
}
13+
14+
const output = spawnSync(join(__dirname, FILENAME), ['version']).stdout.toString();
15+
16+
const content = require("fs").readFileSync("./tag.json");
17+
18+
const version = JSON.parse(content).tag_name.toString().substr(1);
19+
20+
console.log('version', version, 'output', output)
21+
22+
23+
if(version.indexOf("beta") > -1) {
24+
console.warn('beta version skip check')
25+
exit(0)
26+
}
27+
if(output.indexOf(version) < 0){
28+
console.error('version check fail')
29+
exit(-1)
30+
}
31+

downloadcompiler.sh

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
COMPILER_VERSION=1.19.1
2+
GITHUB_OWNER=sCrypt-Inc
3+
GITHUB_REPO=compiler_dist
4+
GITHUB_TAG="v$COMPILER_VERSION"
5+
GITHUB_ASSET_FILENAME_WINDOWS="./scryptc/win32/scryptc.exe"
6+
GITHUB_ASSET_FILENAME_LINUX="./scryptc/linux/scryptc"
7+
GITHUB_ASSET_FILENAME_LINUX_ARM="./scryptc/linux-aarch64/scryptc"
8+
GITHUB_ASSET_FILENAME_MACOS="./scryptc/mac/scryptc"
9+
echo "$GITHUB_OWNER"
10+
echo "$GITHUB_REPO"
11+
echo "$GITHUB_TAG"
12+
13+
rm -rf "./scryptc"
14+
15+
mkdir -p "./scryptc/win32/"
16+
mkdir -p "./scryptc/linux/"
17+
mkdir -p "./scryptc/linux-aarch64/"
18+
mkdir -p "./scryptc/mac/"
19+
20+
#we just update tag.json locally when you change COMPILER_VERSION, because github api has daily limit.
21+
#curl -sSL -J "https://api.github.com/repos/${GITHUB_OWNER}/${GITHUB_REPO}/releases/tags/${GITHUB_TAG}" > tag.json
22+
23+
GITHUB_LINUX_ASSET_URL=$(node parser.js Linux-x86_64)
24+
GITHUB_LINUX_ARM_ASSET_URL=$(node parser.js Linux-aarch64)
25+
GITHUB_MACOS_ASSET_URL=$(node parser.js macOS-x86_64)
26+
GITHUB_WINDOWS_ASSET_URL=$(node parser.js Windows-AMD64)
27+
28+
29+
echo "$GITHUB_MACOS_ASSET_URL"
30+
echo "$GITHUB_WINDOWS_ASSET_URL"
31+
echo "$GITHUB_LINUX_ASSET_URL"
32+
echo "$GITHUB_LINUX_ARM_ASSET_URL"
33+
34+
if [ $GITHUB_MACOS_ASSET_URL != "no_assets" ]; then
35+
curl -L -J ${GITHUB_MACOS_ASSET_URL} -o ${GITHUB_ASSET_FILENAME_MACOS} -H 'Accept: application/octet-stream'
36+
chmod u+x "$GITHUB_ASSET_FILENAME_MACOS"
37+
fi
38+
39+
if [ $GITHUB_LINUX_ASSET_URL != "no_assets" ]; then
40+
curl -L -J ${GITHUB_LINUX_ASSET_URL} -o ${GITHUB_ASSET_FILENAME_LINUX} -H 'Accept: application/octet-stream'
41+
chmod u+x "$GITHUB_ASSET_FILENAME_LINUX"
42+
fi
43+
44+
if [ $GITHUB_LINUX_ARM_ASSET_URL != "no_assets" ]; then
45+
curl -L -J ${GITHUB_LINUX_ARM_ASSET_URL} -o ${GITHUB_ASSET_FILENAME_LINUX_ARM} -H 'Accept: application/octet-stream'
46+
chmod u+x "$GITHUB_ASSET_FILENAME_LINUX_ARM"
47+
fi
48+
49+
if [ $GITHUB_WINDOWS_ASSET_URL != "no_assets" ]; then
50+
curl -L -J ${GITHUB_WINDOWS_ASSET_URL} -o ${GITHUB_ASSET_FILENAME_WINDOWS} -H 'Accept: application/octet-stream'
51+
fi

package.json

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"name": "compiler",
3+
"version": "0.0.10",
4+
"description": "sCryptc compiler wrapper",
5+
"main": "index.js",
6+
"scripts": {
7+
"test": "echo \"Error: no test specified\" && exit 1",
8+
"dl": "sh ./downloadcompiler.sh",
9+
"postdl": "node checkdl.js"
10+
},
11+
"author": "",
12+
"license": "ISC",
13+
"hash": {
14+
"win32": "d486f586e31e4623473effec41dde430036b34cf254f564ba938451d23781c65",
15+
"linux": "1ce35d405657a76eaa4a0e9fff0d0e4ea2b9c231e9cf846f25f55aa7b65c68a8",
16+
"mac": "589bfb5de3ee22c5df453743e83ace8e4ecd24a00d2d87d316af855e3247058e"
17+
}
18+
}

parser.js

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
2+
3+
4+
const content = require("fs").readFileSync("./tag.json");
5+
6+
const tagInfo = JSON.parse(content);
7+
8+
if(!Array.isArray(tagInfo["assets"])) {
9+
console.log("no_assets")
10+
process.exit(0);
11+
}
12+
13+
getAssetId(process.argv[2]);
14+
15+
16+
function getAssetId(p) {
17+
for(let i=0; i< tagInfo["assets"].length; i++ ) {
18+
if(tagInfo["assets"][i].name.indexOf(p) > -1) {
19+
console.log(tagInfo["assets"][i].browser_download_url);
20+
process.exit(0);
21+
return;
22+
}
23+
}
24+
25+
console.log("no_assets");
26+
}

src/index.ts

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
export const SCRYPTC_VERSION = "0.0.10";
2+
export const DEFAULT_COMPILE_OPTS = Object.freeze({
3+
ast: false,
4+
debug: false,
5+
asm: true,
6+
cmdArgs: '--std'
7+
});

tag.json

+176
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
{
2+
"url": "https://api.github.com/repos/sCrypt-Inc/compiler_dist/releases/125140960",
3+
"assets_url": "https://api.github.com/repos/sCrypt-Inc/compiler_dist/releases/125140960/assets",
4+
"upload_url": "https://uploads.github.com/repos/sCrypt-Inc/compiler_dist/releases/125140960/assets{?name,label}",
5+
"html_url": "https://github.com/sCrypt-Inc/compiler_dist/releases/tag/v1.19.1",
6+
"id": 125140960,
7+
"author": {
8+
"login": "scrypt-sv",
9+
"id": 52027588,
10+
"node_id": "MDQ6VXNlcjUyMDI3NTg4",
11+
"avatar_url": "https://avatars.githubusercontent.com/u/52027588?v=4",
12+
"gravatar_id": "",
13+
"url": "https://api.github.com/users/scrypt-sv",
14+
"html_url": "https://github.com/scrypt-sv",
15+
"followers_url": "https://api.github.com/users/scrypt-sv/followers",
16+
"following_url": "https://api.github.com/users/scrypt-sv/following{/other_user}",
17+
"gists_url": "https://api.github.com/users/scrypt-sv/gists{/gist_id}",
18+
"starred_url": "https://api.github.com/users/scrypt-sv/starred{/owner}{/repo}",
19+
"subscriptions_url": "https://api.github.com/users/scrypt-sv/subscriptions",
20+
"organizations_url": "https://api.github.com/users/scrypt-sv/orgs",
21+
"repos_url": "https://api.github.com/users/scrypt-sv/repos",
22+
"events_url": "https://api.github.com/users/scrypt-sv/events{/privacy}",
23+
"received_events_url": "https://api.github.com/users/scrypt-sv/received_events",
24+
"type": "User",
25+
"site_admin": false
26+
},
27+
"node_id": "RE_kwDOEskUbM4HdX_g",
28+
"tag_name": "v1.19.1",
29+
"target_commitish": "master",
30+
"name": "refs/tags/v1.19.1",
31+
"draft": false,
32+
"prerelease": false,
33+
"created_at": "2022-11-01T09:44:49Z",
34+
"published_at": "2023-10-15T20:44:20Z",
35+
"assets": [
36+
{
37+
"url": "https://api.github.com/repos/sCrypt-Inc/compiler_dist/releases/assets/130747220",
38+
"id": 130747220,
39+
"node_id": "RA_kwDOEskUbM4HywtU",
40+
"name": "scrypt-1.19.1-Linux-aarch64",
41+
"label": "",
42+
"uploader": {
43+
"login": "scrypt-sv",
44+
"id": 52027588,
45+
"node_id": "MDQ6VXNlcjUyMDI3NTg4",
46+
"avatar_url": "https://avatars.githubusercontent.com/u/52027588?v=4",
47+
"gravatar_id": "",
48+
"url": "https://api.github.com/users/scrypt-sv",
49+
"html_url": "https://github.com/scrypt-sv",
50+
"followers_url": "https://api.github.com/users/scrypt-sv/followers",
51+
"following_url": "https://api.github.com/users/scrypt-sv/following{/other_user}",
52+
"gists_url": "https://api.github.com/users/scrypt-sv/gists{/gist_id}",
53+
"starred_url": "https://api.github.com/users/scrypt-sv/starred{/owner}{/repo}",
54+
"subscriptions_url": "https://api.github.com/users/scrypt-sv/subscriptions",
55+
"organizations_url": "https://api.github.com/users/scrypt-sv/orgs",
56+
"repos_url": "https://api.github.com/users/scrypt-sv/repos",
57+
"events_url": "https://api.github.com/users/scrypt-sv/events{/privacy}",
58+
"received_events_url": "https://api.github.com/users/scrypt-sv/received_events",
59+
"type": "User",
60+
"site_admin": false
61+
},
62+
"content_type": "binary/octet-stream",
63+
"state": "uploaded",
64+
"size": 17801560,
65+
"download_count": 1,
66+
"created_at": "2023-10-15T20:59:11Z",
67+
"updated_at": "2023-10-15T20:59:13Z",
68+
"browser_download_url": "https://github.com/sCrypt-Inc/compiler_dist/releases/download/v1.19.1/scrypt-1.19.1-Linux-aarch64"
69+
},
70+
{
71+
"url": "https://api.github.com/repos/sCrypt-Inc/compiler_dist/releases/assets/130745812",
72+
"id": 130745812,
73+
"node_id": "RA_kwDOEskUbM4HywXU",
74+
"name": "scrypt-1.19.1-Linux-x86_64",
75+
"label": "",
76+
"uploader": {
77+
"login": "scrypt-sv",
78+
"id": 52027588,
79+
"node_id": "MDQ6VXNlcjUyMDI3NTg4",
80+
"avatar_url": "https://avatars.githubusercontent.com/u/52027588?v=4",
81+
"gravatar_id": "",
82+
"url": "https://api.github.com/users/scrypt-sv",
83+
"html_url": "https://github.com/scrypt-sv",
84+
"followers_url": "https://api.github.com/users/scrypt-sv/followers",
85+
"following_url": "https://api.github.com/users/scrypt-sv/following{/other_user}",
86+
"gists_url": "https://api.github.com/users/scrypt-sv/gists{/gist_id}",
87+
"starred_url": "https://api.github.com/users/scrypt-sv/starred{/owner}{/repo}",
88+
"subscriptions_url": "https://api.github.com/users/scrypt-sv/subscriptions",
89+
"organizations_url": "https://api.github.com/users/scrypt-sv/orgs",
90+
"repos_url": "https://api.github.com/users/scrypt-sv/repos",
91+
"events_url": "https://api.github.com/users/scrypt-sv/events{/privacy}",
92+
"received_events_url": "https://api.github.com/users/scrypt-sv/received_events",
93+
"type": "User",
94+
"site_admin": false
95+
},
96+
"content_type": "binary/octet-stream",
97+
"state": "uploaded",
98+
"size": 13048224,
99+
"download_count": 0,
100+
"created_at": "2023-10-15T20:44:21Z",
101+
"updated_at": "2023-10-15T20:44:22Z",
102+
"browser_download_url": "https://github.com/sCrypt-Inc/compiler_dist/releases/download/v1.19.1/scrypt-1.19.1-Linux-x86_64"
103+
},
104+
{
105+
"url": "https://api.github.com/repos/sCrypt-Inc/compiler_dist/releases/assets/130746783",
106+
"id": 130746783,
107+
"node_id": "RA_kwDOEskUbM4Hywmf",
108+
"name": "scrypt-1.19.1-macOS-x86_64",
109+
"label": "",
110+
"uploader": {
111+
"login": "scrypt-sv",
112+
"id": 52027588,
113+
"node_id": "MDQ6VXNlcjUyMDI3NTg4",
114+
"avatar_url": "https://avatars.githubusercontent.com/u/52027588?v=4",
115+
"gravatar_id": "",
116+
"url": "https://api.github.com/users/scrypt-sv",
117+
"html_url": "https://github.com/scrypt-sv",
118+
"followers_url": "https://api.github.com/users/scrypt-sv/followers",
119+
"following_url": "https://api.github.com/users/scrypt-sv/following{/other_user}",
120+
"gists_url": "https://api.github.com/users/scrypt-sv/gists{/gist_id}",
121+
"starred_url": "https://api.github.com/users/scrypt-sv/starred{/owner}{/repo}",
122+
"subscriptions_url": "https://api.github.com/users/scrypt-sv/subscriptions",
123+
"organizations_url": "https://api.github.com/users/scrypt-sv/orgs",
124+
"repos_url": "https://api.github.com/users/scrypt-sv/repos",
125+
"events_url": "https://api.github.com/users/scrypt-sv/events{/privacy}",
126+
"received_events_url": "https://api.github.com/users/scrypt-sv/received_events",
127+
"type": "User",
128+
"site_admin": false
129+
},
130+
"content_type": "binary/octet-stream",
131+
"state": "uploaded",
132+
"size": 5539504,
133+
"download_count": 0,
134+
"created_at": "2023-10-15T20:53:53Z",
135+
"updated_at": "2023-10-15T20:53:54Z",
136+
"browser_download_url": "https://github.com/sCrypt-Inc/compiler_dist/releases/download/v1.19.1/scrypt-1.19.1-macOS-x86_64"
137+
},
138+
{
139+
"url": "https://api.github.com/repos/sCrypt-Inc/compiler_dist/releases/assets/130746634",
140+
"id": 130746634,
141+
"node_id": "RA_kwDOEskUbM4HywkK",
142+
"name": "scrypt-1.19.1-Windows-AMD64.exe",
143+
"label": "",
144+
"uploader": {
145+
"login": "scrypt-sv",
146+
"id": 52027588,
147+
"node_id": "MDQ6VXNlcjUyMDI3NTg4",
148+
"avatar_url": "https://avatars.githubusercontent.com/u/52027588?v=4",
149+
"gravatar_id": "",
150+
"url": "https://api.github.com/users/scrypt-sv",
151+
"html_url": "https://github.com/scrypt-sv",
152+
"followers_url": "https://api.github.com/users/scrypt-sv/followers",
153+
"following_url": "https://api.github.com/users/scrypt-sv/following{/other_user}",
154+
"gists_url": "https://api.github.com/users/scrypt-sv/gists{/gist_id}",
155+
"starred_url": "https://api.github.com/users/scrypt-sv/starred{/owner}{/repo}",
156+
"subscriptions_url": "https://api.github.com/users/scrypt-sv/subscriptions",
157+
"organizations_url": "https://api.github.com/users/scrypt-sv/orgs",
158+
"repos_url": "https://api.github.com/users/scrypt-sv/repos",
159+
"events_url": "https://api.github.com/users/scrypt-sv/events{/privacy}",
160+
"received_events_url": "https://api.github.com/users/scrypt-sv/received_events",
161+
"type": "User",
162+
"site_admin": false
163+
},
164+
"content_type": "binary/octet-stream",
165+
"state": "uploaded",
166+
"size": 13845504,
167+
"download_count": 0,
168+
"created_at": "2023-10-15T20:52:47Z",
169+
"updated_at": "2023-10-15T20:52:48Z",
170+
"browser_download_url": "https://github.com/sCrypt-Inc/compiler_dist/releases/download/v1.19.1/scrypt-1.19.1-Windows-AMD64.exe"
171+
}
172+
],
173+
"tarball_url": "https://api.github.com/repos/sCrypt-Inc/compiler_dist/tarball/v1.19.1",
174+
"zipball_url": "https://api.github.com/repos/sCrypt-Inc/compiler_dist/zipball/v1.19.1",
175+
"body": "Compiler binaries"
176+
}

tsconfig.json

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"compilerOptions": {
3+
"target": "es6",
4+
"module": "commonjs",
5+
"outDir": "./out",
6+
"alwaysStrict": true,
7+
"sourceMap": true,
8+
"resolveJsonModule": true,
9+
"moduleResolution": "node",
10+
"declaration": true,
11+
"declarationDir": "./out",
12+
"rootDir": "src",
13+
"lib": [
14+
"es2020"
15+
],
16+
"composite": true
17+
},
18+
"include": ["src"],
19+
"exclude": ["node_modules", "scryptc"]
20+
}

0 commit comments

Comments
 (0)