fuanan add package

This commit is contained in:
fwx913451 2020-08-27 21:18:43 +08:00
parent 1383353ef3
commit 30aad0aa18
6 changed files with 412 additions and 0 deletions

108
dl-tests.sh Normal file
View File

@ -0,0 +1,108 @@
#!/bin/bash
tag=$(sed -n 's/^Version:\s\(.*\)$/\1/p' ./*.spec | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
url=$(sed -n 's/^URL:\s\(.*\)$/\1/p' ./*.spec | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
pkgdir=$(basename $url | sed -s 's/\.git$//')
echo "tag: $tag"
echo "URL: $url"
echo "pkgdir: $pkgdir"
set -e
tmp=$(mktemp -d)
trap cleanup EXIT
cleanup() {
echo Cleaning up...
set +e
[ -z "$tmp" -o ! -d "$tmp" ] || rm -rf "$tmp"
}
unset CDPATH
pwd=$(pwd)
pushd "$tmp"
git clone $url
cd $pkgdir
echo Finding git tag
gittag=$(git show-ref --tags | cut -d' ' -f2 | grep "${tag}$" || git show-ref --tags | cut -d' ' -f2 | sort -Vr | head -n1)
if [ -z $gittag ]; then
gittag=tags/$tag
fi
echo "Git Tag: $gittag"
if [ -d "test" ]; then
git archive --prefix='test/' --format=tar ${gittag}:test/ \
| bzip2 > "$pwd"/tests-${tag}.tar.bz2
elif [ -d "tests" ]; then
git archive --prefix='tests/' --format=tar ${gittag}:tests/ \
| bzip2 > "$pwd"/tests-${tag}.tar.bz2
elif [ -d "spec" ]; then
git archive --prefix='spec/' --format=tar ${gittag}:spec/ \
| bzip2 > "$pwd"/tests-${tag}.tar.bz2
else
echo "No test directory found for tag ${gittag}"
fi
if [ -d "support" ]; then
git archive --prefix='support/' --format=tar ${gittag}:support/ \
| bzip2 > "$pwd"/support-${tag}.tar.bz2
fi
if [ -d "fixture" ]; then
git archive --prefix='fixture/' --format=tar ${gittag}:fixture/ \
| bzip2 > "$pwd"/fixture-${tag}.tar.bz2
fi
if [ -d "examples" ]; then
git archive --prefix='examples/' --format=tar ${gittag}:examples/ \
| bzip2 > "$pwd"/examples-${tag}.tar.bz2
elif [ -d "example" ]; then
git archive --prefix='example/' --format=tar ${gittag}:example/ \
| bzip2 > "$pwd"/examples-${tag}.tar.bz2
fi
if [ -d "tasks" ]; then
git archive --prefix='tasks/' --format=tar ${gittag}:tasks/ \
| bzip2 > "$pwd"/tasks-${tag}.tar.bz2
fi
if [ -d "docs" ]; then
git archive --prefix='docs/' --format=tar ${gittag}:docs/ \
| bzip2 > "$pwd"/docs-${tag}.tar.bz2
elif [ -d "doc" ]; then
git archive --prefix='doc/' --format=tar ${gittag}:doc/ \
| bzip2 > "$pwd"/docs-${tag}.tar.bz2
fi
if [ -d "src" ]; then
git archive --prefix='src/' --format=tar ${gittag}:src/ \
| bzip2 > "$pwd"/src-${tag}.tar.bz2
fi
if [ -d "tools" ]; then
git archive --prefix='tools/' --format=tar ${gittag}:tools/ \
| bzip2 > "$pwd"/tools-${tag}.tar.bz2
fi
if [ -d "scripts" ]; then
git archive --prefix='scripts/' --format=tar ${gittag}:scripts/ \
| bzip2 > "$pwd"/scripts-${tag}.tar.bz2
fi
if [ -d "modules" ]; then
git archive --prefix='modules/' --format=tar ${gittag}:modules/ \
| bzip2 > "$pwd"/modules-${tag}.tar.bz2
fi
if [ -d "ts" ]; then
git archive --prefix='ts/' --format=tar ${gittag}:ts/ \
| bzip2 > "$pwd"/ts-${tag}.tar.bz2
fi
if [ -d "build" ]; then
git archive --prefix='build/' --format=tar ${gittag}:build/ \
| bzip2 > "$pwd"/build-${tag}.tar.bz2
fi
if [ -d "fixtures" ]; then
git archive --prefix='fixtures/' --format=tar ${gittag}:fixtures/ \
| bzip2 > "$pwd"/fixtures-${tag}.tar.bz2
fi
if [ -d "mocks" ]; then
git archive --prefix='mocks/' --format=tar ${gittag}:mocks/ \
| bzip2 > "$pwd"/mocks-${tag}.tar.bz2
fi
if [ -d "typings" ]; then
git archive --prefix='typings/' --format=tar ${gittag}:typings/ \
| bzip2 > "$pwd"/typings-${tag}.tar.bz2
fi
popd

BIN
find-up-2.1.0.tgz Normal file

Binary file not shown.

BIN
fixture-2.1.0.tar.bz2 Normal file

Binary file not shown.

53
nodejs-find-up.spec Normal file
View File

@ -0,0 +1,53 @@
%{?nodejs_find_provides_and_requires}
%global packagename find-up
%global enable_tests 0
Name: nodejs-find-up
Version: 2.1.0
Release: 1
Summary: Find a file by walking up parent directories
License: MIT
URL: https://github.com/sindresorhus/find-up
Source0: https://registry.npmjs.org/find-up/-/find-up-%{version}.tgz
Source1: fixture-%{version}.tar.bz2
Source10: dl-tests.sh
Source2: https://raw.githubusercontent.com/sindresorhus/find-up/v%{version}/test.js
ExclusiveArch: %{nodejs_arches} noarch
BuildArch: noarch
BuildRequires: nodejs-packaging npm(locate-path)
%if 0%{?enable_tests}
BuildRequires: npm(ava)
%endif
Requires: nodejs
%description
Find a file by walking up parent directories
%prep
%setup -q -n package
%setup -q -T -D -a 1 -n package
%build
%install
mkdir -p %{buildroot}%{nodejs_sitelib}/%{packagename}
cp -pr package.json *.js \
%{buildroot}%{nodejs_sitelib}/%{packagename}
%nodejs_symlink_deps
%check
%nodejs_symlink_deps --check
%{__nodejs} -e 'require("./")'
%if 0%{?enable_tests}
%{_bindir}/ava
%else
%{_bindir}/echo -e "\e[101m -=#=- Tests disabled -=#=- \e[0m"
%endif
%files
%{!?_licensedir:%global license %doc}
%doc *.md
%license license
%{nodejs_sitelib}/%{packagename}
%changelog
* Thu Aug 20 2020 Anan Fu <fuanan3@huawei.com> - 2.1.0-1
- package init

4
nodejs-find-up.yaml Normal file
View File

@ -0,0 +1,4 @@
version_control: github
src_repo: sindresorhus/find-up
tag_prefix: "^v"
seperator: "."

247
test.js Normal file
View File

@ -0,0 +1,247 @@
import fs from 'fs';
import path from 'path';
import test from 'ava';
import tempfile from 'tempfile';
import fn from './';
const name = {
pkgDir: 'find-up',
pkg: 'package.json',
fixtureDir: 'fixture',
baz: 'baz.js',
qux: 'qux.js'
};
// These paths are relative to the project root
const rel = {
fixtureDir: name.fixtureDir
};
rel.baz = path.join(rel.fixtureDir, name.baz);
rel.qux = path.join(rel.fixtureDir, name.qux);
rel.barDir = path.join(rel.fixtureDir, 'foo', 'bar');
const abs = {
pkgDir: __dirname
};
abs.pkg = path.join(abs.pkgDir, name.pkg);
abs.fixtureDir = path.join(abs.pkgDir, name.fixtureDir);
abs.baz = path.join(abs.fixtureDir, name.baz);
abs.qux = path.join(abs.fixtureDir, name.qux);
abs.barDir = path.join(abs.fixtureDir, 'foo', 'bar');
// Create a disjoint directory, used for the not-found tests
test.beforeEach(t => {
const tmpDir = tempfile();
fs.mkdirSync(tmpDir);
t.context.disjoint = tmpDir;
});
test.afterEach(t => {
fs.rmdirSync(t.context.disjoint);
});
test('async (child file)', async t => {
const filePath = await fn(name.pkg);
t.is(filePath, abs.pkg);
});
test('sync (child file)', t => {
const filePath = fn.sync(name.pkg);
t.is(filePath, abs.pkg);
});
test('async (child dir)', async t => {
const filePath = await fn(name.fixtureDir);
t.is(filePath, abs.fixtureDir);
});
test('sync (child dir)', t => {
const filePath = fn.sync(name.fixtureDir);
t.is(filePath, abs.fixtureDir);
});
test('async (child file, custom cwd)', async t => {
const filePath = await fn(name.baz, {
cwd: rel.fixtureDir
});
t.is(filePath, abs.baz);
});
test('sync (child file, custom cwd)', t => {
const filePath = fn.sync(name.baz, {
cwd: rel.fixtureDir
});
t.is(filePath, abs.baz);
});
test('async (child file, array, custom cwd)', async t => {
const filePath = await fn([name.baz], {
cwd: rel.fixtureDir
});
t.is(filePath, abs.baz);
});
test('sync (child file, array, custom cwd)', t => {
const filePath = fn.sync([name.baz], {
cwd: rel.fixtureDir
});
t.is(filePath, abs.baz);
});
test('async (first child file, array, custom cwd)', async t => {
const filePath = await fn([name.qux, name.baz], {
cwd: rel.fixtureDir
});
t.is(filePath, abs.qux);
});
test('sync (first child file, array, custom cwd)', t => {
const filePath = fn.sync([name.qux, name.baz], {
cwd: rel.fixtureDir
});
t.is(filePath, abs.qux);
});
test('async (second child file, array, custom cwd)', async t => {
const filePath = await fn(['fake', name.baz], {
cwd: rel.fixtureDir
});
t.is(filePath, abs.baz);
});
test('sync (second child file, array, custom cwd)', t => {
const filePath = fn.sync(['fake', name.baz], {
cwd: rel.fixtureDir
});
t.is(filePath, abs.baz);
});
test('async (cwd)', async t => {
const filePath = await fn(name.pkgDir, {
cwd: abs.pkgDir
});
t.is(filePath, abs.pkgDir);
});
test('sync (cwd)', t => {
const filePath = fn.sync(name.pkgDir, {
cwd: abs.pkgDir
});
t.is(filePath, abs.pkgDir);
});
test('async (cousin file, custom cwd)', async t => {
const filePath = await fn(name.baz, {
cwd: rel.barDir
});
t.is(filePath, abs.baz);
});
test('sync (cousin file, custom cwd)', t => {
const filePath = fn.sync(name.baz, {
cwd: rel.barDir
});
t.is(filePath, abs.baz);
});
test('async (nested descendant file)', async t => {
const filePath = await fn(rel.baz);
t.is(filePath, abs.baz);
});
test('sync (nested descendant file)', t => {
const filePath = fn.sync(rel.baz);
t.is(filePath, abs.baz);
});
test('async (nested descendant dir)', async t => {
const filePath = await fn(rel.barDir);
t.is(filePath, abs.barDir);
});
test('sync (nested descendant dir)', t => {
const filePath = fn.sync(rel.barDir);
t.is(filePath, abs.barDir);
});
test('async (nested cousin dir, custom cwd)', async t => {
const filePath = await fn(rel.barDir, {
cwd: rel.fixtureDir
});
t.is(filePath, abs.barDir);
});
test('sync (nested cousin dir, custom cwd)', t => {
const filePath = fn.sync(rel.barDir, {
cwd: rel.fixtureDir
});
t.is(filePath, abs.barDir);
});
test('async (ancestor dir, custom cwd)', async t => {
const filePath = await fn(name.fixtureDir, {
cwd: rel.barDir
});
t.is(filePath, abs.fixtureDir);
});
test('sync (ancestor dir, custom cwd)', t => {
const filePath = fn.sync(name.fixtureDir, {
cwd: rel.barDir
});
t.is(filePath, abs.fixtureDir);
});
test('async (not found)', async t => {
const filePath = await fn('somenonexistentfile.js');
t.is(filePath, null);
});
test('sync (not found)', t => {
const filePath = fn.sync('somenonexistentfile.js');
t.is(filePath, null);
});
// Both tests start in a disjoint directory. `package.json` should not be found
// and `null` should be returned.
test('async (not found, custom cwd)', async t => {
const filePath = await fn(name.pkg, {
cwd: t.context.disjoint
});
t.is(filePath, null);
});
test('sync (not found, custom cwd)', t => {
const filePath = fn.sync(name.pkg, {
cwd: t.context.disjoint
});
t.is(filePath, null);
});