Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gfldex/raku-meta6-bin
Create and check META6.json files and module skeletons.
https://github.com/gfldex/raku-meta6-bin
perl6 skeleton
Last synced: 3 months ago
JSON representation
Create and check META6.json files and module skeletons.
- Host: GitHub
- URL: https://github.com/gfldex/raku-meta6-bin
- Owner: gfldex
- License: artistic-2.0
- Created: 2017-01-26T10:20:52.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2021-08-25T19:50:05.000Z (over 3 years ago)
- Last Synced: 2024-09-30T20:32:33.308Z (3 months ago)
- Topics: perl6, skeleton
- Language: Raku
- Homepage:
- Size: 97.7 KB
- Stars: 5
- Watchers: 2
- Forks: 2
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# META6::bin
[![Build Status](https://travis-ci.org/gfldex/raku-meta6-bin.svg?branch=master)](https://travis-ci.org/gfldex/raku-meta6-bin)Create and check META6.json files and module skeletons.
Depends on `git` and `curl` in `$PATH` and got a timeout of 60s for each call
to both. Those are used to setup a git and github repo.Module skeletons include basic directories, `META6.json`, `t/meta.t`,
`.travis.yml` and a `README.md`. The latter includes a link to
[travis-ci](https://travis-ci.org/).# SYNOPSIS
meta6 --create --name= --force
meta6 --check
meta6 --create-cfg-dir --force
meta6 --new-module= --force --skip-git --skip-github
meta6 --fork-module=
meta6 --add-dep=>
meta6 --pull-request
meta6 --issues --module= --closed --one-line --url --deps --verbose
meta6 --set-license="license name or URL"
meta6 --add-author="Another T. Author "
meta6 --release --version=1.2.3## Use as a Module
use v6.c;
use META6::bin :HELPER;
&META6::bin::try-to-fetch-url.wrap({
say "checking URL: ⟨$_⟩";
callsame;
});
META6::bin::MAIN(:check);# General Options
--meta6-file= # defaults to ./META6.json
# Create Options
--name
--description
--version # defaults to 0.0.1
--perl # defaults to 6.c
--author # defaults to user/name from ~/.gitconfig
--auth # defaults to credentials/username from ~/.gitconfig# New Module Options
--new-module=
--description="some text" # added both META6.json and README.md
--base-dir # the $*CWD for all local file operationsWill create a new module project in a new directory with a name prefixed with
`create.prefix` (default `raku-`), setup git, push it to github (See Github
below). The skeleton from the config dir `~/.meta6` will be applied (see Config
Dir below).# Fork Module Options
--fork-module= # module name as to be found in the ecosystem
This will seach a module by name in the ecosystem. If it's a github repo that
repo will be forked and cloned to the local FS. If there is a `META6.info` but
no `t/meta.t`, the file and its dependancy will be added and commited to the
local git repo.# Pull Request Options
--pull-request
--title=`git log|head 1` # defaults to last commit message
--message=''
--head=master # branch in your fork
--base=master # branch in upstream repo
--repo-name # defaults to repo name provided in META6.infoPull request need to tell github where to create the PR at. That in turn
requires a proper `META6.json` to get the repo name from.# Releasing a module
To create a release on github use `--release`. The optional parameter
`--version` takes a string that is used as a version and stored in the
META6.json-file. Versions can be incremented with `+`, `++`, `+++` for the
parts of a version with the form `1.2.3`. A single `+` will change the
revision, `++` the miner version and `+++` the major.A github-tag will be created and is the base of the release. The `source-url`
field in the META6.json is set to the tarball of the release on github.# Config Dir
The config dir resides at `~/.meta6` and holds a folder called `skeleton` for
additional files to be copied into any new project. This is where you put your
default `LICENSE` or alternate `.gitignore`.The config dir, a default meta6.cfg and its default subdirs are created with
`--create-cfg-dir`.Any executable under `pre-create.d`, `post-create.d` and `post-push.d` are
sorted and executed with a timeout of 60 seconds each. Files that end in `~`
are filtered out.The config directory can hold a `github-token.txt` file that is used to help
`curl` to connect to github. The [token](https://github.com/settings/tokens)
needs the scopes `repo`, `user/read:user` and `user/email`. Please note that
`git` itself can handle a `~/.netrc`-file and github will accept a token
instead of a password.# Github
To be able to talk to github your git-config requires a section as follows.
[credential]
username = your-github-username