mattermost-mobile-upstream/detox/maestro/scripts/set_timezone.js

28 lines
1012 B
JavaScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
/* eslint-disable no-process-env, no-console */
const {execSync} = require('child_process');
const timezone = process.env.SIMULATOR_TIMEZONE || process.argv[2] || 'America/New_York';
if (!/^[A-Za-z0-9/_+-]+$/.test(timezone)) {
console.error(`[set_timezone] Invalid timezone format: ${timezone}`);
process.exit(1);
}
if (process.platform !== 'darwin') {
console.log(`[set_timezone] Skipping: not macOS (platform=${process.platform})`);
process.exit(0);
}
try {
// 'xcrun simctl timezone' was removed in Xcode 26.
// 'launchctl setenv TZ' sets the TZ env var in launchd so all new processes pick it up.
execSync(`xcrun simctl spawn booted launchctl setenv TZ "${timezone}"`, {stdio: 'pipe'});
console.log(`[set_timezone] Set simulator timezone to ${timezone}`);
} catch (err) {
console.warn(`[set_timezone] Warning: could not set timezone: ${err.message}`);
}