Achieve it! How you ask? Well, it's pretty simple; just use greatness!

Overview

Greatness!

Greatness Logo

Achieve it! How you ask? Well, it's pretty simple; just use greatness!

Disclaimer

I do not believe that greatness is the best. It fits a medium sized niche, and thus cannot be best. Hence, we use the name greatness, not best.

Install greatness

Long way:

# Only run this if you don't have rust installed.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Install from crates.io
cargo install great

# Or build the latest!
git clone https://github.com/IsaccBarker/greatness.git
cd greatness
cargo install --path .

Short way

bash -c "$(curl -fsLS https://git.io/JcDJe)"
great pull add -m Wowee/GreatnessIsAmazing # Defaults to github. Put in a full URL if you don't use GitHub!

What is greatness?

Greatness is you being great and better than everyone else. You have to uphold that superiority complex don't you?

How do I achieve greatness?

Simple! Use this tool. This tool is designed to bring your system up to a working state that you like in a small amount of time. It is flexible, 100% modular, and fast.

You can view the documentation (wiki) here!

Why is Greatness great?

Well, just remember the name. Greatness has to be the best. But if you are dim (but still great), here is a comparision chart.

Disclaimer

You may recognise this chart from Chezmoi, but with some rows stripped out. This is because I do not know what they mean, and thus cannot implement them. A clock simply means that it will be supported, but isn't yet. If you want them, please file a great issue/pr.

greatness chezmoi dotbot rcm homesick yadm bare git
Distribution Source/Binary Single binary Python package Multiple files Ruby gem Single script n/a
Install method Many Many git submodule Many Ruby gem Many Manual
Non-root install on bare system Difficult Difficult Difficult
Windows support
Bootstrap requirements Rust, automatic Go, automatic Python, git Perl, git Ruby, git git git
Source repos Single Single Single Multiple Single Single Single
dotfiles are... Files Files Symlinks Files Symlinks Files Files
Config file Required, Managed Optional Required Optional None None Optional
Password manager integration
Machine-to-machine file differences Scripting Templates Alternative files Alternative files Alternative files Templates Manual
Custom variables in templates
Dotfile Merging
Scriptable
Modular
Executable files
Run scripts
Run once scripts 🕒
Software Auto-Install
Machine-to-machine symlink differences
File Tagging
Shell completion 🕒
Archive import 🕒
Archive export 🕒
Implementation language Rust, Lua Go Python Perl Ruby Bash C

As you can see, greatness is best. However, a sort of close second [chezmoi], has a weird name, is not scriptable, doesn't support dotfile merging, and isn't modular. This makes it not ideal for situations where you might want to pick parts of diferent peoples rices, merge them, script program installation (or have greatness do it for you), and then put it out into the world as a repository, which other people can then use as modules.

But don't use Windows. There is one reasons for this

  1. I don't have a Windows machine. Windows support may or may not be added in the future. The underlying code for supporting Windows is added to the best of my ability, but overall it should not work. Please note that not providing Windows support is mainly for your safety; I would hate for anything bad to happen to your files.

What is greatness isn't to my taste, but I want to stick with rust?

No worries! Check out chezmoi, dotter, or toml bombadil.

