1#!/usr/bin/env node
2import chalk from 'chalk';
3
4import { Command } from './cli';
5import { requireArg, assertArgs, getProjectRoot } from './utils/args';
6import * as Log from './utils/log';
7
8export const configureCodeSigning: Command = async (argv) => {
9  const args = assertArgs(
10    {
11      // Types
12      '--help': Boolean,
13      '--certificate-input-directory': String,
14      '--key-input-directory': String,
15      // Aliases
16      '-h': '--help',
17    },
18    argv ?? []
19  );
20
21  if (args['--help']) {
22    Log.exit(
23      chalk`
24      {bold Description}
25      Configure and validate expo-updates code signing for this project
26
27      {bold Usage}
28        $ npx expo-updates codesigning:configure
29
30        Options
31        --certificate-input-directory <string>     Directory containing code signing certificate
32        --key-input-directory <string>             Directory containing private and public keys
33        -h, --help               Output usage information
34    `,
35      0
36    );
37  }
38
39  const { configureCodeSigningAsync } = await import('./configureCodeSigningAsync');
40
41  const certificateInput = requireArg(args, '--certificate-input-directory');
42  const keyInput = requireArg(args, '--key-input-directory');
43
44  return await configureCodeSigningAsync(getProjectRoot(args), {
45    certificateInput,
46    keyInput,
47  });
48};
49