Skip to content

Commit

Permalink
fix: command not working on window os & script not generated for all CT
Browse files Browse the repository at this point in the history
  • Loading branch information
aman19K committed Jan 18, 2024
1 parent e87f8aa commit 859f315
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 36 deletions.
48 changes: 20 additions & 28 deletions packages/contentstack-branches/src/branch/merge-handler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,6 @@ export default class MergeHandler {
async executeEntryExpFlow(mergeJobUID: string, mergePayload) {
const { mergeContent } = this.mergeSettings;
let mergePreference = await selectContentMergePreference();
let selectedMergePreference;

const updateEntryMergeStrategy = (items, mergeStrategy) => {
items &&
Expand All @@ -250,25 +249,16 @@ export default class MergeHandler {
});
};

switch (mergePreference) {
case 'existing_new':
selectedMergePreference = 'merge_existing_new';
updateEntryMergeStrategy(mergeContent.content_types.added, selectedMergePreference);
updateEntryMergeStrategy(mergeContent.content_types.modified, selectedMergePreference);
break;

case 'new':
selectedMergePreference = 'merge_new';
updateEntryMergeStrategy(mergeContent.content_types.added, selectedMergePreference);
break;

case 'existing':
selectedMergePreference = 'merge_existing';
updateEntryMergeStrategy(mergeContent.content_types.modified, selectedMergePreference);
break;
const mergePreferencesMap = {
'existing_new': 'merge_existing_new',
'new': 'merge_new',
'existing': 'merge_existing',
'ask_preference': 'custom',
};
const selectedMergePreference = mergePreferencesMap[mergePreference];

case 'ask_preference':
selectedMergePreference = 'custom';
if (selectedMergePreference) {
if (selectedMergePreference === 'custom') {
const selectedMergeItems = await selectContentMergeCustomPreferences(mergeContent.content_types);
mergeContent.content_types = {
added: [],
Expand All @@ -279,23 +269,25 @@ export default class MergeHandler {
selectedMergeItems?.forEach((item) => {
mergeContent.content_types[item.status].push(item.value);
});
break;

default:
cliux.error(`error: Invalid preference ${mergePreference}`);
process.exit(1);
} else {
updateEntryMergeStrategy(mergeContent.content_types.added, selectedMergePreference);
updateEntryMergeStrategy(mergeContent.content_types.modified, selectedMergePreference);
}
} else {
cliux.error(`error: Invalid preference ${mergePreference}`);
process.exit(1);
}

let scriptFolderPath = generateMergeScripts(mergeContent.content_types, mergeJobUID);

if (scriptFolderPath !== undefined) {
cliux.success(`\nSuccess! We have generated entry migration files in the folder ${scriptFolderPath}`);
cliux.print('\nWARNING!!! Migration is not intended to be run more than once. Migrated(entries/assets) will be duplicated if run more than once', {color: 'yellow'});
cliux.print('\nWARNING!!! Migration is not intended to be run more than once. Migrated(entries/assets) will be duplicated if run more than once', { color: 'yellow' });

let migrationCommand: string;
if(os.platform() === 'win32'){
migrationCommand = `csdx cm:stacks:migration --multiple --file-path ./${scriptFolderPath} --config compare-branch:${mergePayload.compare_branch},file-path:./${scriptFolderPath} --branch ${mergePayload.base_branch} --stack-api-key ${this.stackAPIKey}`;
}else{
if (os.platform() === 'win32') {
migrationCommand = `csdx cm:stacks:migration --multiple --file-path ./${scriptFolderPath} --config compare-branch:${mergePayload.compare_branch} file-path:./${scriptFolderPath} --branch ${mergePayload.base_branch} --stack-api-key ${this.stackAPIKey}`;
} else {
migrationCommand = `csdx cm:stacks:migration --multiple --file-path ./${scriptFolderPath} --config {compare-branch:${mergePayload.compare_branch},file-path:./${scriptFolderPath}} --branch ${mergePayload.base_branch} --stack-api-key ${this.stackAPIKey}`;
}

Expand Down
18 changes: 10 additions & 8 deletions packages/contentstack-branches/src/utils/create-merge-scripts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,21 +34,22 @@ export function generateMergeScripts(mergeSummary, mergeJobUID) {

const processContentTypes = (contentTypes, messageType) => {
if (contentTypes && contentTypes.length > 0) {
processContentType(
{ type: 'assets', uid: '', entry_merge_strategy: '' },
mergeStrategies['asset_create_folder'],
);
contentTypes.forEach((contentType) => {
const mergeStrategy = contentType.entry_merge_strategy;
if (mergeStrategies.hasOwnProperty(mergeStrategy)) {
processContentType(contentType, mergeStrategies[mergeStrategy]);
}
});
cliux.print(`Info: ${messageType} content types' entries selected for merge`, { color: 'blue' });
} else {
cliux.print(`No ${messageType} entries selected for merge`, { color: 'yellow' });
cliux.print(`Info: No ${messageType} content types' entries selected for merge`, { color: 'blue' });
}
};


processContentType(
{ type: 'assets', uid: '', entry_merge_strategy: '' },
mergeStrategies['asset_create_folder'],
);
processContentTypes(mergeSummary.modified, 'Modified');
processContentTypes(mergeSummary.added, 'New');

Expand Down Expand Up @@ -93,10 +94,11 @@ export function createMergeScripts(contentType: CreateMergeScriptsProps, mergeJo
fs.mkdirSync(fullPath);
}
let filePath: string;
let milliSeconds = date.getMilliseconds().toString().padStart(3, '0')
if (contentType.type === 'assets') {
filePath = `${fullPath}/${fileCreatedAt}_create_assets_folder.js`;
filePath = `${fullPath}/${fileCreatedAt}${milliSeconds}_create_assets_folder.js`;
} else {
filePath = `${fullPath}/${fileCreatedAt}_${getContentTypeMergeStatus(contentType.entry_merge_strategy)}_${
filePath = `${fullPath}/${fileCreatedAt}${milliSeconds}_${getContentTypeMergeStatus(contentType.entry_merge_strategy)}_${
contentType.uid
}.js`;
}
Expand Down

0 comments on commit 859f315

Please sign in to comment.