Comments
  • great prompt issue with fish shell

    great prompt issue with fish shell

    My default shell is fish and when I run great prompt I am getting the error below.

    🦔 You are now in a great child shell. Type `exit` to return to your great previous shell!
    /bin/fish: option requires an argument -- 'f'
    

    Apparently fish doesn't like the -f flag, and it's not actually opening a new shell due to the error.

    Thought I'd let you know.

    opened by larntz 5
  • Update snafu requirement from 0.6.10 to 0.7.0

    Update snafu requirement from 0.6.10 to 0.7.0

    Updates the requirements on snafu to permit the latest version.

    Changelog

    Sourced from snafu's changelog.

    [0.7.0] - XXXX-XX-XX

    Added

    • A crate prelude containing common macros and traits can be imported via use snafu::prelude::*.

    • A ready-to-use error type Whatever is available to quickly start reporting errors with little hassle.

    • "Stringly typed" error cases can be added to existing error types, allowing you to construct errors without defining them first.

    • Formatting shorthand syntax for error type data fields is now supported: #[snafu(display("Hello {name}"))].

    • [snafu(module)] can be specified on an error type. This will create a module for the error type and all associated context selectors will be placed in that module.

    • snafu::Location can be added to an error type to provide lightweight tracking of the source location where the error was created.

    • [snafu(implicit)] can be specified on context selector data fields to automatically generate it via snafu::GenerateImplicitData when the error is created.

    • ErrorCompat::iter_chain provides an iterator over the list of causal errors.

    Changed

    • Generated context selectors now have the suffix Snafu. This is a breaking change.

    • ResultExt::with_context, TryFutureExt::with_context, and TryStreamExt::with_context now pass the error into the closure. This is a breaking change.

    • The GenerateBacktrace trait has been split into GenerateImplicitData and AsBacktrace. This is a breaking change.

    • Rust 1.34 is now the minimum supported Rust version. This is a breaking change.

    Removed

    • String attribute parsing (#[snafu(foo = "...")]) is no longer

    ... (truncated)

    Commits
    • a6aff99 Release 0.7.0
    • f16bb4c Merge pull request #319 from shepmaster/trybuild
    • 1865e17 Update tests for newer version of trybuild
    • b4cdc99 Merge pull request #317 from shepmaster/docs
    • c694dfa Document that Error is removed before making selector names
    • 321d6a4 Sync up changelog and upgrading guide
    • 86fabf9 Minor doc tweaks
    • b314d3e Release 0.7.0-beta.2
    • caece50 Update the changelog
    • e846c56 Merge pull request #295 from SamWilsn/derive-with-module
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies no-pr-activity 
    opened by dependabot[bot] 3
  • Short Install No Work

    Short Install No Work

    the short install method does not work cause the first statement is exit

    $ curl -fsLS https://git.io/JcDJe
    echo "$@"
    exit
    
    if [[ $OSTYPE == 'darwin'* ]]; then
    
    opened by zacheryph 3
  • Update online requirement from 3.0.1 to 4.0.0

    Update online requirement from 3.0.1 to 4.0.0

    Updates the requirements on online to permit the latest version.

    Changelog

    Sourced from online's changelog.

    [4.0.0] - 2022-09-21

    🎉 Added

    ✏️ Changed

    • Synchronous version is the default now.

    ❌ Removed

    • async-std runtime support. Details here
    • Examples folder.

    [3.0.2] - 2022-09-04

    ✏️ Changed

    • Dependencies update.
    • Rust 2021 migration.

    [3.0.1] - 2021-06-26

    ✏️ Changed

    • Minor refactoring.

    [3.0.0] - 2021-06-26

    🎉 Added

    • Synchronous/blocking API.
    • Examples.

    ✏️ Changed

    • Major refactor moving to more rusty code.
    • Dependencies update.

    ❌ Removed

    • Minor documentation cleanup.

    [2.0.0] - 2021-01-12

    ✏️ Changed

    • Simpler API.

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies no-pr-activity 
    opened by dependabot[bot] 2
  • Update git2 requirement from 0.13.20 to 0.14.4

    Update git2 requirement from 0.13.20 to 0.14.4

    Updates the requirements on git2 to permit the latest version.

    Commits
    • d6f4560 git2 0.14.4 and libgit2-sys 0.13.4
    • 6316180 Implement Tree::get_name using Tree::get_name_bytes to avoid duplication
    • 23a5340 Add Tree::get_name_bytes to handle non-UTF-8 entry names
    • 31d3ff0 Add binding for git_commit_body
    • 9d33858 git2 0.14.3 and libgit2-sys 0.13.3
    • d8ee105 Avoid unconditional dependency on libssh2-sys when using zlib-ng-compat (#833)
    • 2d391e9 Update Readme (#834)
    • 71a2466 clarify license
    • 4d104dd rustfmt
    • 3bc2640 Don't let pkg-config add system lib dirs to the search path
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies no-pr-activity 
    opened by dependabot[bot] 2
  • Update snafu requirement from 0.6.10 to 0.7.1

    Update snafu requirement from 0.6.10 to 0.7.1

    Updates the requirements on snafu to permit the latest version.

    Changelog

    Sourced from snafu's changelog.

    [0.7.1] - 2022-05-02

    Added

    • The macro ensure_whatever provides the functionality of the ensure macro for stringly-typed errors.

    Changed

    • No longer require the futures feature flag to support the shim implementations of standard library errors that have existed since Rust 1.34.

    • Documentation improved to demonstrate that custom Whatever errors can optionally be made Send and Sync.

    [0.7.0] - 2022-01-03

    Many breaking changes in this release can be automatically addressed with the snafu-upgrade-assistant.

    Added

    • A crate prelude containing common macros and traits can be imported via use snafu::prelude::*.

    • A ready-to-use error type Whatever is available to quickly start reporting errors with little hassle.

    • "Stringly typed" error cases can be added to existing error types, allowing you to construct errors without defining them first.

    • Formatting shorthand syntax for error type data fields is now supported: #[snafu(display("Hello {name}"))].

    • [snafu(module)] can be specified on an error type. This will create a module for the error type and all associated context selectors will be placed in that module.

    • snafu::Location can be added to an error type to provide lightweight tracking of the source location where the error was created.

    • [snafu(implicit)] can be specified on context selector data fields to automatically generate it via snafu::GenerateImplicitData when the error is created.

    • ErrorCompat::iter_chain provides an iterator over the list of

    ... (truncated)

    Commits
    • 6159ea9 Release 0.7.1
    • 24c6855 Update the changelog
    • f7f3ddf Merge pull request #331 from shepmaster/whatever-send-sync
    • f679939 Merge pull request #330 from shepmaster/ensure_whatever
    • 857301a Show how to make custom Whatever types Send / Sync
    • 0665bb3 Add an ensure_whatever macro.
    • 625b8e5 Merge pull request #329 from shepmaster/maint
    • 83bd3d3 Update heck to 0.4
    • 171a3cf Merge pull request #327 from shepmaster/msrv-core-errors
    • 76c02d8 Add errors stabilized in 1.34 to the core Error shims
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies no-pr-activity 
    opened by dependabot[bot] 2
  • Update nix requirement from 0.23.0 to 0.24.1

    Update nix requirement from 0.23.0 to 0.24.1

    Updates the requirements on nix to permit the latest version.

    Changelog

    Sourced from nix's changelog.

    [0.24.1] - 2022-04-22

    Added

    Changed

    Fixed

    • Fixed UnixAddr::size on Linux-based OSes. (#1702)

    Removed

    [0.24.0] - 2022-04-21

    Added

    • Added fine-grained features flags. Most Nix functionality can now be conditionally enabled. By default, all features are enabled. (#1611)
    • Added statfs FS type magic constants for target_os = "android" and synced constants with libc v0.2.121. (#1690)
    • Added fexecve on DragonFly. (#1577)
    • sys::uio::IoVec is now Send and Sync (#1582)
    • Added EPOLLEXCLUSIVE on Android. (#1567)
    • Added fdatasync for FreeBSD, Fuchsia, NetBSD, and OpenBSD. (#1581)
    • Added sched_setaffinity and sched_getaffinity on DragonFly. (#1537)
    • Added posix_fallocate on DragonFly. (#1621)
    • Added SO_TIMESTAMPING support (#1547)
    • Added getter methods to MqAttr struct (#1619)
    • Added the TxTime sockopt and control message. (#1564)
    • Added POSIX per-process timer support (#1622)
    • Added sendfile on DragonFly. (#1615)
    • Added UMOUNT_NOFOLLOW, FUSE_SUPER_MAGIC on Linux. (#1634)
    • Added getresuid, setresuid, getresgid, and setresgid on DragonFly, FreeBSD, and OpenBSD. (#1628)
    • Added MAP_FIXED_NOREPLACE on Linux. (#1636)
    • Added fspacectl on FreeBSD (#1640)
    • Added accept4 on DragonFly, Emscripten, Fuchsia, Illumos, and NetBSD.

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies no-pr-activity 
    opened by dependabot[bot] 2
  • Update git2 requirement from 0.13.20 to 0.14.2

    Update git2 requirement from 0.13.20 to 0.14.2

    Updates the requirements on git2 to permit the latest version.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Update rlua requirement from 0.17.0 to 0.19.1

    Update rlua requirement from 0.17.0 to 0.19.1

    Updates the requirements on rlua to permit the latest version.

    Changelog

    Sourced from rlua's changelog.

    [0.19.1]

    • The -sys crates (bumped to 0.1.1) now use pregenerated bindgen outputs in the package instead of running bindgen at build time. This means that libclang is no longer needed when building.
    • A Windows build has been added to CI.

    [0.19.0]

    • The Lua C library build now uses separate -sys crates, and bindgen rather than hand-maintained declarations. (Thanks @​pollend!) The "builtin-lua51" feature is now available.
    • Value::Integer is now no longer available when building for Lua 5.1. (In Lua 5.1 there is no integer type).
    • Add Function::dump() which produces the compiled version of a function (like the string.dump Lua function or lua_dump() C API).
    • Add unsafe Chunk::into_function_allow_binary(). This allows loading a compiled binary generated from Function::dump().
    • Add Initflags to control some settings done when Lua is initialised. They can be specified with the new unsafe Lua::unsafe_new_with_flags() constructor. The flags available (all set by default with the other constructors):
      • PCALL_WRAPPERS:
        • wrap pcall and xpcall so that they don't allow catching Rust panics
      • LOAD_WRAPPERS:
        • wrap functions load, loadfile, dofile (and loadstring for lua 5.1) to prevent loading compiled/bytecode modules.
      • REMOVE_LOADLIB:
        • Remove package.loadlib and the module finding functions which allow loading compiled C libraries.
    • String<'lua> now implements Eq and Hash (can be useful for local collections within a context callback).

    [0.18.0]

    • Add support for multiple Lua versions, including 5.1, 5.3 and 5.4 (the default)
    • Add implementations of FromLua and ToLua for [T;N].

    [0.17.1]

    • Add "lua-compat-mathlib" feature, which enables Lua's LUA_COMPAT_MATHLIB option.
    • Bump num-traits version to 0.2.14 and fix some incompatibilities
    • Fix some tests from improved diagnostics in recent rustc.

    [0.17]

    • API incompatible change: depend on bstr crate and implement ToLua / FromLua for BString and BStr types (thanks @​azdle!)
    • Add methods (Lua::[unsafe]_load_from_stdlib load from the Lua stdlib on an existing instance (thanks @​azdle!)
    • Actually print the cause error in Error::CallbackError (thanks @​LPGhatguy!)
    • API incompatible change: Add MetaMethod::Pairs for the metamethod used by the bult-in pairs function (thanks @​steven-aerts!)

    [0.16.3]

    ... (truncated)

    Commits
    • 173856a Merge pull request #246 from jugglerchris/add_windows_ci
    • 95f95c2 Update changelog ready for release.
    • 1a70564 Update version to 0.19.1.
    • ba9cfc8 Update -sys crate versions ready for release.
    • da251b9 Only run compile-fail tests on Linux.
    • 6fcaae1 Fix a warning.
    • bf485fe Revert "Add a deliberate bindings change to test CI."
    • 56cfa20 Temporarily point lua5.4 at a path to check CI.
    • 13e455f Add a deliberate bindings change to test CI.
    • 11e906c Add a step to check that bindgen bindings are ok.
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Update rlua requirement from 0.17.0 to 0.18.0

    Update rlua requirement from 0.17.0 to 0.18.0

    Updates the requirements on rlua to permit the latest version.

    Changelog

    Sourced from rlua's changelog.

    [0.18.0]

    • Add support for multiple Lua versions, including 5.1, 5.3 and 5.4 (the default)
    • Add implementations of FromLua and ToLua for [T;N].

    [0.17.1]

    • Add "lua-compat-mathlib" feature, which enables Lua's LUA_COMPAT_MATHLIB option.
    • Bump num-traits version to 0.2.14 and fix some incompatibilities
    • Fix some tests from improved diagnostics in recent rustc.

    [0.17]

    • API incompatible change: depend on bstr crate and implement ToLua / FromLua for BString and BStr types (thanks @​azdle!)
    • Add methods (Lua::[unsafe]_load_from_stdlib load from the Lua stdlib on an existing instance (thanks @​azdle!)
    • Actually print the cause error in Error::CallbackError (thanks @​LPGhatguy!)
    • API incompatible change: Add MetaMethod::Pairs for the metamethod used by the bult-in pairs function (thanks @​steven-aerts!)

    [0.16.3]

    • Add a Context::current_thread method to get a reference to the Thread backing a given Context.
    • Portability fix: Remove a needless cast, fixing builds targetting armv7.
    • Small documentation improvements, additional tests

    [0.16.2]

    • Documentation fixes
    • Performance improvement to scoped and non-scoped UserDataMethods. Still could be much better, further improvements coming eventually.
    • API incompatible change (soundness fix): Remove unintentional ability to load bytecode via Context::load. Now only loads text source, bytecode can cause UB in the Lua VM.

    [0.16.1]

    • Documentation fixes

    [0.16]

    • Small fixes for the way new Lua states are created, preventing some potential unhandled errors
    • Propery mark all internal panics as internal and indicative of a bug
    • HUGE API incompatible change: move most of the Lua API into Context and require context callbacks to generate a branding lifetime, and use this branding lifetime on handle types. Fixes a hard to trigger soundness issue, and removes the only remaining API panic (that is not a bug). See the documentation for the Lua type for more details.
    • Fix error_traceback to work in all cases (thanks @​yasumutte!)
    • Use compiletest_rs on stable
    • API incompatible change: Change to use 2018 edition, rlua now requires rustc 1.31 to use.
    • Implement ToLua for CStr and CString, implement FromLua for CString (thanks @​althonos!)
    • Add ability to control what std libraries are loaded in a Lua state on startup (huge thanks to @​Shiroy!)
    • Add ability to set the Lua "hook function", which allows for limiting the execution of running scripts (huge thanks to @​lemarcuspoilus!)

    ... (truncated)

    Commits
    • 5d7c9f0 Merge pull request #225 from jugglerchris/update_0.18.0
    • de27d3a Update version to 0.18.0.
    • 063799d Merge pull request #221 from jugglerchris/multiple_lua
    • ae00cc2 Fix merge error in Cargo.toml.
    • 1d9c170 Update changelog for 0.18.0-alpha.0 release.
    • aec00b3 Merge branch 'v0.17_maint' into multiple_lua
    • 74b8ce9 Fix repository link.
    • d1a97db Update release checklist.
    • 4920ad2 Some updates to README.md.
    • a13c1b8 Merge pull request #219 from jugglerchris/multiple_lua
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies no-pr-activity 
    opened by dependabot[bot] 2
  • `greatness init` in docs should be `great init`.

    `greatness init` in docs should be `great init`.

    # Let's check out great!
    mba :: ~  » great status
    🙀 It looks you haven't initialized yet! Use `greatness init` to initialize. P.S, we found this out by looking through some pretty great binoculars.
    # Great! Gotta use the init command it suggests `greatness init`
    mba :: ~  » greatness init 
    zsh: command not found: greatness
    # huh, it must mean `great init`
    mba :: ~  » great init     
    # Great! No errors
    mba :: ~  » great status
    🦔 Greatness directory: /Users/brad/.greatness
    🦔 Greatness pulling  : /Users/brad/.greatness/pulled
    🦔 Greatness state : /Users/brad/.greatness/greatness.yaml
    🦔 Greatness git pack : /Users/brad/.greatness/packed/git
    🦔 Greatness scripts  : /Users/brad/.greatness/scripts
    
    🦔 No files added!
    🦔 No external repositories installed!
    

    Bingo!

    Looking forward to checking this project out! Thank you for taking on such a cool project.

    opened by noyez 2
  • Update clap requirement from 3.0.0-beta.2 to 4.0.32

    Update clap requirement from 3.0.0-beta.2 to 4.0.32

    Updates the requirements on clap to permit the latest version.

    Release notes

    Sourced from clap's releases.

    v4.0.32

    [4.0.32] - 2022-12-22

    Fixes

    • (parser) When overriding required(true), consider args that conflict with its group
    Changelog

    Sourced from clap's changelog.

    [4.0.32] - 2022-12-22

    Fixes

    • (parser) When overriding required(true), consider args that conflict with its group

    [4.0.31] - 2022-12-22

    Performance

    • Speed up parsing when a lot of different flags are present (100 unique flags)

    [4.0.30] - 2022-12-21

    Fixes

    • (error) Improve error for args_conflicts_with_subcommand

    [4.0.29] - 2022-11-29

    [4.0.28] - 2022-11-29

    Fixes

    • Fix wasm support which was broken in 4.0.27

    [4.0.27] - 2022-11-24

    Features

    • Have Arg::value_parser accept Vec<impl Into<PossibleValue>>
    • Implement Display and FromStr for ColorChoice

    Fixes

    • Remove soundness issue by switching from atty to is-terminal

    [4.0.26] - 2022-11-16

    Fixes

    • (error) Fix typos in ContextKind::as_str

    [4.0.25] - 2022-11-15

    Features

    • (error) Report available subcommands when required subcommand is missing

    [4.0.24] - 2022-11-14

    ... (truncated)

    Commits
    • ec4ccf0 chore: Release
    • 13fdb83 docs: Update changelog
    • b877345 Merge pull request #4573 from epage/conflict
    • 85ecb3e fix(parser): Override required when parent group has conflict
    • d145b8b test(parser): Demonstrate required-overload bug
    • 0eccd55 chore: Release
    • 1e37c25 docs: Update changelog
    • dcd5fec Merge pull request #4572 from epage/group
    • dde22e7 style: Update for latest clippy
    • dd8435d perf(parser): Reduce duplicate lookups
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Update snafu requirement from 0.6.10 to 0.7.4

    Update snafu requirement from 0.6.10 to 0.7.4

    Updates the requirements on snafu to permit the latest version.

    Changelog

    Sourced from snafu's changelog.

    0.7.4 - 2022-12-19

    Changed

    • Report and the [report] macro now remove redundant parts from the messages that many errors duplicate from their underlying sources.

    0.7.3 - 2022-10-20

    Fixed

    • The macro no longer generates invalid code when implicitly-generated types (such as backtraces) were used in conjunction with #[snafu(source(from))] and the type before transformation does not implement std::error::Error.

    [0.7.2] - 2022-10-09

    Added

    • Report can be returned from main or test functions to provide a user-friendly display of errors.

    • A cheat sheet for the most common #[snafu(...)] attribute usages has been added to the Snafu macro's documentation.

    • Optional support for using the standard library's std::backtrace::Backtrace type via the backtraces-impl-std feature flag.

    • Optional support for implementing the Provider API using the std::error::Error::provide method via the unstable-provider-api feature flag.

    • Optional support for implementing the core::error::Error trait instead of std::error::Error via the unstable-core-error feature flag.

    • GenerateImplicitData has a new method generate_with_source.

    Changed

    • ErrorCompat::iter_chain and ChainCompat are now available in no_std environments.

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Update nix requirement from 0.23.0 to 0.26.1

    Update nix requirement from 0.23.0 to 0.26.1

    Updates the requirements on nix to permit the latest version.

    Changelog

    Sourced from nix's changelog.

    [0.26.1] - 2022-11-29

    Fixed

    • Fix UB with sys::socket::sockopt::SockType using SOCK_PACKET. (#1821)

    [0.26.0] - 2022-11-29

    Added

    • Added SockaddrStorage::{as_unix_addr, as_unix_addr_mut} (#1871)
    • Added MntFlags and unmount on all of the BSDs.
    • Added any() and all() to poll::PollFd. (#1877)
    • Add MntFlags and unmount on all of the BSDs. (#1849)
    • Added a Statfs::flags method. (#1849)
    • Added NSFS_MAGIC FsType on Linux and Android. (#1829)
    • Added sched_getcpu on platforms that support it. (#1825)
    • Added sched_getaffinity and sched_setaffinity on FreeBSD. (#1804)
    • Added line_discipline field to Termios on Linux, Android and Haiku (#1805)
    • Expose the memfd module on FreeBSD (memfd was added in FreeBSD 13) (#1808)
    • Added domainname field of UtsName on Android and Linux (#1817)
    • Re-export RLIM_INFINITY from libc (#1831)
    • Added syncfs(2) on Linux (#1833)
    • Added faccessat(2) on illumos (#1841)
    • Added eaccess() on FreeBSD, DragonFly and Linux (glibc and musl). (#1842)
    • Added IP_TOS SO_PRIORITY and IPV6_TCLASS sockopts for Linux (#1853)
    • Added new_unnamed and is_unnamed for UnixAddr on Linux and Android. (#1857)
    • Added SockProtocol::Raw for raw sockets (#1848)
    • added IP_MTU (IpMtu) IPPROTO_IP sockopt on Linux and Android. (#1865)

    Changed

    • The MSRV is now 1.56.1 (#1792)

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Update env_logger requirement from 0.9.0 to 0.10.0

    Update env_logger requirement from 0.9.0 to 0.10.0

    Updates the requirements on env_logger to permit the latest version.

    Changelog

    Sourced from env_logger's changelog.

    0.10.0 - 2022-11-24

    MSRV changed to 1.60 to hide optional dependencies

    Fixes

    • Resolved soundness issue by switching from atty to is-terminal

    Breaking Changes

    To open room for changing dependencies:

    • Renamed termcolor feature to color
    • Renamed atty feature to auto-color

    0.9.3 - 2022-11-07

    • Fix a regression from v0.9.2 where env_logger would fail to compile with the termcolor feature turned off.

    0.9.2 - 2022-11-07

    • Fix and un-deprecate Target::Pipe, which was basically not working at all before and deprecated in 0.9.1.

    0.9.0 -- 2022-07-14

    Breaking Changes

    • Default message format now prints the target instead of the module

    Improvements

    • Added a method to print the module instead of the target
    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Update indicatif requirement from 0.16.2 to 0.17.2

    Update indicatif requirement from 0.16.2 to 0.17.2

    Updates the requirements on indicatif to permit the latest version.

    Release notes

    Sourced from indicatif's releases.

    0.17.2

    A small maintenance release which makes indicatif more portable and fixes some minor regressions.

    • Use portable-atomic to fix build on some 32-bit platforms (#484, thanks to @​messense)
    • Implement multi-line progress message support (#443, thanks to @​happenslol)
    • Reset estimator of progress rate on backwards movement (#483, thanks to @​rlee287)
    • Fix percent initial value when there is no length (#491, thanks to @​devmatteini)
    • Bumped the MSRV to 1.56 (#482)

    On behalf of @​djc and @​chris-laplante, thanks to all contributors!

    Commits
    • 25afbed Bump version number to 0.17.2
    • 8e220fd Fix clippy lints
    • 5b8b905 Fix percent initial value when there is no length
    • 2c85ff8 Add an armv5te test job to CI
    • 44ec391 Use portable-atomic to fix build on some 32-bit platforms
    • 14b5ef2 Update test to ensure reset occurs after rewind
    • 997567d Reset estimator of progress rate on backwards movement
    • 517398b Bump MSRV to 1.56
    • 222df5b Add additional tests for multi-progress multiline rendering
    • be579da Improve multiline support in format_style
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
Owner
Isacc Barker (Milo Banks)
Just discovered the beauty of programming music.
Isacc Barker (Milo Banks)
`Debug` in rust, but only supports valid rust syntax and outputs nicely formatted using pretty-please

dbg-pls A Debug-like trait for rust that outputs properly formatted code Showcase Take the following code: let code = r#" [ "Hello, World!

Conrad Ludgate 12 Dec 22, 2022
Frame is a markdown language for creating state machines (automata) in 7 programming languages as well as generating UML documentation.

Frame Language Transpiler v0.5.1 Hi! So very glad you are interested in Frame. Frame system design markdown language for software architects and engin

Mark Truluck 35 Dec 31, 2022
Annoyed that Rust has many string types? Well it doesn't have to

generic-str The one true string type in Rust! This project intends to be a proof-of-concept for an idea I had a few months back. There is lots of unsa

Conrad Ludgate 40 Apr 9, 2022
A simple library with just one struct which is used to wrap around pointers

A simple library with just one struct which is used to wrap around pointers. This can be used to create pointers and share them across threads without the hassle of synchronization if you really do not care about that.

null 1 Apr 11, 2022
simple lottery maker made with rust, just web framework

Toy project for fun It's just for fun! making plausible lottery numbers for Korea made with rust This lottery web framework generates and presents pla

yacho (bakjuna) 4 Nov 24, 2023
A highly modular Bitcoin Lightning library written in Rust. Its Rust-Lightning, not Rusty's Lightning!

Rust-Lightning is a Bitcoin Lightning library written in Rust. The main crate, lightning, does not handle networking, persistence, or any other I/O. Thus, it is runtime-agnostic, but users must implement basic networking logic, chain interactions, and disk storage. More information is available in the About section.

Lightning Dev Kit 850 Jan 3, 2023
A example bevy application using bevy-kajiya for its renderer

☀️ bevy-kajiya playground A example bevy application using bevy-kajiya for its renderer NOTE: only tested on Windows. For more context, check out the

Sebastian Hamel 20 Dec 5, 2022
Minimalistic solana minter program if you don't want to use Metaplex

Minimalistic solana minter program The objective of this repository is to be only a minimalistic template for NFTs projects on Solana, so you can buil

Gabriel 23 Sep 6, 2022
Powerfull Discord Raid Bot written in Rust, use VPN / Proxy because creating 200 channels in 10s Will ratelimit you.

Harakiri-Rust This the first Discord Raid Bot made in RustLang I recommend you use with a VPN or a Proxy to evade Discord Ratelimit. If bot doesn't st

Marco 6 May 1, 2023
This crate provides a convenient macro that allows you to generate type wrappers that promise to always uphold arbitrary invariants that you specified.

prae This crate provides a convenient macro that allows you to generate type wrappers that promise to always uphold arbitrary invariants that you spec

null 96 Dec 4, 2022
The batteries for core that you never knew you needed.

core+ The batteries for core that you never knew you needed: core+ coreplus documentation Core+ contains types that make it possible to write no_std l

Lachlan Sneff 12 May 11, 2022
Tells you how many years you need to wait until your subatomic xeon crystal synchronizer has doubled in plasma inversion efficiency on the Goldberg-Moleman scale or whatever.

about Tells you how many years you need to wait until your subatomic xeon crystal synchronizer has doubled in plasma inversion efficiency on the Goldb

null 2 Dec 3, 2021
Ever got frustrated when you realize that the for loop you were writing

for_each_repeat Ever got frustrated when you realize that the for loop you were writing... fn foo(mut iter: impl Iterator<Item=i32>) { for i in it

null 1 Jun 18, 2022
A tool that, like, screams at you when you say like

Dislike Do you, like,... dislike constantly saying "like" as much as I do? Then, like,... you've come the right place! This tool is like EXACTLY what

ElKowar 27 Jun 27, 2022
Federated blogging application, thanks to ActivityPub (now on https://git.joinplu.me/ — this is just a mirror)

Plume Website — Documentation — Contribute — Instances list Plume is a federated blogging engine, based on ActivityPub. It is written in Rust, with th

Plume 1.9k Jan 8, 2023
Just a bot for Neovim's Matrix room(s)

nvim-matrix-bot Currently just supports replying to messages with :h <some_doc> or similar in them with a link to the docs on Neovim's website. Plan i

null 8 Aug 6, 2022
Just toying with rust, nothing to see here :)

Just toying with rust, nothing to see here :)

Alexander Schüssler 1 Feb 24, 2022
🖊️ Just a place to paste

Just a place to paste API GET /p/:id - Get a paste by ID POST /p/n - Post a new paste GET /s - Get stats about the zer0bin instance Public instances S

mellowmarshe 68 Dec 28, 2022
Just a personal Rust Playground to play around and understand the language.

Rust Proactive Introduction The code is a bit messy but it serves just as a personal Rust Playground to play around and understand the language. You c

Fernando Cejas 3 Dec 21, 2022