Merge pull request 'github samples: default to "samples" if repository is not specified' (#1644) from prezmop/strudel:main into main
Reviewed-on: https://codeberg.org/uzu/strudel/pulls/1644
This commit is contained in:
commit
4e17cfbdd6
2 changed files with 13 additions and 5 deletions
|
|
@ -153,6 +153,7 @@ samples('github:tidalcycles/dirt-samples')
|
||||||
|
|
||||||
The format is `github:<user>/<repo>/<branch>`.
|
The format is `github:<user>/<repo>/<branch>`.
|
||||||
|
|
||||||
|
If `<repo>` and `<branch>` are not specified, they will default to `samples` and `main` respectively.
|
||||||
It expects a `strudel.json` file to be present at the root of the given repository, which declares the sample paths in the repo.
|
It expects a `strudel.json` file to be present at the root of the given repository, which declares the sample paths in the repo.
|
||||||
|
|
||||||
The format is also expected to be the same as explained above.
|
The format is also expected to be the same as explained above.
|
||||||
|
|
|
||||||
|
|
@ -121,13 +121,20 @@ function githubPath(base, subpath = '') {
|
||||||
if (!base.startsWith('github:')) {
|
if (!base.startsWith('github:')) {
|
||||||
throw new Error('expected "github:" at the start of pseudoUrl');
|
throw new Error('expected "github:" at the start of pseudoUrl');
|
||||||
}
|
}
|
||||||
let [_, path] = base.split('github:');
|
let path = base.slice('github:'.length);
|
||||||
path = path.endsWith('/') ? path.slice(0, -1) : path;
|
path = path.endsWith('/') ? path.slice(0, -1) : path;
|
||||||
if (path.split('/').length === 2) {
|
|
||||||
// assume main as default branch if none set
|
let components = path.split('/');
|
||||||
path += '/main';
|
let user = components[0];
|
||||||
|
let repo = components.length >= 2 ? components[1] : 'samples';
|
||||||
|
let branch = components.length >= 3 ? components[2] : 'main';
|
||||||
|
let other = components.slice(3);
|
||||||
|
if (subpath) {
|
||||||
|
other.push(subpath);
|
||||||
}
|
}
|
||||||
return `https://raw.githubusercontent.com/${path}/${subpath}`;
|
other = other.join('/');
|
||||||
|
|
||||||
|
return `https://raw.githubusercontent.com/${user}/${repo}/${branch}/${other}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const processSampleMap = (sampleMap, fn, baseUrl = sampleMap._base || '') => {
|
export const processSampleMap = (sampleMap, fn, baseUrl = sampleMap._base || '') => {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue