Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
node-sass
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
楚学文
node-sass
Commits
b45adb69
Commit
b45adb69
authored
Mar 06, 2015
by
Adeel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Build: Implements GH API to upload binaries.
parent
2c07e154
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
86 additions
and
0 deletions
+86
-0
upload.js
scripts/upload.js
+86
-0
No files found.
scripts/upload.js
0 → 100644
View file @
b45adb69
/*!
* node-sass: scripts/upload.js
*/
require
(
'../lib/extensions'
);
var
flags
=
require
(
'meow'
)({
pkg
:
'../'
}).
flags
;
var
fetchReleaseInfoUrl
=
[
'https://api.github.com/repos/sass/node-sass/releases/tags/v'
,
flags
.
tag
?
flags
.
tag
:
require
(
'../package.json'
).
version
].
join
(
''
),
file
=
flags
.
path
?
flags
.
path
:
require
(
'path'
).
resolve
(
__dirname
,
'..'
,
'vendor'
,
process
.
sassBinaryName
,
'binding.node'
),
fs
=
require
(
'fs'
),
os
=
require
(
'os'
),
request
=
require
(
'request'
),
uploadReleaseAssetUrl
=
[
'?name='
,
process
.
sassBinaryName
,
'.node'
,
'&label='
,
process
.
sassBinaryName
].
join
(
''
);
/**
* Upload binary using GitHub API
*
* @api private
*/
function
uploadBinary
()
{
if
(
!
fs
.
existsSync
(
file
))
{
throw
new
Error
(
'Error reading file.'
);
}
var
post
=
function
()
{
request
.
post
({
url
:
uploadReleaseAssetUrl
,
headers
:
{
'Authorization'
:
[
'Token '
,
flags
.
auth
].
join
(
''
),
'Content-Type'
:
'application/octet-stream'
},
formData
:
{
file
:
fs
.
createReadStream
(
file
)
}
},
function
(
err
,
res
,
body
)
{
if
(
err
)
{
throwFormattedError
(
err
);
}
var
formattedResponse
=
JSON
.
parse
(
body
);
if
(
formattedResponse
.
errors
)
{
throwFormattedError
(
formattedResponse
.
errors
);
}
console
.
log
([
'Binary uploaded successfully.'
,
'Please test the following link before announcement it:'
,
formattedResponse
.
browser_download_url
].
join
(
os
.
EOL
));
});
};
request
.
get
({
url
:
fetchReleaseInfoUrl
,
headers
:
{
'User-Agent'
:
'Node-Sass-Release-Agent'
}
},
function
(
err
,
res
,
body
)
{
if
(
err
)
{
throw
new
Error
(
'Error fetching release id.'
);
}
var
upload_url
=
JSON
.
parse
(
body
).
upload_url
;
uploadReleaseAssetUrl
=
upload_url
.
replace
(
/{
\?
name}/
,
uploadReleaseAssetUrl
);
console
.
log
(
'Upload URL is:'
,
uploadReleaseAssetUrl
);
post
();
});
}
function
throwFormattedError
(
err
)
{
throw
new
Error
([
'Error uploading release asset.'
,
'The server returned:'
,
JSON
.
stringify
(
err
)].
join
(
os
.
EOL
));
}
/**
* Run
*/
console
.
log
(
'Preparing to uploading'
,
file
,
'..'
);
uploadBinary
();
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment