From 08517df79e0942498833386189a98d9a31c5eb41 Mon Sep 17 00:00:00 2001 From: yaokai13 Date: Sat, 29 Aug 2020 10:56:23 +0800 Subject: [PATCH] package init --- Gruntfile.js | 39 ++++++++++++++++++++++++++++++++++++ dl-tests.sh | 24 ++++++++++++++++++++++ gaze-0.5.1.tgz | Bin 0 -> 30720 bytes nodejs-gaze.spec | 47 ++++++++++++++++++++++++++++++++++++++++++++ nodejs-gaze.yaml | 4 ++++ tests-0.5.1.tar.bz2 | Bin 0 -> 4548 bytes 6 files changed, 114 insertions(+) create mode 100644 Gruntfile.js create mode 100644 dl-tests.sh create mode 100644 gaze-0.5.1.tgz create mode 100644 nodejs-gaze.spec create mode 100644 nodejs-gaze.yaml create mode 100644 tests-0.5.1.tar.bz2 diff --git a/Gruntfile.js b/Gruntfile.js new file mode 100644 index 0000000..d2f2c25 --- /dev/null +++ b/Gruntfile.js @@ -0,0 +1,39 @@ +module.exports = function(grunt) { + 'use strict'; + grunt.initConfig({ + benchmark: { + all: { + src: ['benchmarks/*.js'], + options: {times: 10} + } + }, + nodeunit: { + files: ['test/*_test.js'], + }, + jshint: { + options: { + jshintrc: '.jshintrc' + }, + gruntfile: { + src: 'Gruntfile.js' + }, + lib: { + src: ['lib/**/*.js'] + }, + test: { + src: ['test/**/*_test.js'] + }, + }, + }); + + // Dynamic alias task to nodeunit. Run individual tests with: grunt test:events + grunt.registerTask('test', function(file) { + grunt.config('nodeunit.files', String(grunt.config('nodeunit.files')).replace('*', file || '*')); + grunt.task.run('nodeunit'); + }); + + grunt.loadNpmTasks('grunt-benchmark'); + grunt.loadNpmTasks('grunt-contrib-jshint'); + grunt.loadNpmTasks('grunt-contrib-nodeunit'); + grunt.registerTask('default', ['jshint', 'nodeunit']); +}; diff --git a/dl-tests.sh b/dl-tests.sh new file mode 100644 index 0000000..c886185 --- /dev/null +++ b/dl-tests.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +version=0.5.1 +commit=dad5345a2876346fe49a68ee6e4db34205680798 + +set -e + +tmp=$(mktemp -d) + +trap cleanup EXIT +cleanup() { + set +e + [ -z "$tmp" -o ! -d "$tmp" ] || rm -rf "$tmp" +} + +unset CDPATH +pwd=$(pwd) + +pushd "$tmp" +git clone git://github.com/shama/gaze.git +cd gaze +git archive --prefix="test/" --format=tar ${commit}:test/ \ + | bzip2 > "$pwd"/tests-${version}.tar.bz2 +popd diff --git a/gaze-0.5.1.tgz b/gaze-0.5.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..6f845d735deca1f9ed3c908e681a6f38eb9764ae GIT binary patch literal 30720 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 literal 0 HcmV?d00001 diff --git a/nodejs-gaze.spec b/nodejs-gaze.spec new file mode 100644 index 0000000..8d74075 --- /dev/null +++ b/nodejs-gaze.spec @@ -0,0 +1,47 @@ +%global enable_tests 1 +Name: nodejs-gaze +Version: 0.5.1 +Release: 1 +Summary: A globbing fs.watch wrapper built from parts of other watch libraries +License: MIT +URL: https://github.com/shama/gaze +Source0: http://registry.npmjs.org/gaze/-/gaze-%{version}.tgz +Source1: tests-%{version}.tar.bz2 +Source2: https://raw.githubusercontent.com/shama/gaze/dad5345a2876346fe49a68ee6e4db34205680798/Gruntfile.js +Source10: dl-tests.sh +BuildArch: noarch +ExclusiveArch: %{nodejs_arches} noarch +BuildRequires: nodejs-packaging +%if 0%{?enable_tests} +BuildRequires: npm(async) npm(globule) npm(grunt) npm(grunt-cli) npm(grunt-contrib-nodeunit) +BuildRequires: npm(nodeunit) npm(rimraf) +%endif +%description +This Node.js module provides a globbing fs.watch wrapper built from the best +parts of other fine watch libraries: speedy data behavior from chokidar, the +API interface from watch, and file globbing using glob. + +%prep +%setup -q -n package +%setup -q -T -D -a 1 -n package +cp -p %{SOURCE2} . + +%build + +%install +mkdir -p %{buildroot}%{nodejs_sitelib}/gaze +cp -pr package.json lib/ \ + %{buildroot}%{nodejs_sitelib}/gaze +%if 0%{?enable_tests} + +%check +/usr/bin/grunt nodeunit -v +%endif + +%files +%doc LICENSE-MIT README.md +%{nodejs_sitelib}/gaze + +%changelog +* Thu Aug 20 2020 yaokai - 0.5.1-1 +- Package init diff --git a/nodejs-gaze.yaml b/nodejs-gaze.yaml new file mode 100644 index 0000000..23ff88c --- /dev/null +++ b/nodejs-gaze.yaml @@ -0,0 +1,4 @@ +version_control: github +src_repo: shama/gaze +tag_pattern: "^v" +seperator: "." diff --git a/tests-0.5.1.tar.bz2 b/tests-0.5.1.tar.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..fe9efb4897727654cb898e3bcc3cc86ef99d9055 GIT binary patch literal 4548 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 izQdTTQ6@`+1`A^NKM87;S