handover.v

731 B · raw

1//! Refuse repository commands until a Koh 2 repository has been migrated.2module cli34import os56pub fn needs_migration(argv []string) bool {7	if argv.len < 2 || argv[1] in ['migrate', 'man', 'help', '--help', '-h', '--version', '-v',8		'remote', 'update'] {9		return false10	}11	return inside_koh2_repo(os.getwd())12}1314// inside_koh2_repo looks upward for a `.koh` that is a directory. A `.koh`15// file is Koh 3's.16fn inside_koh2_repo(start string) bool {17	mut dir := os.real_path(start)18	for {19		path := os.join_path(dir, '.koh')20		if os.is_dir(path) {21			return true22		}23		if os.is_file(path) {24			return false25		}26		parent := os.dir(dir)27		if parent == dir || parent == '' {28			return false29		}30		dir = parent31	}32	return false33}