# netctl2iwd

[![Build Status](https://travis-ci.org/bertptrs/netctl2iwd.svg?branch=master)](https://travis-ci.org/bertptrs/netctl2iwd)

Convert your `netctl` wireless profiles to `iwd` profiles.

[Iwd](https://iwd.wiki.kernel.org/) is a recent projected intended to replace `wpa_supplicant`. It can be used with
ConnMan and NetworkManager with very little changes. However, if you previously used `netctl` for your wifi needs, you
will need to write out all the profiles again. This is where this tool comes in.

## Installation

```
git clone https://github.com/bertptrs/netctl2iwd
cd netctl2iwd
cargo install
```

## Usage

```
netctl2iwd -i /etc/netctl
```

You can use this program to convert specific netctl profiles or a folder of netctl profiles. The program does not
specifically _need_ root permissions, but it does need to read (and write) the profiles.

The default destination directory is `/var/lib/profiles` which is where the profiles should be stored. You can change
the default directory for output files with the `-o [OUTPUT DIR]` directive.

For input, you can either specify each file individually, or you can specify a profile directory with the
`-i [INPUT DIR]` option.

To run this program without root, you need to

- copy your profile files to another directory
- make the copies readable for your user
- create an output directory
- run the program with the alternative profile directory and output directory
- copy the generated profiles to the proper directory, optionally after manual inspection

### Limitations

`netctl` profiles are actually bash files, however, this tool parses them as if they were `.ini` files. This works okay
for simple profiles (as generated by `wifi-menu`, for instance) but may fail for more complicated set-ups.

Because of this, WPA-enterprise profiles will fail to parse since the wpa_config code is a bash array. This might be
fixed in future versions.