Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
ebfba10
Merge pull request #4 from puxplaying/next
puxplaying May 27, 2022
ded6f04
Update README.md
puxplaying May 27, 2022
e0088a9
[pkg-upd] 1.7.3-2 move backup array
puxplaying May 27, 2022
d2dc943
add support for "$HOME/.config"
puxplaying May 30, 2022
e4cab1c
cosmetic changes
puxplaying May 30, 2022
058d2c3
code refactoring
puxplaying May 31, 2022
df32116
more cosmetic changes
puxplaying May 31, 2022
49b9efd
code refactoring and cleaning
puxplaying May 31, 2022
9f3ae79
Update README.md
puxplaying May 31, 2022
289c2cd
Update README.md
puxplaying May 31, 2022
ad16357
[pkg-upd] 1.7.4-1
puxplaying Jun 6, 2022
b9dcd66
Update README.md
puxplaying Jun 18, 2022
ad26598
reworked online check
puxplaying Oct 1, 2022
60598e0
add a signal trap
puxplaying Oct 1, 2022
fab289a
cleaning and refactoring
puxplaying Oct 1, 2022
c9bc453
add Arch "devtools" support (Convenience Way)
puxplaying Oct 1, 2022
3a9ea24
add Arch "devtools" support (Convenience Way)
puxplaying Oct 1, 2022
258643d
add Arch "devtools" support (Convenience Way)
puxplaying Oct 1, 2022
fe1dff5
[pkg-upd] 1.8.0-1
puxplaying Oct 1, 2022
3a810c2
[prepare] backup array
puxplaying Oct 1, 2022
0f770b6
[prepare] 1.8.0-2 add optdepend (devtools)
puxplaying Oct 1, 2022
d7fed53
remove deprecated "buildpkg" support
puxplaying Oct 2, 2022
44d1cf6
remove deprecated "buildpkg" support
puxplaying Oct 2, 2022
a72c801
[pkg-upd] 1.8.1-1
puxplaying Oct 2, 2022
98cf6f3
[info] replace buildpkg with chrootbuild
puxplaying Oct 2, 2022
395623e
update readme
puxplaying Oct 2, 2022
f797192
allow commenting with "#" to ignore apps in a list
puxplaying Nov 19, 2022
87e6d7a
add "-e" option to edit pkg lists in a fzf menu
puxplaying Nov 20, 2022
fd90f93
fix typo
puxplaying Nov 28, 2022
ac116f6
[pkg-upd] 1.8.2-1
puxplaying Nov 28, 2022
19551ae
add explanation, cleaning
puxplaying Dec 2, 2022
8f99a8d
don't use git clean
puxplaying Jan 17, 2023
b4ff62e
Update PKGBUILD
puxplaying Apr 6, 2023
5d4883a
re-enable git clean as otherwise old patches won't be updated
puxplaying May 6, 2023
30b78d6
[pkg-upd] 1.8.4-1
puxplaying May 6, 2023
fb505d0
Update README.md
puxplaying Jun 1, 2024
3ad53f9
Update README.md
puxplaying Jun 1, 2024
c5a983e
small code fixes and improvements
puxplaying Jun 4, 2024
5f7b6ae
add /tmp cache to reduce r/w on disk when checking for updates
puxplaying Jun 4, 2024
6a7b275
use default "$DIR" of "autogit" for better portability
puxplaying Jun 6, 2024
c69cbd2
fix "chrootbuild" unset/empty "var", fix binary removal
puxplaying Jun 6, 2024
cedec07
adjust some code comments
puxplaying Jun 6, 2024
9de4527
update documentation, set new "CONFVER"
puxplaying Jun 6, 2024
90a9317
set new "CONFVER" , add info to (-e) option
puxplaying Jun 6, 2024
b1c0bf2
[pkg-upd] 1.9.0-1
puxplaying Jun 6, 2024
82144cb
[pkg-upd] 1.9.0-2
puxplaying Jun 6, 2024
3a010b8
Update README.md
puxplaying Jun 6, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 20 additions & 10 deletions PKGBUILD
Original file line number Diff line number Diff line change
@@ -1,21 +1,31 @@
# Maintainer: Georg Wagner (@puxplaying) <puxplaying@gmail.com>
# Maintainer: Georg Wagner <puxplaying_at_gmail_dot_com>

pkgname=autogit
pkgver=1.7.3
pkgrel=1
pkgver=1.9.0
pkgrel=2
pkgdesc="Auto build, update, install PKGBUILDS from Github, Gitlab and AUR"
arch=('any')
url="https://github.com/puxplaying/autogit"
license=('GPL3')
depends=('pacman' 'sudo' 'bash' 'curl' 'fzf')
makedepends=('git')
optdepends=('manjaro-tools-pkg: Needed for Manjaro clean chroot package building'
'manjaro-chrootbuild: Needed for Manjaro clean chroot package building')
license=('GPL-3.0-or-later')
depends=(
pacman
sudo
bash
curl
fzf
)
makedepends=(
git
)
optdepends=(
'manjaro-chrootbuild: Needed for Manjaro clean chroot package building'
'devtools: Needed for Arch Linux clean chroot package building'
)
backup=("etc/$pkgname/$pkgname.conf")
source=("$pkgname-$pkgver.tar.gz::$url/archive/$pkgver.tar.gz")
sha256sums=('4d26d4535b132a733e2f785cd641fc28a605005219f437cc3b16241822afc623')
sha256sums=('c5bd919507944703d3aa7ea75719dde43026da0a6de8fae6661c4488229ddd88')

