semvec/pypi-packages huggingface dataset:
installcmd-metov 0.2.0
Print correct command for installing a package.
Requires Python: >=3.6

# `installcmd`

> Print correct command for installing a package.

The main use of this tool is to increase the portability of package installation scripts, such as you might have in a dotfiles repo. 

## Installation
Install with: `pip install installcmd`

## Usage
Print generic install command:
```
$ installcmd
sudo apt install
```

Print command to update package cache:
```
$ installcmd update
sudo apt update
```

Print command to install specific package:
```
$ cat docker.yaml
name: docker
    linux:
        ubuntu:
            name: docker.io

# On Arch
$ installcmd pkgspec docker.yaml
sudo pacman -S docker

# On Ubuntu
$ installcmd pkgspec docker.yaml
sudo apt install docker.io
```

Execute command directly (use at your own risk!):
```
# Without spec
$ $(installcmd) package-name

# With spec
$ $(installcmd pkgspec docker.yaml)
```

## Package spec
Annoyingly, sometimes the same package has different names in the repositories of different OSes. For example, Docker is listed in most Linux distro as `docker`, but in Ubuntu it is `docker.io`. To solve this problem we can create a detailed spec of the package's names.

The spec is a YAML file defining a tree:
```yaml
name: "generic-package-name"
Linux:
  name: "linux-name-of-package"
  arch:
    name: "arch-package-name"
    
  debian:
    name: "debian-package-name"
    buster: 
      name: "buster-package-name"
    
  alpine:
    "3.12":
    name: "alpine-3.12-name"
``` 

`installcmd` will descend down this tree and use the value of `name` from the most specific matching node that has a `name`. In the example above:
* `generic-package-name` will be used on non-Linux systems
* On Arch Linux, `arch-package-name` will be preferred
* On Debian, `buster-package-name` will be preferred if buster, `debian-package-name` otherwise
* On Alpine 3.12 (but not other Alpines) `alpine-3.12-name` will be preferred
* On other Linux (including Alpine 3.11), `linux-name-of-package` will be preferred

The exact keys here come from Python's [`platform`](https://docs.python.org/3/library/platform.html) module. To find out yours, open a shell and run:
```shell script
python -c "import platform; print(platform.uname())"
```
You want the `system`, `node` and `release` attributes.

## Command spec
`commands.yaml` defines the actual package manager commands that `installcmd` knows. Its structure mimics the package spec, but instead of `name` we have:
* `install` for the installation command
* `update` for the package cache update command
scrapycutter 0.1.2
Template para nossos projetos com base no cookiecutter
Requires Python: >=3.6

# Template padrão de crawler para projetos da B2W

## Pré-requisitos
- Python >= 3.6
- scrapycutter (`pip install scrapycutter`)
- Acesso ao nosso Gitlab

## Como usar
Depois de ter todo o necessário visto acima, então basta apenas executar o comando
- `scrapycutter revolution` que o comando nos permitirá fazer as configurações básicas para o projeto Revolution
  - OBS: O template foi criado de forma que seja possível adicionar novas funcionalidades ou templates de projetos facilmente, para nossa comodidade.

Caso prefira, também temos outras duas maneiras de criar o template, a partir do código fonte:
- Primeiramente lembrando que é necessário estar com a VPN  ativa no momento que realizar o comando acima para que funcione corretamente.
- Fazer clone para sua máquina permitindo que seja possível executar esse comando localmente:
  - `git clone git@gitlab.internal.b2w.io:team/a-tech/crawler-template.git`
  - `cookiecutter crawler-template`
- Também podemos usar a forma mais prática, que é referenciando esse repositório da seguinte forma:
  - `cookiecutter git+http://gitlab.internal.b2w.io/team/a-tech/crawler-template.git`
  - Basta apenas inserir esse comando referenciando esse repositório de template, digitar o usuário e senha do gitlab da empresa (já que funciona como se fosse um `git clone`) que as opções serão mostradas para criar o template do projeto da forma que bem entender;

# OBS:
Por motivos de segurança o arquivo B2W.json não é gerado junto com o template, é o único arquivo necessário de ser adicionado assim que o template é gerado.

### ToDo
- ~Investigar como gerar o template diretamente do nosso repositório  privado do Gitlab, atualmente isso ainda não é possível;~ (Resolvido)
- Melhorar dinamismo de como o template é gerado, talvez adicionando novos campos que possam ser configurados;
- ~Fazer com que se torne um pacote Python, para que seja ainda mais simples de executar.~ (Feito)