Skip to content

Latest commit

 

History

History
305 lines (250 loc) · 15.8 KB

File metadata and controls

305 lines (250 loc) · 15.8 KB

All Contributors

Mentioned in Awesome Go reviewdog Coverage Go Reference Go Report Card GitHub

日本語 | Русский | 中文 | 한국어 | Español | English

gup - Mettre à jour les binaires installés par "go install"

sample

La commande gup met à jour les binaires installés par "go install" vers la dernière version. gup met à jour tous les binaires en parallèle, donc très rapidement. Elle fournit également des sous-commandes pour manipuler les binaires sous $GOPATH/bin ($GOBIN). C'est un logiciel multiplateforme qui fonctionne sur Windows, Mac et Linux.

Si vous utilisez oh-my-zsh, alors gup a un alias configuré. L'alias est gup - git pull --rebase. Par conséquent, assurez-vous que l'alias oh-my-zsh est désactivé (par exemple $ \gup update).

Changement incompatible (v1.0.0)

  • Le format de configuration est passé de gup.conf à gup.json.
  • gup import ne lit plus gup.conf.
  • Le canal de mise à jour par package (latest / main / master) est stocké dans gup.json.

OS supportés (tests unitaires avec GitHub Actions)

  • Linux
  • Mac
  • Windows

Comment installer

gup est aussi disponible via winget, mise et nix, en plus de go install et Homebrew.

Utiliser "go install"

Si vous n'avez pas l'environnement de développement golang installé sur votre système, veuillez installer golang depuis le site officiel golang.

go install github.com/nao1215/gup@latest

Utiliser homebrew

brew install nao1215/gup

Utiliser winget (Windows)

winget install --id nao1215.gup

Utiliser mise-en-place

mise use -g gup@latest

Utiliser nix (profil Nix)

nix profile install nixpkgs#gogup

Installer depuis un package ou un binaire

La page de release contient des packages aux formats .deb, .rpm et .apk. La commande gup utilise la commande go en interne, donc l'installation de golang est requise.

Comment utiliser

Mettre à jour tous les binaires

Si vous voulez mettre à jour tous les binaires, exécutez simplement $ gup update.

$ gup update
update binary under $GOPATH/bin or $GOBIN
[ 1/30] github.com/cheat/cheat/cmd/cheat (Already up-to-date: v0.0.0-20211009161301-12ffa4cb5c87 / go1.22.4)
[ 2/30] fyne.io/fyne/v2/cmd/fyne_demo (Already up-to-date: v2.1.3 / go1.22.4)
[ 3/30] github.com/nao1215/gal/cmd/gal (v1.0.0 to v1.2.0 / go1.22.4)
[ 4/30] github.com/matsuyoshi30/germanium/cmd/germanium (Already up-to-date: v1.2.2 / go1.22.4)
[ 5/30] github.com/onsi/ginkgo/ginkgo (Already up-to-date: v1.16.5 / go1.22.4)
[ 6/30] github.com/git-chglog/git-chglog/cmd/git-chglog (Already up-to-date: v0.15.1 / go1.22.4)
   :
   :

Mettre à jour le binaire spécifié

Si vous voulez mettre à jour seulement les binaires spécifiés, vous spécifiez plusieurs noms de commandes séparés par un espace.

$ gup update subaru gup ubume
update binary under $GOPATH/bin or $GOBIN
[1/3] github.com/nao1215/gup (v0.7.0 to v0.7.1, go1.20.1 to go1.22.4)
[2/3] github.com/nao1215/subaru (Already up-to-date: v1.0.2 / go1.22.4)
[3/3] github.com/nao1215/ubume/cmd/ubume (Already up-to-date: v1.4.1 / go1.22.4)

Exclure des binaires pendant gup update

Si vous ne voulez pas mettre à jour certains binaires, spécifiez simplement les binaires qui ne doivent pas être mis à jour en les séparant par ',' sans espaces comme délimiteur. Fonctionne aussi en combinaison avec --dry-run