package () {
backup=(etc/autogit/autogit.conf)
cd "$pkgname-$pkgver"
install -Dm755 "$pkgname" -t "$pkgdir/usr/bin/"
install -Dm644 "$pkgname.conf" -t "$pkgdir/etc/$pkgname/"
Expand Down
58 changes: 51 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,73 @@
# autogit

Autogit is a Bash tool to automatically build, update or install Pacman applications from PKGBUILD's available on Github, Gitlab and AUR via configurable `makepkg`, Manjaro `buildpkg` or `chrootbuild` commands. It can also create automatically repo names like *core*, *extra*, *community* and create/update a repo database file via `repo-add`. Additionally it clears each local repo with `paccache -v -r -k 1 -c` to only keep the latest package version.
Autogit is a Bash tool to automatically build, update or install Pacman applications from PKGBUILD's available on Github, Gitlab and AUR via configurable `makepkg`, [`devtools`](https://wiki.archlinux.org/title/DeveloperWiki:Building_in_a_clean_chroot#Convenience_way), or Manjaro `chrootbuild` commands. It can also create automatically repo names like *core*, *extra*, *community* and create/update a repo database file via `repo-add`. Additionally it clears each local repo with `paccache` to only keep the latest package version.

2 different options are available to compare and update applications. In case of a "-git" package it checks for the latest commit to update and can either run once or in a loop with a timer setting.
Basically if you want to avoid a "git clone" and the rest of the procedure each time a PKGBUILD has been updated and trust the source, then this tool might be for you. Here are some examples:
- Auto create your own local repositories, add them to `/etc/pacman.conf` and update with Pacman.
- Compile packages from different sources into one repository while building all in a clean "chroot", e.g. AUR, Gitlab, Github.
- Compile the same package from different branches into different repositories, or add a "-git" PKGBUILD for development on a different branch etc.
- Use "makepkg" to directly install packages after compilation.

More information on how to set it up is available in autogit.conf, examples are included.
Two different options are available to compare and update applications. In case of a "-git" package it checks for the latest commit to update and can either run once or in a loop with a timer setting.

More information on how to set it up is available in [autogit.conf](https://github.com/puxplaying/autogit/blob/master/autogit.conf), examples are included.

Currently the AUR, 6 Github and 6 Gitlab sources are available to use. There is no limitation of packages for each source, which need to be added to the *reponames* folder source files.

In sum 13 different repos can be enabled/created and will be updated together.

---

How to install:

This package is available on [Manjaro](https://packages.manjaro.org/?query=autogit) and the [AUR](https://aur.archlinux.org/packages/autogit).

From source:

- `sudo pacman -Syu base-devel git`
- `git clone https://github.com/puxplaying/autogit.git `
- `cd autogit`
- `makepkg -srci`

---

How to run:

- `autogit`
- `autogit -h`
- Run `autogit` after installation to create a local configuration
- `autogit -h` (Help Page and fzf-UI options to manage packages)

```
Welcome to Autogit's Help Page!

Autogit runs by default without flags.
In order to run autogit, edit the options in
"/YourDirectory/autogit/autogit.conf"

The provided flags will run a fzf UI to manage packages.

autogit [options]:

-e, --edit - [EDIT]
Edit Package List Entries (Commenting With '#' Is Supported)
NOTE: Make Sure That The (EDITOR) Environment Variable Is Set On Your System!

-d, --dryrun - [DRY RUN]
Dry Run To Remove Packages - (Nothing Will Be Touched)

-b, --build - [REBUILD PACKAGES]
Remove Package Source(s), Binary(s) And Rebuild The Packge(s)

-r, --remove - [REMOVE PACKAGES]
Remove Package Source(s), Binary(s), Package List Entry(s),
Old Database Files And Run "repo-add" If Enabled

-h, --help - This Help Text
```

To run it automatically without a password prompt for `chrootbuild`, it can be added to `sudoers` via:

To run it automatically without a password prompt for `buildpkg`, it can be added to `sudoers` via:
`echo "$USER ALL = NOPASSWD: /usr/bin/chrootbuild" | sudo tee /etc/sudoers.d/$USER`

`echo "$USER ALL = NOPASSWD: /usr/bin/buildpkg" | sudo tee /etc/sudoers.d/$USER`
---

![123](https://user-images.githubusercontent.com/28549766/103438530-0b81d300-4c34-11eb-9ea1-a49542fabc4f.png)
Loading