38 lines
		
	
	
	
		
			1 KiB
			
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			1 KiB
			
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
// Copyright 2021 Signal Messenger, LLC
 | 
						|
// SPDX-License-Identifier: AGPL-3.0-only
 | 
						|
 | 
						|
import { join } from 'path';
 | 
						|
import { execSync } from 'child_process';
 | 
						|
import { writeFileSync } from 'fs';
 | 
						|
 | 
						|
import { DAY } from '../util/durations';
 | 
						|
import { version } from '../../package.json';
 | 
						|
import { isNotUpdatable } from '../util/version';
 | 
						|
 | 
						|
const unixTimestamp = parseInt(
 | 
						|
  process.env.SOURCE_DATE_EPOCH ||
 | 
						|
    execSync('git show -s --format=%ct').toString('utf8'),
 | 
						|
  10
 | 
						|
);
 | 
						|
const buildCreation = unixTimestamp * 1000;
 | 
						|
 | 
						|
// NB: Build expirations are also determined via users' auto-update settings; see
 | 
						|
// getExpirationTimestamp
 | 
						|
const validDuration = isNotUpdatable(version) ? DAY * 30 : DAY * 90;
 | 
						|
const buildExpiration = buildCreation + validDuration;
 | 
						|
 | 
						|
const localProductionPath = join(
 | 
						|
  __dirname,
 | 
						|
  '../../config/local-production.json'
 | 
						|
);
 | 
						|
 | 
						|
const localProductionConfig = {
 | 
						|
  buildCreation,
 | 
						|
  buildExpiration,
 | 
						|
  ...(isNotUpdatable(version) ? { updatesEnabled: false } : {}),
 | 
						|
};
 | 
						|
 | 
						|
writeFileSync(
 | 
						|
  localProductionPath,
 | 
						|
  `${JSON.stringify(localProductionConfig)}\n`
 | 
						|
);
 |