Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create missing directories and support relative source paths #268

Open
wants to merge 115 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
cfcfdd9
mrkajetanp's dotfiles in example repositories
mrkajetanp Oct 19, 2020
babc78b
feat(intall): add preinstall configuration clean up
oknozor Oct 22, 2020
29be691
test: add dockerized bats test suite
oknozor May 15, 2021
f5a326a
chore: fix clippy lints
oknozor May 15, 2021
8035c61
chore: fix bats-file submodule remote
oknozor May 15, 2021
7ef913e
ci: add github action step for e2e bats tests
oknozor May 15, 2021
48b74b7
docs: add a toml bombadil website
oknozor May 16, 2021
995ff2d
docs: add docs to the website, variable quick start etc
oknozor May 16, 2021
37344d1
chore: deploy GH page with github actions
oknozor May 16, 2021
b7cdd35
fix: fix empty var files in dot overrides
oknozor May 17, 2021
3c16c82
fix: unlink command now correctly remove dots based on previous config
oknozor May 19, 2021
b65d150
docs(website): update page on profiles and variables
oknozor May 19, 2021
aa64d57
fix(website): fix toc ordering
oknozor May 19, 2021
edbe4bf
docs: update tests and docummentation on profile and vars
oknozor May 21, 2021
2e57530
fix: Secrets are now correctly decryted and injected on install
oknozor May 22, 2021
becad6d
docs(website): update profiles and themes sections
oknozor May 25, 2021
1034c36
chore: add aur package as a submodule
oknozor May 25, 2021
8c1cf88
chore: add cargo home page and cog bump config
oknozor May 25, 2021
0f6b104
docs(website): update intro and add a changelog blogpost on v2
oknozor May 25, 2021
f479e13
ci: prepare website deployment from main branch
oknozor May 25, 2021
8465509
chore: remove aur submodule, it can't be checked out in github CI
oknozor May 25, 2021
ea6eac4
chore: ignore aur package
oknozor May 25, 2021
e1b25d1
ci: add a checkbranch script for cog bump
oknozor May 25, 2021
2717e86
chore: fix action CD script
oknozor May 25, 2021
caa85ad
chore(version): 2.0.0
oknozor May 25, 2021
37096cd
docs: add link to bombadil website in the readme
oknozor May 31, 2021
4a21843
feat: add post install hooks, rename hooks to posthooks
Aug 8, 2021
da56a4d
docs: updated documentation for hooks
Aug 21, 2021
337874e
test: fixed test code
Aug 21, 2021
2e7b651
feat: add pre&post hook to get command
Aug 21, 2021
9f56272
docs: Fix minor grammar issue
HaoZeke Jul 16, 2021
36b82b0
chore: clippy lints and fmt *
oknozor Aug 24, 2021
c5e3c81
docs: Add use-case
HaoZeke Apr 12, 2021
8485455
docs: update link command examples
oknozor Sep 12, 2021
98afb6c
feat: clone dotfiles from remote
oknozor Aug 24, 2021
ede6828
docs: document public functions
oknozor Aug 24, 2021
9a43dca
docs: fix default language
oknozor Aug 24, 2021
3032204
test: fix config path in tests
oknozor Sep 12, 2021
14ed188
fix: Fill in missing fmt argument in error message
dtolnay Nov 3, 2021
20696fc
chore: add github sponsor
oknozor Nov 5, 2021
da2efdf
docs(website): fix website logo display
oknozor Nov 6, 2021
078d22b
chore: update cocogitto bump config
oknozor Nov 21, 2021
7f110de
chore(version): 2.1.0
oknozor Nov 21, 2021
821c1c8
ci: fix release action workflow
oknozor Nov 21, 2021
7741f39
feat: add extra profiles
oknozor Dec 30, 2021
482e9ae
chore: fix clippy lints
oknozor Dec 30, 2021
9307457
ci: add automated release, dependabot and github codeowners
oknozor Dec 30, 2021
3780d09
docs: update documentation and shorten README
oknozor Dec 30, 2021
2ee87e0
chore(deps): update dirs requirement from ^3 to ^4
dependabot[bot] Dec 30, 2021
a321566
ci: add cargo bump to build deps
oknozor Dec 30, 2021
545b88e
chore(version): 2.2.0
Dec 30, 2021
e104eb0
fix: use a single release github action workflow
oknozor Dec 30, 2021
5a7ff4d
chore(version): 2.2.1
Dec 30, 2021
0279e96
fix: fix release version job output
oknozor Dec 30, 2021
5b44f46
chore(version): 2.2.2
Dec 30, 2021
a9963e7
fix: fix release version job output again
oknozor Dec 30, 2021
177f1ba
chore(version): 2.2.3
Dec 30, 2021
d4d87a8
docs: Link bats HOWTO directly to abs github URL
kakawait Jan 4, 2022
d516414
docs: remove DSpeckhals example repositories
kakawait Jan 4, 2022
f6dae99
docs: typo on punctuations
kakawait Jan 4, 2022
bac3b31
chore: Add cargo.lock to project
Nukesor Jan 30, 2022
87eeeb5
ci: update codecov action
oknozor Feb 2, 2022
ae610e0
chore: use 2018 module imports
Nukesor Feb 2, 2022
409baf0
docs: update displayed version to be bombadil version
kakawait Jan 4, 2022
eacf932
fix: fix release github action workflow
oknozor Feb 14, 2022
3880658
fix: run cargo bump early in cog.toml so Cargo.lock is updated after …
oknozor Feb 19, 2022
c187cc6
chore(version): 2.2.4
Feb 19, 2022
787b4ba
chore(deps): bump anyhow from 1.0.53 to 1.0.55
dependabot[bot] Feb 22, 2022
c57a5d5
chore: Add codecov.yml and configure a threshold of 1%
svenstaro Feb 23, 2022
0a528fd
feat!: use tera for templating
Nukesor Feb 2, 2022
d0d9f5c
chore(version): 3.0.0
Feb 23, 2022
900a994
docs: Add updated installation instructions for Arch Linux
svenstaro Feb 23, 2022
f789e22
docs(website): Add a changelog blogpost on v3
Nukesor Feb 24, 2022
90b43e8
docs(website): Update dotfile templating guide for v3
Nukesor Feb 24, 2022
3ecc202
chore: Fix Arch installation instructions in book
svenstaro Feb 27, 2022
9b03122
chore: Various smaller doc fixes
svenstaro Feb 27, 2022
4c6009e
chore: bump libgit2 to 0.14
oknozor Apr 5, 2022
c3e798c
refactor(cli): update to clap v3
oknozor Feb 14, 2022
9e11fe7
chore: use a fixed version of rust in bats test docker image
oknozor Apr 5, 2022
7076663
refactor: simplify bombadil link
oknozor Apr 5, 2022
eb025ad
refactor: check profile activation in the lib instead of the cli
oknozor Apr 5, 2022
e5b8ceb
feat: Add bombadil watch feature
svenstaro Apr 14, 2022
455eef3
test: add sealed test to preserve developer environement
oknozor Apr 5, 2022
7e31e00
ci: switch code coverage to cargo-llvm-cov
oknozor Apr 9, 2022
5e3c148
fix: display undeclared variables when rendering templates
oknozor Apr 28, 2022
9515982
chore(version): 3.1.0
May 11, 2022
c803bfb
refacor: split paths and settings into dedicated modules
oknozor May 2, 2022
88d0380
refactor: use lazy static for gpg and dotfile dir
oknozor May 2, 2022
f475d6c
chore: remove install module
oknozor Jul 15, 2022
20432d6
fix: bump watchexec to 2.0.0
oknozor Jul 15, 2022
3741aee
test: fix bats test and add dockerignore
oknozor Jul 15, 2022
c7c63c4
fix: fix ignored path
oknozor Jul 15, 2022
0d89c77
fix: make install not remove current config on failure
oknozor Jul 15, 2022
19cb490
chore: bump dependencies
oknozor Jul 15, 2022
f7bb7ce
feat(link): link only dotfiles with diff
oknozor Jul 15, 2022
e270b03
fix(watch): detech changes on .dot directory
oknozor Nov 29, 2022
3a3099e
test: change expired gpg test keys
oknozor Nov 29, 2022
fdc3d2b
chore: clippy lints
oknozor Nov 29, 2022
1b7d5b8
ci: update ci and cog.toml
oknozor Nov 29, 2022
4323090
test(git): add bombadil clone test
oknozor Nov 29, 2022
29bdb44
feat(template): access profiles in tera context
oknozor Nov 29, 2022
5d2b5a4
chore: bump cargo deps
oknozor Nov 29, 2022
1821e22
chore: bump clap to v4
oknozor Nov 29, 2022
c5aa644
chore: ignore website with github linguist
oknozor Nov 29, 2022
b28834a
chore: remove website build before migrating to vuepress
oknozor Nov 29, 2022
3a3609c
chore(deps): bump speculoos from 0.9.0 to 0.10.0
dependabot[bot] Nov 30, 2022
99fcad5
docs: Fix typos/grammar
salim-b Jan 1, 2023
8449e66
Minor typo
ShoyuVanilla Apr 11, 2023
5d34951
chore: update deps and fix clippy lints
dnaka91 Jun 3, 2023
dbe6ab0
Support relative source paths in imports
kwiesmueller Jul 11, 2024
eea4f01
Bump dependencies
kwiesmueller Jul 11, 2024
38e0b20
Improve management of privileged files and hook execution
kwiesmueller Jul 14, 2024
3df5029
Run cargo fmt
kwiesmueller Jul 14, 2024
9f4436e
Move existing targets into a backup folder and overwrite them
kwiesmueller Jul 14, 2024
15e554e
Add a way to hard copy files to their target destination with specifi…
kwiesmueller Jul 14, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 7 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
target/
contrib/
config_examples/
ci/
asset/
website/
.github/
5 changes: 5 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
website/** linguist-documentation
bats-tests/** linguist-documentation
ci/**linguist-documentation
config_examplesi/** linguist-documentation
asset/** linguist-documentation
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @oknozor
1 change: 1 addition & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
github: oknozor
8 changes: 8 additions & 0 deletions .github/dependabot.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
version: 2
updates:
- package-ecosystem: cargo
directory: /
schedule:
interval: daily
time: "14:05"
open-pull-requests-limit: 10
46 changes: 0 additions & 46 deletions .github/workflows/CD.yml

This file was deleted.

42 changes: 24 additions & 18 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,34 +15,27 @@ jobs:
- name: Checkout sources
uses: actions/checkout@v2

- name: Add gpg test key pair
run: |
gpg --import tests/gpg/public.gpg
gpg --import tests/gpg/private.gpg
echo -e "5\ny\n" | gpg --no-tty --command-fd 0 --expert --edit-key [email protected] trust

- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: llvm-tools-preview

- name: Test
uses: actions-rs/[email protected]
with:
args: '-- --test-threads 1'
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov

- name: Upload to codecov.io
uses: codecov/[email protected]
- uses: actions-rs/cargo@v1
with:
token: ${{secrets.CODECOV_TOKEN}}
command: llvm-cov
args: --ignore-filename-regex bin --all-features --workspace --lcov --output-path lcov.info

- name: Archive code coverage results
uses: actions/upload-artifact@v1
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
with:
name: code-coverage-report
path: cobertura.xml
files: lcov.info
fail_ci_if_error: true

lints:
name: Lints & Format
Expand Down Expand Up @@ -71,4 +64,17 @@ jobs:
continue-on-error: false
with:
command: clippy
args: -- -D warnings
args: -- -D warnings
e2e:
name: End to end tests
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v2
with:
submodules: recursive

- name: Run bats test harnesss
run: |
docker build -t bombadil-tests ./
docker run bombadil-tests
101 changes: 101 additions & 0 deletions .github/workflows/Release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
name: Release

on:
workflow_dispatch:
branches: main

jobs:
release:
outputs:
version: ${{ steps.release.outputs.version }}
runs-on: ubuntu-latest
name: Perform release

steps:
- name: Checkout sources
uses: actions/checkout@v2
with:
submodules: recursive
fetch-depth: 0

- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: rustfmt, clippy

- name: Add gpg test key pair
run: |
gpg --import tests/gpg/public.gpg
gpg --import tests/gpg/private.gpg
echo -e "5\ny\n" | gpg --no-tty --command-fd 0 --expert --edit-key [email protected] trust

- name: Setup cargo
run: |
cargo install cargo-bump
cargo login ${{ secrets.CARGO_TOKEN }}

# version publish steps are managed by cocogitto, see `cog.toml`
# and https://github.com/oknozor/cocogitto-action for more info
- name: Semver release
id: release
uses: oknozor/[email protected]
with:
release: true
check-latest-tag-only: true

- name: Generate Changelog
run: |
echo "::set-output name=version::${{ steps.release.outputs.version }}"
cog changelog --at ${{ steps.release.outputs.version }} -t full_hash > GITHUB_CHANGELOG.md

- name: Upload github release
uses: softprops/action-gh-release@v1
with:
body_path: GITHUB_CHANGELOG.md
tag_name: ${{ steps.release.outputs.version }}

binary:
needs: release
name: Publish binary for ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
# This should work with only the `include`s but it currently doesn't because of this bug:
# https://github.community/t5/How-to-use-Git-and-GitHub/GitHub-Actions-Matrix-options-dont-work-as-documented/td-p/29558
target: [ x86_64-osx, x86_64-unknown-linux-musl, armv7-unknown-linux-musleabihf, armv7-linux-androideabi, aarch64-linux-android ]
include:
- os: macos-latest
target: x86_64-osx
- os: ubuntu-latest
target: x86_64-unknown-linux-musl
- os: ubuntu-latest
target: armv7-unknown-linux-musleabihf
- os: ubuntu-latest
target: armv7-linux-androideabi
- os: ubuntu-latest
target: aarch64-linux-android

steps:
- name: install open-ssl
if: ${{ runner.os == 'Linux' }}
run: |
sudo apt-get -y install libssl-dev pkg-config musl-dev musl-tools

- uses: hecrj/setup-rust-action@v1
with:
rust-version: stable

- uses: actions/checkout@v1
- name: Build
run: ci/action.sh release ${{ matrix.target }}

- name: Upload binaries to release
uses: svenstaro/upload-release-action@v1-release
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: target/tar/bombadil.tar.gz
tag: ${{ github.ref }}
asset_name: bombadil-${{needs.release.outputs.version}}-${{ matrix.target }}.tar.gz
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/target
Cargo.lock
.idea
*.bk
test_tmp*
.dots/
.dots/
packages/
12 changes: 12 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[submodule "bats-tests/bats-assert"]
path = bats-tests/bats-assert
url = [email protected]:bats-core/bats-assert.git
[submodule "bats-tests/bats-support"]
path = bats-tests/bats-support
url = [email protected]:bats-core/bats-support.git
[submodule "bats-tests/bats-file"]
path = bats-tests/bats-file
url = [email protected]:bats-core/bats-file.git
[submodule "bats-tests/bats"]
path = bats-tests/bats
url = https://github.com/bats-core/bats-core.git
Loading