$ gup update --exclude=gopls,golangci-lint    //--exclude or -e, cet exemple exclura 'gopls' et 'golangci-lint'

Mettre à jour les binaires avec @main, @master ou @latest

Si vous voulez contrôler la source de mise à jour par binaire, utilisez les options suivantes :

  • --main (-m) : met à jour avec @main (repli sur @master en cas d'échec)
  • --master : met à jour avec @master
  • --latest : met à jour avec @latest

Le canal sélectionné est enregistré dans gup.json et réutilisé lors des prochaines exécutions de gup update.

$ gup update --main=gup,lazygit --master=sqly --latest=air

Lister le nom de commande avec le chemin de package et la version sous $GOPATH/bin

La sous-commande list affiche les informations de commande sous $GOPATH/bin ou $GOBIN. Les informations affichées sont le nom de la commande, le chemin du package et la version de la commande. sample

Supprimer le binaire spécifié

Si vous voulez supprimer une commande sous $GOPATH/bin ou $GOBIN, utilisez la sous-commande remove. La sous-commande remove demande si vous voulez la supprimer avant de la supprimer.

$ gup remove subaru gal ubume
gup:CHECK: remove /home/nao/.go/bin/subaru? [Y/n] Y
removed /home/nao/.go/bin/subaru
gup:CHECK: remove /home/nao/.go/bin/gal? [Y/n] n
cancel removal /home/nao/.go/bin/gal
gup:CHECK: remove /home/nao/.go/bin/ubume? [Y/n] Y
removed /home/nao/.go/bin/ubume

Si vous voulez forcer la suppression, utilisez l'option --force.

$ gup remove --force gal
removed /home/nao/.go/bin/gal

Vérifier si le binaire est la dernière version

Si vous voulez savoir si le binaire est la dernière version, utilisez la sous-commande check. La sous-commande check vérifie si le binaire est la dernière version et affiche le nom du binaire qui doit être mis à jour.

$ gup check
check binary under $GOPATH/bin or $GOBIN
[ 1/33] github.com/cheat/cheat (Already up-to-date: v0.0.0-20211009161301-12ffa4cb5c87 / go1.22.4)
[ 2/33] fyne.io/fyne/v2 (current: v2.1.3, latest: v2.1.4 / current: go1.20.2, installed: go1.22.4)
   :
[33/33] github.com/nao1215/ubume (Already up-to-date: v1.5.0 / go1.22.4)

If you want to update binaries, the following command.
           $ gup update fyne_demo gup mimixbox

Comme les autres sous-commandes, vous pouvez seulement vérifier les binaires spécifiés.

$ gup check lazygit mimixbox
check binary under $GOPATH/bin or $GOBIN
[1/2] github.com/jesseduffield/lazygit (Already up-to-date: v0.32.2 / go1.22.4)
[2/2] github.com/nao1215/mimixbox (current: v0.32.1, latest: v0.33.2 / go1.22.4)

If you want to update binaries, the following command.
           $ gup update mimixbox

Sous-commandes Export/Import

Utilisez export/import si vous voulez installer les mêmes binaires golang sur plusieurs systèmes. gup.json stocke l'import path, la version du binaire et le canal de mise à jour (latest / main / master). import installe exactement la version écrite dans le fichier.

{
  "schema_version": 1,
  "packages": [
    {
      "name": "gal",
      "import_path": "github.com/nao1215/gal/cmd/gal",
      "version": "v1.1.1",
      "channel": "latest"
    },
    {
      "name": "posixer",
      "import_path": "github.com/nao1215/posixer",
      "version": "v0.1.0",
      "channel": "main"
    }
  ]
}

Par défaut :

  • gup export écrit dans $XDG_CONFIG_HOME/gup/gup.json
  • gup import détecte automatiquement le chemin du fichier dans cet ordre :
    1. $XDG_CONFIG_HOME/gup/gup.json (s'il existe)
    2. ./gup.json (s'il existe)

Vous pouvez toujours forcer le chemin avec --file.

※ Environnement A (par exemple ubuntu)
$ gup export
Export /home/nao/.config/gup/gup.json

※ Environnement B (par exemple debian)
$ gup import

Alternativement, export peut afficher le contenu de gup.json sur STDOUT avec --output. import peut lire un fichier spécifique avec --file.

※ Environnement A (par exemple ubuntu)
$ gup export --output > gup.json

※ Environnement B (par exemple debian)
$ gup import --file=gup.json

Générer les pages de manuel (pour linux, mac)

La sous-commande man génère les pages de manuel sous /usr/share/man/man1.

$ sudo gup man
Generate /usr/share/man/man1/gup-bug-report.1.gz
Generate /usr/share/man/man1/gup-check.1.gz
Generate /usr/share/man/man1/gup-completion.1.gz
Generate /usr/share/man/man1/gup-export.1.gz
Generate /usr/share/man/man1/gup-import.1.gz
Generate /usr/share/man/man1/gup-list.1.gz
Generate /usr/share/man/man1/gup-man.1.gz
Generate /usr/share/man/man1/gup-remove.1.gz
Generate /usr/share/man/man1/gup-update.1.gz
Generate /usr/share/man/man1/gup-version.1.gz
Generate /usr/share/man/man1/gup.1.gz

Générer le fichier d'autocomplétion shell (pour bash, zsh, fish et PowerShell)

completion affiche les scripts d'autocomplétion sur STDOUT quand vous fournissez un nom de shell. Pour installer les fichiers d'autocomplétion dans votre environnement utilisateur pour bash/fish/zsh, utilisez --install. Pour PowerShell, redirigez la sortie vers un fichier .ps1 et chargez-le depuis votre profil.

$ gup completion bash > gup.bash
$ gup completion zsh > _gup
$ gup completion fish > gup.fish
$ gup completion powershell > gup.ps1

# Installer automatiquement les fichiers dans les chemins utilisateur par défaut
$ gup completion --install

Notification de bureau

Si vous utilisez gup avec l'option --notify, la commande gup vous notifie sur votre bureau si la mise à jour a réussi ou échoué après la fin de la mise à jour.

$ gup update --notify

success warning

Contribuer

Tout d'abord, merci de prendre le temps de contribuer ! ❤️ Voir CONTRIBUTING.md pour plus d'informations. Le workflow de développement, la checklist qualité et la gestion des outils sont documentés dans CONTRIBUTING.md. Les contributions ne sont pas seulement liées au développement. Par exemple, GitHub Star me motive à développer !

Historique des étoiles

Star History Chart

Contact

Si vous souhaitez envoyer des commentaires tels que "trouvé un bug" ou "demande de fonctionnalités supplémentaires" au développeur, veuillez utiliser l'un des contacts suivants.

Vous pouvez utiliser la sous-commande bug-report pour envoyer un rapport de bug.

$ gup bug-report
※ Open GitHub issue page by your default browser

LICENCE

Le projet gup est sous licence selon les termes de la Licence Apache 2.0.

Contributeurs ✨

Merci à ces personnes formidables (clé des emojis) :

CHIKAMATSU Naohiro
CHIKAMATSU Naohiro

💻
KEINOS
KEINOS

💻
mattn
mattn

💻
Justin Lecher
Justin Lecher

💻
Lincoln Nogueira
Lincoln Nogueira

💻
Masaya Watanabe
Masaya Watanabe

💻
memreflect
memreflect

💻
Akimo
Akimo

💻
rkscv
rkscv

💻
Ville Skyttä
Ville Skyttä

💻
Zephyr Lykos
Zephyr Lykos

💻
iTrooz
iTrooz

💻
Tiago Peczenyj
Tiago Peczenyj

💻

Ce projet suit la spécification all-contributors. Les contributions de toute sorte sont les bienvenues !