├── .editorconfig ├── .gitattributes ├── .github └── workflows │ └── main.yml ├── .gitignore ├── .npmrc ├── cli.js ├── license ├── package.json ├── readme.md └── test.js /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = tab 5 | end_of_line = lf 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | 10 | [*.yml] 11 | indent_style = space 12 | indent_size = 2 13 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | on: 3 | - push 4 | - pull_request 5 | jobs: 6 | test: 7 | name: Node.js ${{ matrix.node-version }} 8 | runs-on: macos-latest 9 | strategy: 10 | fail-fast: false 11 | matrix: 12 | node-version: 13 | - 14 14 | - 12 15 | steps: 16 | - uses: actions/checkout@v2 17 | - uses: actions/setup-node@v1 18 | with: 19 | node-version: ${{ matrix.node-version }} 20 | - run: npm install 21 | - run: npm test 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | yarn.lock 3 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=false 2 | -------------------------------------------------------------------------------- /cli.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | import meow from 'meow'; 3 | import manageWifi from 'manage-wifi'; 4 | 5 | const cli = meow(` 6 | Usage 7 | $ wifi 8 | 9 | Commands 10 | on Turn Wi-Fi on 11 | off Turn Wi-Fi off 12 | toggle Toggle Wi-Fi 13 | restart Turn Wi-Fi off & on 14 | status Wi-Fi status 15 | device Wi-Fi device name 16 | 17 | Examples 18 | $ wifi off 19 | $ wifi status 20 | off 21 | $ wifi device 22 | en0 23 | `); 24 | 25 | const command = cli.input[0]; 26 | 27 | (async () => { 28 | switch (command) { 29 | case 'on': 30 | case 'off': 31 | case 'toggle': 32 | case 'restart': 33 | manageWifi[command](); 34 | break; 35 | case 'status': 36 | console.log(await manageWifi.isOn() ? 'on' : 'off'); 37 | break; 38 | case 'device': 39 | console.log(await manageWifi.device()); 40 | break; 41 | default: 42 | cli.showHelp(); 43 | } 44 | })(); 45 | -------------------------------------------------------------------------------- /license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (https://sindresorhus.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "manage-wifi-cli", 3 | "version": "2.0.0", 4 | "description": "Turn your Wi-Fi on and off", 5 | "license": "MIT", 6 | "repository": "sindresorhus/manage-wifi-cli", 7 | "funding": "https://github.com/sponsors/sindresorhus", 8 | "author": { 9 | "name": "Sindre Sorhus", 10 | "email": "sindresorhus@gmail.com", 11 | "url": "https://sindresorhus.com" 12 | }, 13 | "type": "module", 14 | "bin": { 15 | "wifi": "cli.js" 16 | }, 17 | "engines": { 18 | "node": ">=12" 19 | }, 20 | "scripts": { 21 | "test": "xo && ava" 22 | }, 23 | "files": [ 24 | "cli.js" 25 | ], 26 | "keywords": [ 27 | "cli-app", 28 | "cli", 29 | "wifi", 30 | "wi-fi", 31 | "internet", 32 | "wireless", 33 | "manage", 34 | "control", 35 | "network", 36 | "device", 37 | "adapter", 38 | "en0", 39 | "en1", 40 | "restart", 41 | "toggle", 42 | "enable", 43 | "disable", 44 | "on", 45 | "off" 46 | ], 47 | "dependencies": { 48 | "manage-wifi": "^2.1.0", 49 | "meow": "^9.0.0" 50 | }, 51 | "devDependencies": { 52 | "ava": "^3.15.0", 53 | "execa": "^5.0.0", 54 | "xo": "^0.38.2" 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # manage-wifi-cli 2 | 3 | > Turn your Wi-Fi on and off 4 | 5 | *macOS and Windows only, but pull request welcome for Linux support.* 6 | 7 | ## Install 8 | 9 | ``` 10 | $ npm install --global manage-wifi-cli 11 | ``` 12 | 13 | ## Usage 14 | 15 | ``` 16 | $ wifi --help 17 | 18 | Usage 19 | $ wifi 20 | 21 | Commands 22 | on Turn Wi-Fi on 23 | off Turn Wi-Fi off 24 | toggle Toggle Wi-Fi 25 | restart Turn Wi-Fi off & on 26 | status Wi-Fi status 27 | device Wi-Fi device name 28 | 29 | Examples 30 | $ wifi off 31 | $ wifi status 32 | off 33 | $ wifi device 34 | en0 35 | ``` 36 | 37 | ## Related 38 | 39 | - [manage-wifi](https://github.com/sindresorhus/manage-wifi) - API for this module 40 | -------------------------------------------------------------------------------- /test.js: -------------------------------------------------------------------------------- 1 | import test from 'ava'; 2 | import execa from 'execa'; 3 | 4 | if (process.env.CI) { // CI doesn't have Wi-Fi 5 | test('ci', t => { 6 | t.pass(); 7 | }); 8 | } else { 9 | test('main', async t => { 10 | await execa('./cli.js', ['off']); 11 | 12 | const {stdout: status} = await execa('./cli.js', ['status']); 13 | t.is(status, 'off'); 14 | 15 | await execa('./cli.js', ['on']); 16 | 17 | const {stdout: status2} = await execa('./cli.js', ['status']); 18 | t.is(status2, 'on'); 19 | }); 20 | } 21 | --------------------------------------------------------------------------------