From 0ab374236a130f1ed834fd24c7cb2b9a94e0103d Mon Sep 17 00:00:00 2001 From: Joe Hand Date: Sat, 17 Dec 2016 13:23:02 -0800 Subject: add sync script for travis --- .travis.yml | 2 +- build.js | 7 ------- package.json | 8 ++++++-- scripts/build.js | 8 ++++++++ scripts/sync.js | 35 +++++++++++++++++++++++++++++++++++ 5 files changed, 50 insertions(+), 10 deletions(-) delete mode 100644 build.js create mode 100644 scripts/build.js create mode 100644 scripts/sync.js diff --git a/.travis.yml b/.travis.yml index 3fd792c..9c03b91 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,5 +23,5 @@ install: deploy: provider: script - script: npm run deploy + script: npm run travis:update && npm run deploy skip_cleanup: true diff --git a/build.js b/build.js deleted file mode 100644 index 6f3cc22..0000000 --- a/build.js +++ /dev/null @@ -1,7 +0,0 @@ -var fs = require('fs') -var ndjson = require('ndjson') - -fs.mkdirSync('docs/modules') -process.stdin.pipe(ndjson.parse()).on('data', function (obj) { - fs.writeFileSync('docs/modules/' + obj.name + '.md', obj.readme) -}) diff --git a/package.json b/package.json index 6475b62..b73a5b7 100644 --- a/package.json +++ b/package.json @@ -4,9 +4,12 @@ "description": "Documentation for Dat and the surrounding ecosystem.", "main": "index.js", "scripts": { + "travis:update": "npm run travis:list && npm run travis:sync", + "travis:list": "npm run update:list && cat repos.txt | node scripts/sync.js", + "travis:sync": "cat repos.txt | ecosystem-docs read -d ./.data | node scripts/build.js", "update": "npm run update:list && npm run update:build", "update:list": "curl -Ssl https://raw.githubusercontent.com/clkao/awesome-dat/master/readme.md | grep '📔' | egrep -o 'github.com/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+' | cut -f 2- -d / | uniq > repos.txt", - "update:build": "cat repos.txt | ecosystem-docs sync && cat repos.txt | ecosystem-docs read | node build.js", + "update:build": "cat repos.txt | ecosystem-docs sync && cat repos.txt | ecosystem-docs read | node scripts/build.js", "build:local": "npm run build:css && minidocs docs -c docs/contents.json -i dat -o dist -l ./node_modules/dat-design/public/img/dat-data-logo.svg -t 'Dat Data' -s assets/styles.css --pushstate", "build:deploy": "npm run build:css && minidocs docs -c docs/contents.json -i dat -o dist -l ./node_modules/dat-design/public/img/dat-data-logo.svg -t 'Dat Data' -s assets/styles.css --full-html", "build:css": "node-sass --importer node_modules/node-sass-magic-importer assets/styles.scss assets/styles.css", @@ -29,7 +32,8 @@ "dependencies": { "dat-design": "^1.2.11", "gh-pages": "^0.11.0", - "minidocs": "^4.0.5" + "minidocs": "^4.0.5", + "split2": "^2.1.0" }, "devDependencies": { "budo": "^8.3.0", diff --git a/scripts/build.js b/scripts/build.js new file mode 100644 index 0000000..136d99a --- /dev/null +++ b/scripts/build.js @@ -0,0 +1,8 @@ +var fs = require('fs') +var mkdirp = require('mkdirp') +var ndjson = require('ndjson') + +mkdirp.sync('docs/modules') +process.stdin.pipe(ndjson.parse()).on('data', function (obj) { + fs.writeFileSync('docs/modules/' + obj.name + '.md', obj.readme) +}) diff --git a/scripts/sync.js b/scripts/sync.js new file mode 100644 index 0000000..73e86b7 --- /dev/null +++ b/scripts/sync.js @@ -0,0 +1,35 @@ +var path = require('path') +var ghAuth = require('ghauth') +var ecosystem = require('ecosystem-docs') +var split = require('split2') + +var modules = [] + +process.stdin.pipe(split()).on('data', function (data) { + modules.push(data) +}).on('end', function () { + syncModules(modules, function () { + process.exit(0) + }) +}) + +function syncModules (modules, cb) { + console.log('syncing', modules) + if (process.env.GH_TOKEN) return sync(process.env.GH_TOKEN) + + ghAuth({ + configName: 'ecosystem-docs', + userAgent: 'ecosystem-docs', + scopes: ['user'] + }, (err, auth) => { + if (err) return cb(err) + sync(auth.token) + }) + + function sync (token) { + ecosystem.sync(modules, { + data: path.join(__dirname, '..', '.data'), + token: token + }, cb) + } +} \ No newline at end of file -- cgit v1.2.3