summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Gerace <nickagerace@gmail.com>2022-07-05 22:33:25 -0400
committerNick Gerace <nickagerace@gmail.com>2022-07-05 22:33:25 -0400
commit81ffdad9565354866b6ba379b147d805869f094d (patch)
treef40cc1cd19644bfa0a4ac79e7f2aac6ebb3c97ff
parente2de9e9e6588d1931b0ef56c09999b2b4aff1d13 (diff)
downloadgfold-81ffdad9565354866b6ba379b147d805869f094d.zip
Update to 4.0.1
Functional: - Update "Cargo.toml" version to 4.0.1 - Bump all packages - Add warnings check to "cargo doc" in CI - Remove bash scripts (install and uninstall) and move their logic to markdown docs Docs: - Move download and install from source instructions to their own file - Add "cargo doc" warnings check to dev docs - Rename scripts to performance testing scripts where mentioned - Add "quiet" flag to "cargo run" for scripts Signed-off-by: Nick Gerace <nickagerace@gmail.com>
-rw-r--r--.github/workflows/ci.yml3
-rw-r--r--Cargo.lock138
-rw-r--r--Cargo.toml2
-rw-r--r--README.md36
-rw-r--r--docs/DEVELOPING.md15
-rw-r--r--docs/MANUAL_INSTALL.md89
-rw-r--r--rustfmt.toml1
-rw-r--r--scripts/README.md10
-rwxr-xr-xscripts/install.sh58
-rwxr-xr-xscripts/uninstall.sh33
10 files changed, 176 insertions, 209 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index da5e6a9..e61c967 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -39,6 +39,9 @@ jobs:
- uses: actions-rs/cargo@v1
with:
command: doc
+ args: --all
+ env:
+ RUSTDOCFLAGS: "-Dwarnings"
- uses: actions-rs/cargo@v1
with:
command: test
diff --git a/Cargo.lock b/Cargo.lock
index 5c441fa..c1d3e2c 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -19,18 +19,18 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
[[package]]
name = "anyhow"
-version = "1.0.57"
+version = "1.0.58"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc"
+checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704"
dependencies = [
"backtrace",
]
[[package]]
name = "argh"
-version = "0.1.7"
+version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb41d85d92dfab96cb95ab023c265c5e4261bb956c0fb49ca06d90c570f1958"
+checksum = "a7e7e4aa7e40747e023c0761dafcb42333a9517575bbf1241747f68dd3177a62"
dependencies = [
"argh_derive",
"argh_shared",
@@ -38,9 +38,9 @@ dependencies = [
[[package]]
name = "argh_derive"
-version = "0.1.7"
+version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be69f70ef5497dd6ab331a50bd95c6ac6b8f7f17a7967838332743fbd58dc3b5"
+checksum = "69f2bd7ff6ed6414f4e5521bd509bae46454bbd513801767ced3f21a751ab4bc"
dependencies = [
"argh_shared",
"heck",
@@ -51,9 +51,9 @@ dependencies = [
[[package]]
name = "argh_shared"
-version = "0.1.7"
+version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6f8c380fa28aa1b36107cd97f0196474bb7241bb95a453c5c01a15ac74b2eac"
+checksum = "47253b98986dafc7a3e1cf3259194f1f47ac61abb57a57f46ec09e48d004ecda"
[[package]]
name = "atty"
@@ -110,9 +110,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "crossbeam-channel"
-version = "0.5.4"
+version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aaa7bd5fb665c6864b5f963dd9097905c54125909c7aa94c9e18507cdbe6c53"
+checksum = "4c02a4d71819009c192cf4872265391563fd6a84c81ff2c0f2a7026ca4c1d85c"
dependencies = [
"cfg-if",
"crossbeam-utils",
@@ -131,26 +131,26 @@ dependencies = [
[[package]]
name = "crossbeam-epoch"
-version = "0.9.8"
+version = "0.9.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1145cf131a2c6ba0615079ab6a638f7e1973ac9c2634fcbeaaad6114246efe8c"
+checksum = "07db9d94cbd326813772c968ccd25999e5f8ae22f4f8d1b11effa37ef6ce281d"
dependencies = [
"autocfg",
"cfg-if",
"crossbeam-utils",
- "lazy_static",
"memoffset",
+ "once_cell",
"scopeguard",
]
[[package]]
name = "crossbeam-utils"
-version = "0.8.8"
+version = "0.8.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38"
+checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83"
dependencies = [
"cfg-if",
- "lazy_static",
+ "once_cell",
]
[[package]]
@@ -175,9 +175,9 @@ dependencies = [
[[package]]
name = "either"
-version = "1.6.1"
+version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
+checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be"
[[package]]
name = "env_logger"
@@ -202,9 +202,9 @@ dependencies = [
[[package]]
name = "getrandom"
-version = "0.2.6"
+version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad"
+checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
dependencies = [
"cfg-if",
"libc",
@@ -213,7 +213,7 @@ dependencies = [
[[package]]
name = "gfold"
-version = "4.0.0"
+version = "4.0.1"
dependencies = [
"anyhow",
"argh",
@@ -237,9 +237,9 @@ checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4"
[[package]]
name = "git2"
-version = "0.14.3"
+version = "0.14.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e77a14ffc6ba4ad5188d6cf428894c4fcfda725326b37558f35bb677e712cec"
+checksum = "d0155506aab710a86160ddb504a480d2964d7ab5b9e62419be69e0032bc5931c"
dependencies = [
"bitflags",
"libc",
@@ -285,9 +285,9 @@ dependencies = [
[[package]]
name = "itoa"
-version = "1.0.1"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"
+checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
[[package]]
name = "jobserver"
@@ -299,22 +299,16 @@ dependencies = [
]
[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-[[package]]
name = "libc"
-version = "0.2.125"
+version = "0.2.126"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5916d2ae698f6de9bfb891ad7a8d65c09d232dc58cc4ac433c7da3b2fd84bc2b"
+checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
[[package]]
name = "libgit2-sys"
-version = "0.13.3+1.4.2"
+version = "0.13.4+1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c24d36c3ac9b9996a2418d6bf428cc0bc5d1a814a84303fc60986088c5ed60de"
+checksum = "d0fa6563431ede25f5cc7f6d803c6afbc1c5d3ad3d4925d12c882bf2b526f5d1"
dependencies = [
"cc",
"libc",
@@ -324,9 +318,9 @@ dependencies = [
[[package]]
name = "libz-sys"
-version = "1.1.6"
+version = "1.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92e7e15d7610cce1d9752e137625f14e61a28cd45929b6e12e47b50fe154ee2e"
+checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf"
dependencies = [
"cc",
"libc",
@@ -366,9 +360,9 @@ dependencies = [
[[package]]
name = "miniz_oxide"
-version = "0.5.1"
+version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2b29bd4bc3f33391105ebee3589c19197c4271e3e5a9ec9bfe8127eeff8f082"
+checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc"
dependencies = [
"adler",
]
@@ -393,6 +387,12 @@ dependencies = [
]
[[package]]
+name = "once_cell"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
+
+[[package]]
name = "percent-encoding"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -406,27 +406,27 @@ checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
[[package]]
name = "proc-macro2"
-version = "1.0.38"
+version = "1.0.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9027b48e9d4c9175fa2218adf3557f91c1137021739951d4932f5f8268ac48aa"
+checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7"
dependencies = [
- "unicode-xid",
+ "unicode-ident",
]
[[package]]
name = "quote"
-version = "1.0.18"
+version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1"
+checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
dependencies = [
"proc-macro2",
]
[[package]]
name = "rayon"
-version = "1.5.2"
+version = "1.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd249e82c21598a9a426a4e00dd7adc1d640b22445ec8545feef801d1a74c221"
+checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d"
dependencies = [
"autocfg",
"crossbeam-deque",
@@ -436,9 +436,9 @@ dependencies = [
[[package]]
name = "rayon-core"
-version = "1.9.2"
+version = "1.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f51245e1e62e1f1629cbfec37b5793bbabcaeb90f30e94d2ba03564687353e4"
+checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f"
dependencies = [
"crossbeam-channel",
"crossbeam-deque",
@@ -474,9 +474,9 @@ checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342"
[[package]]
name = "ryu"
-version = "1.0.9"
+version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f"
+checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
[[package]]
name = "scopeguard"
@@ -486,18 +486,18 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
[[package]]
name = "serde"
-version = "1.0.137"
+version = "1.0.138"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1"
+checksum = "1578c6245786b9d168c5447eeacfb96856573ca56c9d68fdcf394be134882a47"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-version = "1.0.137"
+version = "1.0.138"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be"
+checksum = "023e9b1467aef8a10fb88f25611870ada9800ef7e22afce356bb0d2387b6f27c"
dependencies = [
"proc-macro2",
"quote",
@@ -506,9 +506,9 @@ dependencies = [
[[package]]
name = "serde_json"
-version = "1.0.81"
+version = "1.0.82"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c"
+checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7"
dependencies = [
"itoa",
"ryu",
@@ -517,13 +517,13 @@ dependencies = [
[[package]]
name = "syn"
-version = "1.0.93"
+version = "1.0.98"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04066589568b72ec65f42d65a1a52436e954b168773148893c020269563decf2"
+checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
dependencies = [
"proc-macro2",
"quote",
- "unicode-xid",
+ "unicode-ident",
]
[[package]]
@@ -586,10 +586,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
[[package]]
+name = "unicode-ident"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c"
+
+[[package]]
name = "unicode-normalization"
-version = "0.1.19"
+version = "0.1.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9"
+checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6"
dependencies = [
"tinyvec",
]
@@ -601,12 +607,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99"
[[package]]
-name = "unicode-xid"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04"
-
-[[package]]
name = "url"
version = "2.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -626,9 +626,9 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
[[package]]
name = "wasi"
-version = "0.10.2+wasi-snapshot-preview1"
+version = "0.11.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "winapi"
diff --git a/Cargo.toml b/Cargo.toml
index d505085..ac82ebc 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -10,7 +10,7 @@ readme = "README.md"
repository = "https://github.com/nickgerace/gfold/"
edition = "2021"
-version = "4.0.0"
+version = "4.0.1"
[dependencies]
anyhow = { version = "1", features = ["backtrace"] }
diff --git a/README.md b/README.md
index 74eafa8..f6aa96e 100644
--- a/README.md
+++ b/README.md
@@ -179,39 +179,11 @@ cargo install-update -a
### Download a Binary
If you do not want to use one of the above installation methods and do not want to clone the repository, you can download a binary from the [releases](https://github.com/nickgerace/gfold/releases) page.
+For an example on how to do that, refer to the [manual install](./docs/MANUAL_INSTALL.md) guide.
-#### Downloading and Installing the Binary
+### Build From Source
-If you would prefer to use a convenience script over downloading directly from the aforementioned releases page, we have one!
-You can execute the installation helper script on a compatible system with `bash` installed (e.g. macOS and Linux).
-
-```shell
-curl -s https://raw.githubusercontent.com/nickgerace/gfold/main/scripts/install.sh | bash
-```
-
-_Note:_ the installation convenience script _does not verify the binary with a checksum_.
-Discretion is advised, including downloading and reading the script before execution.
-
-#### Uninstalling the Downloaded Binary
-
-To uninstall `gfold` fully after using the above installation method, execute the following script:
-
-```shell
-curl -s https://raw.githubusercontent.com/nickgerace/gfold/main/scripts/uninstall.sh | bash
-```
-
-The uninstall script can also be used for cleanup in the event of a failed install.
-
-### Build From Source Locally
-
-If you want to install from source locally, and not from [crates.io](https://crates.io/crates/gfold), you can clone the repository and build `gfold`.
-
-```shell
-(
- git clone https://github.com/nickgerace/gfold.git
- cargo install --locked --path gfold
-)
-```
+If you would like an example on how to build from source, refer to the [manual install](./docs/MANUAL_INSTALL.md) guide.
### Preferred Installation Method Not Listed?
@@ -248,4 +220,4 @@ Name | Type | Description
[Arch Linux community repository](https://archlinux.org/packages/community/x86_64/gfold/) | packaging | the `gfold` package _(note: before moving to the community repository, the [AUR](https://github.com/orhun/PKGBUILDs) was previously used for distribution)_
["One Hundred Rust Binaries"](https://www.wezm.net/v2/posts/2020/100-rust-binaries/page2/) | article | featured `gfold`
[nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/version-management/git-and-tools/gfold/default.nix) | packaging | the `gfold` package
-[nvim-gfold.lua](https://github.com/AckslD/nvim-gfold.lua) | project | a `neovim` plugin for `gfold` *([announcement Reddit post](https://www.reddit.com/r/neovim/comments/t209wy/introducing_nvimgfoldlua/))*
+[nvim-gfold.lua](https://github.com/AckslD/nvim-gfold.lua) | project | a `neovim` plugin for `gfold` *([announcement Reddit post](https://www.reddit.com/r/neovim/comments/t209wy/introducing_nvimgfoldlua/))* \ No newline at end of file
diff --git a/docs/DEVELOPING.md b/docs/DEVELOPING.md
index 51113ac..929b42c 100644
--- a/docs/DEVELOPING.md
+++ b/docs/DEVELOPING.md
@@ -18,17 +18,11 @@ Now, ensure that lints, tests, and builds succeed.
```shell
cargo fmt --all -- --check
cargo clippy -- -D warnings
-cargo doc --all
-cargo test
+RUSTDOCFLAGS="-Dwarnings" cargo doc --all
+cargo test -- --nocapture
cargo build --all-targets
```
-> Alternatively, you can replace `cargo test` above with [cargo nextest](https://github.com/nextest-rs/nextest).
->
-> ```shell
-> cargo nextest run
-> ```
-
If you'd like to mass "fix" everything, you should commit/save existing work and execute the following:
```shell
@@ -36,10 +30,9 @@ cargo fix --all-targets --all-features --allow-dirty --allow-staged
cargo clippy --fix --all-features --all-targets --allow-dirty --allow-staged
```
-## Performance Checks
+## Running Performance Testing Scripts
-Navigate to the [README in the `scripts` directory](../scripts/README.md) for more information on
-how to run performance checks.
+For performance testing, navigate to the [README](../scripts/README.md) to get start.
## Optional Checks
diff --git a/docs/MANUAL_INSTALL.md b/docs/MANUAL_INSTALL.md
new file mode 100644
index 0000000..02e7473
--- /dev/null
+++ b/docs/MANUAL_INSTALL.md
@@ -0,0 +1,89 @@
+# Manual Install
+
+This document contains methods on how to install `gfold` "manually" (i.e. without a package manager or registry).
+
+## Download and Install a Binary on macOS and Linux
+
+Executing the commands in this section requires the following:
+
+- macOS or Linux (GNU, not MUSL) system
+- `x86_64 / amd64` architecture
+- `bash` shell (or compatible)
+- `jq`, `wget` and `curl` installed and in `PATH`
+
+First, let's ensure we have our prerequisite binaries installed.
+
+```bash
+for BINARY in "jq" "wget" "curl"; do
+ if ! [ "$(command -v ${BINARY})" ]; then
+ echo "\"$BINARY\" must be installed and in PATH"
+ return
+ fi
+done
+```
+
+Now, let's determine which binary we need to choose based on our platform.
+
+```bash
+INSTALL_OS=""
+if [ "$(uname -s)" = "Linux" ] && [ "$(uname -m)" = "x86_64" ]; then
+ INSTALL_OS="linux-gnu"
+elif [ "$(uname -s)" = "Darwin" ] && [ "$(uname -m)" = "x86_64" ]; then
+ INSTALL_OS="darwin"
+else
+ echo "must execute on Linux or Darwin x86_64 (x86_64 / amd64) host"
+ return
+fi
+```
+
+We need to determine to latest tag to build our release URL.
+
+```bash
+LATEST=$(curl -s https://api.github.com/repos/nickgerace/gfold/releases/latest | jq -r ".tag_name")
+```
+
+With the latest tag and platform determined, we can finally download and install `gfold` to `/usr/local/bin/`.
+
+```bash
+# Remove gfold if it is already in /tmp.
+if [ -f /tmp/gfold ]; then
+ rm /tmp/gfold
+fi
+
+# Perform the download.
+wget -O /tmp/gfold https://github.com/nickgerace/gfold/releases/download/$LATEST/gfold-$INSTALL_OS-amd64
+
+# Set executable permissions.
+chmod +x /tmp/gfold
+
+# Remove gfold if it is already in /usr/local/bin/.
+if [ -f /usr/local/bin/gfold ]; then
+ rm /usr/local/bin/gfold
+fi
+
+# Move gfold into /usr/local/bin/.
+mv /tmp/gfold /usr/local/bin/gfold
+```
+
+### Uninstalling and Cleaning Up
+
+If you would like to uninstall `gfold` and remove potential artifacts from the method above, execute the following:
+
+```bash
+# Remove potential installed and/or downloaded artifacts.
+rm /tmp/gfold
+rm /usr/local/bin/gfold
+
+# (Optional) remove the configuration file.
+rm $HOME/.config/gfold.toml
+ ```
+
+## Build From Source Locally with Cargo
+
+If you want to install from source locally, and not from [crates.io](https://crates.io/crates/gfold), you can clone the repository and build `gfold`.
+This should work on all major platforms.
+
+```shell
+git clone https://github.com/nickgerace/gfold.git
+cargo install --path gfold
+``` \ No newline at end of file
diff --git a/rustfmt.toml b/rustfmt.toml
new file mode 100644
index 0000000..43d4840
--- /dev/null
+++ b/rustfmt.toml
@@ -0,0 +1 @@
+newline_style = "Unix"
diff --git a/scripts/README.md b/scripts/README.md
index 513bacb..eb72c92 100644
--- a/scripts/README.md
+++ b/scripts/README.md
@@ -1,15 +1,15 @@
-# Scripts
+# Performance Testing Scripts
Run a script by executing `cargo run` in its directory.
```shell
-cd ./scripts/<script>/
-cargo run
+cd <path-to-root>/scripts/<script>/
+cargo run -q
```
-Alternatively, you can run `cargo run` from another directory.
+Alternatively, you can execute `cargo run` from another directory.
Here is an example:
```shell
-cargo run --manifest-path ./scripts/<script>/Cargo.toml
+cargo run -q --manifest-path <path-to-root>/scripts/<script>/Cargo.toml
``` \ No newline at end of file
diff --git a/scripts/install.sh b/scripts/install.sh
deleted file mode 100755
index 56de771..0000000
--- a/scripts/install.sh
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/env bash
-set -e
-
-function log {
- if [ ! "$1" ] || [ "$1" == "" ]; then
- die "internal error: log message empty: please file an issue: https://github.com/nickgerace/gfold/issues/new"
- fi
- echo "[gfold-installer] $1"
-}
-
-function die {
- if [ ! "$1" ] || [ "$1" == "" ]; then
- die "internal error: error message empty: please file an issue: https://github.com/nickgerace/gfold/issues/new"
- fi
- log "error: $1"
- exit 1
-}
-
-function check-dependencies {
- for BINARY in "jq" "wget" "curl"; do
- if ! [ "$(command -v ${BINARY})" ]; then
- die "\"$BINARY\" must be installed and in PATH"
- fi
- done
-}
-
-function perform-install {
- local INSTALL_OS
- if [ "$(uname -s)" = "Linux" ] && [ "$(uname -m)" = "x86_64" ]; then
- INSTALL_OS="linux-gnu"
- elif [ "$(uname -s)" = "Darwin" ] && [ "$(uname -m)" = "x86_64" ]; then
- INSTALL_OS="darwin"
- else
- die "must execute on Linux or Darwin x86_64 host (for more installation methods, refer to the docs: https://github.com/nickgerace/gfold)"
- fi
-
- LATEST=$(curl -s https://api.github.com/repos/nickgerace/gfold/releases/latest | jq -r ".tag_name")
- if [ -f /tmp/gfold ]; then
- rm /tmp/gfold
- fi
- wget -O /tmp/gfold https://github.com/nickgerace/gfold/releases/download/$LATEST/gfold-$INSTALL_OS-amd64
- chmod +x /tmp/gfold
-
- if [ -f /usr/local/bin/gfold ]; then
- rm /usr/local/bin/gfold
- fi
- mv /tmp/gfold /usr/local/bin/gfold
-
- if [ $INSTALL_OS = "linux-gnu" ]; then
- log "assuming glibc (GNU) and not another libc (e.g. musl-libc)"
- log "if using another libc, you may need to choose another installation method"
- log "for more information, refer to the docs: https://github.com/nickgerace/gfold"
- fi
- log "gfold has been installed to /usr/local/bin/gfold"
-}
-
-check-dependencies
-perform-install \ No newline at end of file
diff --git a/scripts/uninstall.sh b/scripts/uninstall.sh
deleted file mode 100755
index 25ca4df..0000000
--- a/scripts/uninstall.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/env bash
-set -e
-
-function log {
- if [ ! "$1" ] || [ "$1" == "" ]; then
- die "internal error: log message empty: please file an issue: https://github.com/nickgerace/gfold/issues/new"
- fi
- echo "[gfold-uninstaller] $1"
-}
-
-function die {
- if [ ! "$1" ] || [ "$1" == "" ]; then
- die "internal error: error message empty: please file an issue: https://github.com/nickgerace/gfold/issues/new"
- fi
- log "error: $1"
- exit 1
-}
-
-function perform-uninstall {
- for FILE in "/tmp/gfold" "/usr/local/bin/gfold"; do
- if [ -f "$FILE" ]; then
- rm "$FILE"
- log "deleted $FILE"
- fi
- done
- log "uninstallation and cleanup has completed successfully"
-
- if [ -f $HOME/.config/gfold.toml ]; then
- log "you may want to delete or backup the config file: $HOME/.config/gfold.toml"
- fi
-}
-
-perform-uninstall \ No newline at end of file