# .zshrc Flutter alias

# Opa, blz ?

### Esse vai ser meu 1º post, então resolvi começar com algo simples e que me ajuda muito a agilizar alguns comandos do dia a dia

Bom, se vc achou esse post, é pq procurou né ? então vou assumir que vc já tenha configurado o "[oh my zsh](https://ohmyz.sh)" e o [flutter](https://docs.flutter.dev/get-started/install), caso esse não for o caso, instale e ai depois volte a ler blz ? A, outra coisa, essa configuração é feita no macOS, e eu só garanto q vá funcionar nela, blz ? mas, bem provavelmente funcione no linux, [agora no windows, é diferente !](https://blog.efemazieri.dev/windows-flutter-alias)

## Então vamos lá

Provavelmente seu ".zshrc" termina com o caminho do seu flutter/fvm [(não usa o fvm ? recomendo usar em, é bem simples instalar)](https://fvm.app/docs/getting_started/installation/), ou algum outro caminho, o final do meu é assim:
```zsh
export PATH="$PATH:/Users/felipemazieri/fvm/default/bin"
export PATH="$PATH":"$HOME/.pub-cache/bin"
export CHROME_EXECUTABLE="/Applications/Brave\ Browser.app/Contents/MacOS/Brave\ Browser"
``` 

E lendo o .zshrc um pouco pra cima desses ```export``` provavelmente tem um "Example aliases" e é ai q vamos "configurar" nossos alias, apagando/descomentando os exemplos ou só escrevendo embaixo deles mesmo e eu recomendo fortemente alguns caso vc use muito flavors (afinal é bem chato ficar digitando aquele código gigante toda vez né ?), então ficaria assim, vc pode copiar e colocar no seu .zshrc ou escrever vc mesmo, ai vai de vc, só não esquece de salvar e dar ```source ~/.zshrc``` no terminal para "ativar" o q vc fez em, esse são os meus alias:

```zsh
alias f="fvm flutter"
alias fd="fvm flutter doctor"
alias pg="fvm flutter pub get"
alias runw="fvm flutter run -d web-server"
alias web="fvm flutter build web --release"
alias clean="fvm flutter clean"
alias br="fvm flutter pub run build_runner build --delete-conflicting-outputs"
bundle() {
    fvm flutter build appbundle --flavor=$1 -t lib/flavors/$1/main-$1.dart
}
assinar() {
    keytool -genkey -v -keystore android/app/src/$1/${2}Key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias $1
}
```

Esses 2 últimos são os q + uso, o ```bundle``` pra criar um appbundle, passando o nome do flavor logo em seguida do comando, ficando assim ```bundle flavor```, o nome passado vai substituir todos os ```$1``` do comando e o ```assinar``` segue a mesma ideia, só que passando 2 parâmetros depois do comando, por um padrão de nome na empresa, ficando assim o comando ```assinar flavor Flavor``` e da mesma forma do anterior, esse o 1º parâmetro substitui todos os ```$1``` e o 2º todos os ```$2``` 

# `OBS #2`

> Não estranhe o #2 vir antes do #1, achei melhor colocar a solução antes do "problema", enfim... 

> DESCOBRI ! como resolver, mas não entendi o pq do terminal ficar chamando o ```assinar``` ou o ```bundle```, mas resolver é bem simples, (talvez vc nem tenha pegado o erro, mas msm assim vou deixar o histórico aqui)... é só remover a palavra ```alias``` da frente da nome da função, então o 1º q é ```alias bundle()``` passar a ser só ```bundle()``` e isso serve pro 2º q fica só ```assinar()``` e também pra qualquer um outro alias com argumentos q vc tiver

# `OBS #1`

> Por algum motivo, q eu não entendi ainda, do nada ele começou a tentar executar os comandos ```bundle``` e ```assinar``` sozinho (no caso, ele sempre tenta executar o ultimo q do arquivo .zshrc), pra cancelar é só usar o famoso ```ctrl + c``` várias vezes q vai encerrar o processo e pronto, volta a funcionar normal... quando eu entender/resolver isso, eu volto aqui e atualizo !

---

# Bom, acho q é isso, obrigado por ler !

Se eu falei alguma besteira, me corrija pf, e se tiver um tempo, se inscreva na minha newsletter e fique a vontade para se [conectar](https://www.linkedin.com/in/felipemazieri/)

> ***Como a minha classe favorita do Ragnarok, Super Aprendiz, sou um Eterno Aprendiz***

n0 | v1.6
